diff --git a/packages/web/public/i18n/locales/be-BY/channels.json b/packages/web/public/i18n/locales/be-BY/channels.json
index 95f64b16..8f2b390d 100644
--- a/packages/web/public/i18n/locales/be-BY/channels.json
+++ b/packages/web/public/i18n/locales/be-BY/channels.json
@@ -1,69 +1,71 @@
{
- "page": {
- "sectionLabel": "Channels",
- "channelName": "Channel: {{channelName}}",
- "broadcastLabel": "Primary",
- "channelIndex": "Ch {{index}}"
- },
- "validation": {
- "pskInvalid": "Please enter a valid {{bits}} bit PSK."
- },
- "settings": {
- "label": "Channel Settings",
- "description": "Crypto, MQTT & misc settings"
- },
- "role": {
- "label": "Role",
- "description": "Device telemetry is sent over PRIMARY. Only one PRIMARY allowed",
- "options": {
- "primary": "PRIMARY",
- "disabled": "DISABLED",
- "secondary": "SECONDARY"
- }
- },
- "psk": {
- "label": "Pre-Shared Key",
- "description": "Supported PSK lengths: 256-bit, 128-bit, 8-bit, Empty (0-bit)",
- "generate": "Generate"
- },
- "name": {
- "label": "Name",
- "description": "A unique name for the channel <12 bytes, leave blank for default"
- },
- "uplinkEnabled": {
- "label": "Uplink Enabled",
- "description": "Send messages from the local mesh to MQTT"
- },
- "downlinkEnabled": {
- "label": "Downlink Enabled",
- "description": "Send messages from MQTT to the local mesh"
- },
- "positionPrecision": {
- "label": "Location",
- "description": "The precision of the location to share with the channel. Can be disabled.",
- "options": {
- "none": "Do not share location",
- "precise": "Precise Location",
- "metric_km23": "Within 23 kilometers",
- "metric_km12": "Within 12 kilometers",
- "metric_km5_8": "Within 5.8 kilometers",
- "metric_km2_9": "Within 2.9 kilometers",
- "metric_km1_5": "Within 1.5 kilometers",
- "metric_m700": "Within 700 meters",
- "metric_m350": "Within 350 meters",
- "metric_m200": "Within 200 meters",
- "metric_m90": "Within 90 meters",
- "metric_m50": "Within 50 meters",
- "imperial_mi15": "Within 15 miles",
- "imperial_mi7_3": "Within 7.3 miles",
- "imperial_mi3_6": "Within 3.6 miles",
- "imperial_mi1_8": "Within 1.8 miles",
- "imperial_mi0_9": "Within 0.9 miles",
- "imperial_mi0_5": "Within 0.5 miles",
- "imperial_mi0_2": "Within 0.2 miles",
- "imperial_ft600": "Within 600 feet",
- "imperial_ft300": "Within 300 feet",
- "imperial_ft150": "Within 150 feet"
- }
- }
+ "page": {
+ "sectionLabel": "Channels",
+ "channelName": "Channel: {{channelName}}",
+ "broadcastLabel": "Primary",
+ "channelIndex": "Ch {{index}}",
+ "import": "Import",
+ "export": "Export"
+ },
+ "validation": {
+ "pskInvalid": "Please enter a valid {{bits}} bit PSK."
+ },
+ "settings": {
+ "label": "Channel Settings",
+ "description": "Crypto, MQTT & misc settings"
+ },
+ "role": {
+ "label": "Role",
+ "description": "Device telemetry is sent over PRIMARY. Only one PRIMARY allowed",
+ "options": {
+ "primary": "PRIMARY",
+ "disabled": "DISABLED",
+ "secondary": "SECONDARY"
+ }
+ },
+ "psk": {
+ "label": "Pre-Shared Key",
+ "description": "Supported PSK lengths: 256-bit, 128-bit, 8-bit, Empty (0-bit)",
+ "generate": "Generate"
+ },
+ "name": {
+ "label": "Name",
+ "description": "A unique name for the channel <12 bytes, leave blank for default"
+ },
+ "uplinkEnabled": {
+ "label": "Uplink Enabled",
+ "description": "Send messages from the local mesh to MQTT"
+ },
+ "downlinkEnabled": {
+ "label": "Downlink Enabled",
+ "description": "Send messages from MQTT to the local mesh"
+ },
+ "positionPrecision": {
+ "label": "Location",
+ "description": "The precision of the location to share with the channel. Can be disabled.",
+ "options": {
+ "none": "Do not share location",
+ "precise": "Precise Location",
+ "metric_km23": "Within 23 kilometers",
+ "metric_km12": "Within 12 kilometers",
+ "metric_km5_8": "Within 5.8 kilometers",
+ "metric_km2_9": "Within 2.9 kilometers",
+ "metric_km1_5": "Within 1.5 kilometers",
+ "metric_m700": "Within 700 meters",
+ "metric_m350": "Within 350 meters",
+ "metric_m200": "Within 200 meters",
+ "metric_m90": "Within 90 meters",
+ "metric_m50": "Within 50 meters",
+ "imperial_mi15": "Within 15 miles",
+ "imperial_mi7_3": "Within 7.3 miles",
+ "imperial_mi3_6": "Within 3.6 miles",
+ "imperial_mi1_8": "Within 1.8 miles",
+ "imperial_mi0_9": "Within 0.9 miles",
+ "imperial_mi0_5": "Within 0.5 miles",
+ "imperial_mi0_2": "Within 0.2 miles",
+ "imperial_ft600": "Within 600 feet",
+ "imperial_ft300": "Within 300 feet",
+ "imperial_ft150": "Within 150 feet"
+ }
+ }
}
diff --git a/packages/web/public/i18n/locales/be-BY/commandPalette.json b/packages/web/public/i18n/locales/be-BY/commandPalette.json
index 8c267e29..d12b783f 100644
--- a/packages/web/public/i18n/locales/be-BY/commandPalette.json
+++ b/packages/web/public/i18n/locales/be-BY/commandPalette.json
@@ -15,7 +15,6 @@
"messages": "Messages",
"map": "Map",
"config": "Config",
- "channels": "Channels",
"nodes": "Nodes"
}
},
@@ -45,7 +44,8 @@
"label": "Debug",
"command": {
"reconfigure": "Reconfigure",
- "clearAllStoredMessages": "Clear All Stored Message"
+ "clearAllStoredMessages": "Clear All Stored Message",
+ "clearAllStores": "Clear All Local Storage"
}
}
}
diff --git a/packages/web/public/i18n/locales/be-BY/common.json b/packages/web/public/i18n/locales/be-BY/common.json
index e0fe5bc9..188f259d 100644
--- a/packages/web/public/i18n/locales/be-BY/common.json
+++ b/packages/web/public/i18n/locales/be-BY/common.json
@@ -1,142 +1,157 @@
{
- "button": {
- "apply": "Apply",
- "backupKey": "Backup Key",
- "cancel": "Cancel",
- "clearMessages": "Clear Messages",
- "close": "Close",
- "confirm": "Confirm",
- "delete": "Delete",
- "dismiss": "Dismiss",
- "download": "Download",
- "export": "Export",
- "generate": "Generate",
- "regenerate": "Regenerate",
- "import": "Import",
- "message": "Message",
- "now": "Now",
- "ok": "OK",
- "print": "Print",
- "remove": "Remove",
- "requestNewKeys": "Request New Keys",
- "requestPosition": "Request Position",
- "reset": "Reset",
- "save": "Save",
- "scanQr": "Scan QR Code",
- "traceRoute": "Trace Route",
- "submit": "Submit"
- },
- "app": {
- "title": "Meshtastic",
- "fullTitle": "Meshtastic Web Client"
- },
- "loading": "Loading...",
- "unit": {
- "cps": "CPS",
- "dbm": "dBm",
- "hertz": "Hz",
- "hop": {
- "one": "Hop",
- "plural": "Hops"
- },
- "hopsAway": {
- "one": "{{count}} hop away",
- "plural": "{{count}} hops away",
- "unknown": "Unknown hops away"
- },
- "megahertz": "MHz",
- "raw": "raw",
- "meter": {
- "one": "Meter",
- "plural": "Meters",
- "suffix": "m"
- },
- "minute": {
- "one": "Minute",
- "plural": "Minutes"
- },
- "hour": {
- "one": "Hour",
- "plural": "Hours"
- },
- "millisecond": {
- "one": "Millisecond",
- "plural": "Milliseconds",
- "suffix": "ms"
- },
- "second": {
- "one": "Second",
- "plural": "Seconds"
- },
- "day": {
- "one": "Day",
- "plural": "Days"
- },
- "month": {
- "one": "Month",
- "plural": "Months"
- },
- "year": {
- "one": "Year",
- "plural": "Years"
- },
- "snr": "SNR",
- "volt": {
- "one": "Volt",
- "plural": "Volts",
- "suffix": "V"
- },
- "record": {
- "one": "Records",
- "plural": "Records"
- }
- },
- "security": {
- "0bit": "Empty",
- "8bit": "8 bit",
- "128bit": "128 bit",
- "256bit": "256 bit"
- },
- "unknown": {
- "longName": "Unknown",
- "shortName": "UNK",
- "notAvailable": "N/A",
- "num": "??"
- },
- "nodeUnknownPrefix": "!",
- "unset": "UNSET",
- "fallbackName": "Meshtastic {{last4}}",
- "node": "Node",
- "formValidation": {
- "unsavedChanges": "Unsaved changes",
- "tooBig": {
- "string": "Too long, expected less than or equal to {{maximum}} characters.",
- "number": "Too big, expected a number smaller than or equal to {{maximum}}.",
- "bytes": "Too big, expected less than or equal to {{params.maximum}} bytes."
- },
- "tooSmall": {
- "string": "Too short, expected more than or equal to {{minimum}} characters.",
- "number": "Too small, expected a number larger than or equal to {{minimum}}."
- },
- "invalidFormat": {
- "ipv4": "Invalid format, expected an IPv4 address.",
- "key": "Invalid format, expected a Base64 encoded pre-shared key (PSK)."
- },
- "invalidType": {
- "number": "Invalid type, expected a number."
- },
- "pskLength": {
- "0bit": "Key is required to be empty.",
- "8bit": "Key is required to be an 8 bit pre-shared key (PSK).",
- "128bit": "Key is required to be a 128 bit pre-shared key (PSK).",
- "256bit": "Key is required to be a 256 bit pre-shared key (PSK)."
- },
- "required": {
- "generic": "This field is required.",
- "managed": "At least one admin key is requred if the node is managed.",
- "key": "Key is required."
- }
- },
- "yes": "Yes",
- "no": "No"
+ "button": {
+ "apply": "Apply",
+ "backupKey": "Backup Key",
+ "cancel": "Cancel",
+ "clearMessages": "Clear Messages",
+ "close": "Close",
+ "confirm": "Confirm",
+ "delete": "Delete",
+ "dismiss": "Dismiss",
+ "download": "Download",
+ "export": "Export",
+ "generate": "Generate",
+ "regenerate": "Regenerate",
+ "import": "Import",
+ "message": "Message",
+ "now": "Now",
+ "ok": "OK",
+ "print": "Print",
+ "remove": "Remove",
+ "requestNewKeys": "Request New Keys",
+ "requestPosition": "Request Position",
+ "reset": "Reset",
+ "save": "Save",
+ "scanQr": "Scan QR Code",
+ "traceRoute": "Trace Route",
+ "submit": "Submit"
+ },
+ "app": {
+ "title": "Meshtastic",
+ "fullTitle": "Meshtastic Web Client"
+ },
+ "loading": "Loading...",
+ "unit": {
+ "cps": "CPS",
+ "dbm": "dBm",
+ "hertz": "Hz",
+ "hop": {
+ "one": "Hop",
+ "plural": "Hops"
+ },
+ "hopsAway": {
+ "one": "{{count}} hop away",
+ "plural": "{{count}} hops away",
+ "unknown": "Unknown hops away"
+ },
+ "megahertz": "MHz",
+ "raw": "raw",
+ "meter": {
+ "one": "Meter",
+ "plural": "Meters",
+ "suffix": "m"
+ },
+ "kilometer": {
+ "one": "Kilometer",
+ "plural": "Kilometers",
+ "suffix": "km"
+ },
+ "minute": {
+ "one": "Minute",
+ "plural": "Minutes"
+ },
+ "hour": {
+ "one": "Hour",
+ "plural": "Hours"
+ },
+ "millisecond": {
+ "one": "Millisecond",
+ "plural": "Milliseconds",
+ "suffix": "ms"
+ },
+ "second": {
+ "one": "Second",
+ "plural": "Seconds"
+ },
+ "day": {
+ "one": "Day",
+ "plural": "Days",
+ "today": "Today",
+ "yesterday": "Yesterday"
+ },
+ "month": {
+ "one": "Month",
+ "plural": "Months"
+ },
+ "year": {
+ "one": "Year",
+ "plural": "Years"
+ },
+ "snr": "SNR",
+ "volt": {
+ "one": "Volt",
+ "plural": "Volts",
+ "suffix": "V"
+ },
+ "record": {
+ "one": "Records",
+ "plural": "Records"
+ },
+ "degree": {
+ "one": "Degree",
+ "plural": "Degrees",
+ "suffix": "°"
+ }
+ },
+ "security": {
+ "0bit": "Empty",
+ "8bit": "8 bit",
+ "128bit": "128 bit",
+ "256bit": "256 bit"
+ },
+ "unknown": {
+ "longName": "Unknown",
+ "shortName": "UNK",
+ "notAvailable": "N/A",
+ "num": "??"
+ },
+ "nodeUnknownPrefix": "!",
+ "unset": "UNSET",
+ "fallbackName": "Meshtastic {{last4}}",
+ "node": "Node",
+ "formValidation": {
+ "unsavedChanges": "Unsaved changes",
+ "tooBig": {
+ "string": "Too long, expected less than or equal to {{maximum}} characters.",
+ "number": "Too big, expected a number smaller than or equal to {{maximum}}.",
+ "bytes": "Too big, expected less than or equal to {{params.maximum}} bytes."
+ },
+ "tooSmall": {
+ "string": "Too short, expected more than or equal to {{minimum}} characters.",
+ "number": "Too small, expected a number larger than or equal to {{minimum}}."
+ },
+ "invalidFormat": {
+ "ipv4": "Invalid format, expected an IPv4 address.",
+ "key": "Invalid format, expected a Base64 encoded pre-shared key (PSK)."
+ },
+ "invalidType": {
+ "number": "Invalid type, expected a number."
+ },
+ "pskLength": {
+ "0bit": "Key is required to be empty.",
+ "8bit": "Key is required to be an 8 bit pre-shared key (PSK).",
+ "128bit": "Key is required to be a 128 bit pre-shared key (PSK).",
+ "256bit": "Key is required to be a 256 bit pre-shared key (PSK)."
+ },
+ "required": {
+ "generic": "This field is required.",
+ "managed": "At least one admin key is requred if the node is managed.",
+ "key": "Key is required."
+ },
+ "invalidOverrideFreq": {
+ "number": "Invalid format, expected a value in the range 410-930 MHz or 0 (use default)."
+ }
+ },
+ "yes": "Yes",
+ "no": "No"
}
diff --git a/packages/web/public/i18n/locales/be-BY/config.json b/packages/web/public/i18n/locales/be-BY/config.json
new file mode 100644
index 00000000..886ffbc6
--- /dev/null
+++ b/packages/web/public/i18n/locales/be-BY/config.json
@@ -0,0 +1,458 @@
+{
+ "page": {
+ "title": "Settings",
+ "tabUser": "Карыстальнік",
+ "tabChannels": "Каналы",
+ "tabBluetooth": "Bluetooth",
+ "tabDevice": "Прылада",
+ "tabDisplay": "Экран",
+ "tabLora": "LoRa",
+ "tabNetwork": "Сетка",
+ "tabPosition": "Месцазнаходжанне",
+ "tabPower": "Power",
+ "tabSecurity": "Бяспека"
+ },
+ "sidebar": {
+ "label": "Configuration"
+ },
+ "device": {
+ "title": "Device Settings",
+ "description": "Settings for the device",
+ "buttonPin": {
+ "description": "Button pin override",
+ "label": "Button Pin"
+ },
+ "buzzerPin": {
+ "description": "Buzzer pin override",
+ "label": "Buzzer Pin"
+ },
+ "disableTripleClick": {
+ "description": "Disable triple click",
+ "label": "Disable Triple Click"
+ },
+ "doubleTapAsButtonPress": {
+ "description": "Treat double tap as button press",
+ "label": "Double Tap as Button Press"
+ },
+ "ledHeartbeatDisabled": {
+ "description": "Disable default blinking LED",
+ "label": "LED Heartbeat Disabled"
+ },
+ "nodeInfoBroadcastInterval": {
+ "description": "How often to broadcast node info",
+ "label": "Node Info Broadcast Interval"
+ },
+ "posixTimezone": {
+ "description": "The POSIX timezone string for the device",
+ "label": "POSIX Timezone"
+ },
+ "rebroadcastMode": {
+ "description": "How to handle rebroadcasting",
+ "label": "Rebroadcast Mode"
+ },
+ "role": {
+ "description": "What role the device performs on the mesh",
+ "label": "Role"
+ }
+ },
+ "bluetooth": {
+ "title": "Bluetooth Settings",
+ "description": "Settings for the Bluetooth module",
+ "note": "Note: Some devices (ESP32) cannot use both Bluetooth and WiFi at the same time.",
+ "enabled": {
+ "description": "Enable or disable Bluetooth",
+ "label": "Уключана"
+ },
+ "pairingMode": {
+ "description": "Pin selection behaviour.",
+ "label": "Pairing mode"
+ },
+ "pin": {
+ "description": "Pin to use when pairing",
+ "label": "Pin"
+ }
+ },
+ "display": {
+ "description": "Settings for the device display",
+ "title": "Display Settings",
+ "headingBold": {
+ "description": "Bolden the heading text",
+ "label": "Bold Heading"
+ },
+ "carouselDelay": {
+ "description": "How fast to cycle through windows",
+ "label": "Carousel Delay"
+ },
+ "compassNorthTop": {
+ "description": "Fix north to the top of compass",
+ "label": "Compass North Top"
+ },
+ "displayMode": {
+ "description": "Screen layout variant",
+ "label": "Display Mode"
+ },
+ "displayUnits": {
+ "description": "Display metric or imperial units",
+ "label": "Display Units"
+ },
+ "flipScreen": {
+ "description": "Flip display 180 degrees",
+ "label": "Flip Screen"
+ },
+ "gpsDisplayUnits": {
+ "description": "Coordinate display format",
+ "label": "GPS Display Units"
+ },
+ "oledType": {
+ "description": "Type of OLED screen attached to the device",
+ "label": "OLED Type"
+ },
+ "screenTimeout": {
+ "description": "Turn off the display after this long",
+ "label": "Screen Timeout"
+ },
+ "twelveHourClock": {
+ "description": "Use 12-hour clock format",
+ "label": "12-Hour Clock"
+ },
+ "wakeOnTapOrMotion": {
+ "description": "Wake the device on tap or motion",
+ "label": "Wake on Tap or Motion"
+ }
+ },
+ "lora": {
+ "title": "Mesh Settings",
+ "description": "Settings for the LoRa mesh",
+ "bandwidth": {
+ "description": "Channel bandwidth in MHz",
+ "label": "Bandwidth"
+ },
+ "boostedRxGain": {
+ "description": "Boosted RX gain",
+ "label": "Boosted RX Gain"
+ },
+ "codingRate": {
+ "description": "The denominator of the coding rate",
+ "label": "Coding Rate"
+ },
+ "frequencyOffset": {
+ "description": "Frequency offset to correct for crystal calibration errors",
+ "label": "Frequency Offset"
+ },
+ "frequencySlot": {
+ "description": "LoRa frequency channel number",
+ "label": "Frequency Slot"
+ },
+ "hopLimit": {
+ "description": "Maximum number of hops",
+ "label": "Hop Limit"
+ },
+ "ignoreMqtt": {
+ "description": "Don't forward MQTT messages over the mesh",
+ "label": "Ignore MQTT"
+ },
+ "modemPreset": {
+ "description": "Modem preset to use",
+ "label": "Modem Preset"
+ },
+ "okToMqtt": {
+ "description": "When set to true, this configuration indicates that the user approves the packet to be uploaded to MQTT. If set to false, remote nodes are requested not to forward packets to MQTT",
+ "label": "OK to MQTT"
+ },
+ "overrideDutyCycle": {
+ "description": "Override Duty Cycle",
+ "label": "Override Duty Cycle"
+ },
+ "overrideFrequency": {
+ "description": "Override frequency",
+ "label": "Override Frequency"
+ },
+ "region": {
+ "description": "Sets the region for your node",
+ "label": "Рэгіён"
+ },
+ "spreadingFactor": {
+ "description": "Indicates the number of chirps per symbol",
+ "label": "Spreading Factor"
+ },
+ "transmitEnabled": {
+ "description": "Enable/Disable transmit (TX) from the LoRa radio",
+ "label": "Transmit Enabled"
+ },
+ "transmitPower": {
+ "description": "Max transmit power",
+ "label": "Transmit Power"
+ },
+ "usePreset": {
+ "description": "Use one of the predefined modem presets",
+ "label": "Use Preset"
+ },
+ "meshSettings": {
+ "description": "Settings for the LoRa mesh",
+ "label": "Mesh Settings"
+ },
+ "waveformSettings": {
+ "description": "Settings for the LoRa waveform",
+ "label": "Waveform Settings"
+ },
+ "radioSettings": {
+ "label": "Radio Settings",
+ "description": "Settings for the LoRa radio"
+ }
+ },
+ "network": {
+ "title": "WiFi Config",
+ "description": "WiFi radio configuration",
+ "note": "Note: Some devices (ESP32) cannot use both Bluetooth and WiFi at the same time.",
+ "addressMode": {
+ "description": "Address assignment selection",
+ "label": "Address Mode"
+ },
+ "dns": {
+ "description": "DNS Server",
+ "label": "DNS"
+ },
+ "ethernetEnabled": {
+ "description": "Enable or disable the Ethernet port",
+ "label": "Уключана"
+ },
+ "gateway": {
+ "description": "Default Gateway",
+ "label": "Gateway"
+ },
+ "ip": {
+ "description": "IP Address",
+ "label": "IP"
+ },
+ "psk": {
+ "description": "Network password",
+ "label": "PSK"
+ },
+ "ssid": {
+ "description": "Network name",
+ "label": "SSID"
+ },
+ "subnet": {
+ "description": "Subnet Mask",
+ "label": "Subnet"
+ },
+ "wifiEnabled": {
+ "description": "Enable or disable the WiFi radio",
+ "label": "Уключана"
+ },
+ "meshViaUdp": {
+ "label": "Mesh via UDP"
+ },
+ "ntpServer": {
+ "label": "NTP Server"
+ },
+ "rsyslogServer": {
+ "label": "Rsyslog Server"
+ },
+ "ethernetConfigSettings": {
+ "description": "Ethernet port configuration",
+ "label": "Ethernet Config"
+ },
+ "ipConfigSettings": {
+ "description": "IP configuration",
+ "label": "IP Config"
+ },
+ "ntpConfigSettings": {
+ "description": "NTP configuration",
+ "label": "NTP Config"
+ },
+ "rsyslogConfigSettings": {
+ "description": "Rsyslog configuration",
+ "label": "Rsyslog Config"
+ },
+ "udpConfigSettings": {
+ "description": "UDP over Mesh configuration",
+ "label": "UDP Config"
+ }
+ },
+ "position": {
+ "title": "Position Settings",
+ "description": "Settings for the position module",
+ "broadcastInterval": {
+ "description": "How often your position is sent out over the mesh",
+ "label": "Broadcast Interval"
+ },
+ "enablePin": {
+ "description": "GPS module enable pin override",
+ "label": "Enable Pin"
+ },
+ "fixedPosition": {
+ "description": "Don't report GPS position, but a manually-specified one",
+ "label": "Fixed Position"
+ },
+ "gpsMode": {
+ "description": "Configure whether device GPS is Enabled, Disabled, or Not Present",
+ "label": "GPS Mode"
+ },
+ "gpsUpdateInterval": {
+ "description": "How often a GPS fix should be acquired",
+ "label": "GPS Update Interval"
+ },
+ "positionFlags": {
+ "description": "Optional fields to include when assembling position messages. The more fields are selected, the larger the message will be leading to longer airtime usage and a higher risk of packet loss.",
+ "label": "Position Flags"
+ },
+ "receivePin": {
+ "description": "GPS module RX pin override",
+ "label": "Receive Pin"
+ },
+ "smartPositionEnabled": {
+ "description": "Only send position when there has been a meaningful change in location",
+ "label": "Enable Smart Position"
+ },
+ "smartPositionMinDistance": {
+ "description": "Minimum distance (in meters) that must be traveled before a position update is sent",
+ "label": "Smart Position Minimum Distance"
+ },
+ "smartPositionMinInterval": {
+ "description": "Minimum interval (in seconds) that must pass before a position update is sent",
+ "label": "Smart Position Minimum Interval"
+ },
+ "transmitPin": {
+ "description": "GPS module TX pin override",
+ "label": "Transmit Pin"
+ },
+ "intervalsSettings": {
+ "description": "How often to send position updates",
+ "label": "Intervals"
+ },
+ "flags": {
+ "placeholder": "Select position flags...",
+ "altitude": "Altitude",
+ "altitudeGeoidalSeparation": "Altitude Geoidal Separation",
+ "altitudeMsl": "Altitude is Mean Sea Level",
+ "dop": "Dilution of precision (DOP) PDOP used by default",
+ "hdopVdop": "If DOP is set, use HDOP / VDOP values instead of PDOP",
+ "numSatellites": "Number of satellites",
+ "sequenceNumber": "Sequence number",
+ "timestamp": "Timestamp",
+ "unset": "Unset",
+ "vehicleHeading": "Vehicle heading",
+ "vehicleSpeed": "Vehicle speed"
+ }
+ },
+ "power": {
+ "adcMultiplierOverride": {
+ "description": "Used for tweaking battery voltage reading",
+ "label": "ADC Multiplier Override ratio"
+ },
+ "ina219Address": {
+ "description": "Address of the INA219 battery monitor",
+ "label": "INA219 Address"
+ },
+ "lightSleepDuration": {
+ "description": "How long the device will be in light sleep for",
+ "label": "Light Sleep Duration"
+ },
+ "minimumWakeTime": {
+ "description": "Minimum amount of time the device will stay awake for after receiving a packet",
+ "label": "Minimum Wake Time"
+ },
+ "noConnectionBluetoothDisabled": {
+ "description": "If the device does not receive a Bluetooth connection, the BLE radio will be disabled after this long",
+ "label": "No Connection Bluetooth Disabled"
+ },
+ "powerSavingEnabled": {
+ "description": "Select if powered from a low-current source (i.e. solar), to minimize power consumption as much as possible.",
+ "label": "Enable power saving mode"
+ },
+ "shutdownOnBatteryDelay": {
+ "description": "Automatically shutdown node after this long when on battery, 0 for indefinite",
+ "label": "Shutdown on battery delay"
+ },
+ "superDeepSleepDuration": {
+ "description": "How long the device will be in super deep sleep for",
+ "label": "Super Deep Sleep Duration"
+ },
+ "powerConfigSettings": {
+ "description": "Settings for the power module",
+ "label": "Power Config"
+ },
+ "sleepSettings": {
+ "description": "Sleep settings for the power module",
+ "label": "Sleep Settings"
+ }
+ },
+ "security": {
+ "description": "Settings for the Security configuration",
+ "title": "Security Settings",
+ "button_backupKey": "Backup Key",
+ "adminChannelEnabled": {
+ "description": "Allow incoming device control over the insecure legacy admin channel",
+ "label": "Allow Legacy Admin"
+ },
+ "enableDebugLogApi": {
+ "description": "Output live debug logging over serial, view and export position-redacted device logs over Bluetooth",
+ "label": "Enable Debug Log API"
+ },
+ "managed": {
+ "description": "If enabled, device configuration options are only able to be changed remotely by a Remote Admin node via admin messages. Do not enable this option unless at least one suitable Remote Admin node has been setup, and the public key is stored in one of the fields above.",
+ "label": "Managed"
+ },
+ "privateKey": {
+ "description": "Used to create a shared key with a remote device",
+ "label": "Private Key"
+ },
+ "publicKey": {
+ "description": "Sent out to other nodes on the mesh to allow them to compute a shared secret key",
+ "label": "Public Key"
+ },
+ "primaryAdminKey": {
+ "description": "The primary public key authorized to send admin messages to this node",
+ "label": "Primary Admin Key"
+ },
+ "secondaryAdminKey": {
+ "description": "The secondary public key authorized to send admin messages to this node",
+ "label": "Secondary Admin Key"
+ },
+ "serialOutputEnabled": {
+ "description": "Serial Console over the Stream API",
+ "label": "Serial Output Enabled"
+ },
+ "tertiaryAdminKey": {
+ "description": "The tertiary public key authorized to send admin messages to this node",
+ "label": "Tertiary Admin Key"
+ },
+ "adminSettings": {
+ "description": "Settings for Admin",
+ "label": "Admin Settings"
+ },
+ "loggingSettings": {
+ "description": "Settings for Logging",
+ "label": "Logging Settings"
+ }
+ },
+ "user": {
+ "title": "User Settings",
+ "description": "Configure your device name and identity settings",
+ "longName": {
+ "label": "Long Name",
+ "description": "Your full display name (1-40 characters)",
+ "validation": {
+ "min": "Long name must be at least 1 character",
+ "max": "Long name must be at most 40 characters"
+ }
+ },
+ "shortName": {
+ "label": "Short Name",
+ "description": "Your abbreviated name (2-4 characters)",
+ "validation": {
+ "min": "Short name must be at least 2 characters",
+ "max": "Short name must be at most 4 characters"
+ }
+ },
+ "isUnmessageable": {
+ "label": "Unmessageable",
+ "description": "Used to identify unmonitored or infrastructure nodes so that messaging is not available to nodes that will never respond."
+ },
+ "isLicensed": {
+ "label": "Licensed amateur radio (HAM)",
+ "description": "Enable if you are a licensed amateur radio operator, enabling this option disables encryption and is not compatible with the default Meshtastic network."
+ }
+ }
+}
diff --git a/packages/web/public/i18n/locales/be-BY/dashboard.json b/packages/web/public/i18n/locales/be-BY/dashboard.json
index 8ec37528..3a3cd869 100644
--- a/packages/web/public/i18n/locales/be-BY/dashboard.json
+++ b/packages/web/public/i18n/locales/be-BY/dashboard.json
@@ -1,12 +1,12 @@
{
- "dashboard": {
- "title": "Connected Devices",
- "description": "Manage your connected Meshtastic devices.",
- "connectionType_ble": "BLE",
- "connectionType_serial": "Serial",
- "connectionType_network": "Network",
- "noDevicesTitle": "No devices connected",
- "noDevicesDescription": "Connect a new device to get started.",
- "button_newConnection": "New Connection"
- }
+ "dashboard": {
+ "title": "Connected Devices",
+ "description": "Manage your connected Meshtastic devices.",
+ "connectionType_ble": "BLE",
+ "connectionType_serial": "Serial",
+ "connectionType_network": "Network",
+ "noDevicesTitle": "No devices connected",
+ "noDevicesDescription": "Connect a new device to get started.",
+ "button_newConnection": "New Connection"
+ }
}
diff --git a/packages/web/public/i18n/locales/be-BY/dialog.json b/packages/web/public/i18n/locales/be-BY/dialog.json
index b97f117a..0cdad4b0 100644
--- a/packages/web/public/i18n/locales/be-BY/dialog.json
+++ b/packages/web/public/i18n/locales/be-BY/dialog.json
@@ -1,193 +1,221 @@
{
- "deleteMessages": {
- "description": "This action will clear all message history. This cannot be undone. Are you sure you want to continue?",
- "title": "Clear All Messages"
- },
- "deviceName": {
- "description": "The Device will restart once the config is saved.",
- "longName": "Long Name",
- "shortName": "Short Name",
- "title": "Change Device Name",
- "validation": {
- "longNameMax": "Long name must not be more than 40 characters",
- "shortNameMax": "Short name must not be more than 4 characters",
- "longNameMin": "Long name must have at least 1 character",
- "shortNameMin": "Short name must have at least 1 character"
- }
- },
- "import": {
- "description": "The current LoRa configuration will be overridden.",
- "error": {
- "invalidUrl": "Invalid Meshtastic URL"
- },
- "channelPrefix": "Channel: ",
- "channelSetUrl": "Channel Set/QR Code URL",
- "channels": "Channels:",
- "usePreset": "Use Preset?",
- "title": "Import Channel Set"
- },
- "locationResponse": {
- "title": "Location: {{identifier}}",
- "altitude": "Altitude: ",
- "coordinates": "Coordinates: ",
- "noCoordinates": "No Coordinates"
- },
- "pkiRegenerateDialog": {
- "title": "Regenerate Pre-Shared Key?",
- "description": "Are you sure you want to regenerate the pre-shared key?",
- "regenerate": "Regenerate"
- },
- "newDeviceDialog": {
- "title": "Connect New Device",
- "https": "https",
- "http": "http",
- "tabHttp": "HTTP",
- "tabBluetooth": "Bluetooth",
- "tabSerial": "Serial",
- "useHttps": "Use HTTPS",
- "connecting": "Connecting...",
- "connect": "Connect",
- "connectionFailedAlert": {
- "title": "Connection Failed",
- "descriptionPrefix": "Could not connect to the device. ",
- "httpsHint": "If using HTTPS, you may need to accept a self-signed certificate first. ",
- "openLinkPrefix": "Please open ",
- "openLinkSuffix": " in a new tab",
- "acceptTlsWarningSuffix": ", accept any TLS warnings if prompted, then try again",
- "learnMoreLink": "Learn more"
- },
- "httpConnection": {
- "label": "IP Address/Hostname",
- "placeholder": "000.000.000.000 / meshtastic.local"
- },
- "serialConnection": {
- "noDevicesPaired": "No devices paired yet.",
- "newDeviceButton": "New device",
- "deviceIdentifier": "# {{index}} - {{vendorId}} - {{productId}}"
- },
- "bluetoothConnection": {
- "noDevicesPaired": "No devices paired yet.",
- "newDeviceButton": "New device",
- "connectionFailed": "Connection failed",
- "deviceDisconnected": "Device disconnected",
- "unknownDevice": "Unknown Device",
- "errorLoadingDevices": "Error loading devices",
- "unknownErrorLoadingDevices": "Unknown error loading devices"
- },
- "validation": {
- "requiresWebBluetooth": "This connection type requires <0>Web Bluetooth0>. Please use a supported browser, like Chrome or Edge.",
- "requiresWebSerial": "This connection type requires <0>Web Serial0>. Please use a supported browser, like Chrome or Edge.",
- "requiresSecureContext": "This application requires a <0>secure context0>. Please connect using HTTPS or localhost.",
- "additionallyRequiresSecureContext": "Additionally, it requires a <0>secure context0>. Please connect using HTTPS or localhost."
- }
- },
- "nodeDetails": {
- "message": "Message",
- "requestPosition": "Request Position",
- "traceRoute": "Trace Route",
- "airTxUtilization": "Air TX utilization",
- "allRawMetrics": "All Raw Metrics:",
- "batteryLevel": "Battery level",
- "channelUtilization": "Channel utilization",
- "details": "Details:",
- "deviceMetrics": "Device Metrics:",
- "hardware": "Hardware: ",
- "lastHeard": "Last Heard: ",
- "nodeHexPrefix": "Node Hex: ",
- "nodeNumber": "Node Number: ",
- "position": "Position:",
- "role": "Role: ",
- "uptime": "Uptime: ",
- "voltage": "Voltage",
- "title": "Node Details for {{identifier}}",
- "ignoreNode": "Ignore node",
- "removeNode": "Remove node",
- "unignoreNode": "Unignore node",
- "security": "Security:",
- "publicKey": "Public Key: ",
- "messageable": "Messageable: ",
- "KeyManuallyVerifiedTrue": "Public Key has been manually verified",
- "KeyManuallyVerifiedFalse": "Public Key is not manually verified"
- },
- "pkiBackup": {
- "loseKeysWarning": "If you lose your keys, you will need to reset your device.",
- "secureBackup": "Its important to backup your public and private keys and store your backup securely!",
- "footer": "=== END OF KEYS ===",
- "header": "=== MESHTASTIC KEYS FOR {{longName}} ({{shortName}}) ===",
- "privateKey": "Private Key:",
- "publicKey": "Public Key:",
- "fileName": "meshtastic_keys_{{longName}}_{{shortName}}.txt",
- "title": "Backup Keys"
- },
- "pkiBackupReminder": {
- "description": "We recommend backing up your key data regularly. Would you like to back up now?",
- "title": "Backup Reminder",
- "remindLaterPrefix": "Remind me in",
- "remindNever": "Never remind me",
- "backupNow": "Back up now"
- },
- "pkiRegenerate": {
- "description": "Are you sure you want to regenerate key pair?",
- "title": "Regenerate Key Pair"
- },
- "qr": {
- "addChannels": "Add Channels",
- "replaceChannels": "Replace Channels",
- "description": "The current LoRa configuration will also be shared.",
- "sharableUrl": "Sharable URL",
- "title": "Generate QR Code"
- },
- "reboot": {
- "title": "Reboot device",
- "description": "Reboot now or schedule a reboot of the connected node. Optionally, you can choose to reboot into OTA (Over-the-Air) mode.",
- "ota": "Reboot into OTA mode",
- "enterDelay": "Enter delay",
- "scheduled": "Reboot has been scheduled",
- "schedule": "Schedule reboot",
- "now": "Reboot now",
- "cancel": "Cancel scheduled reboot"
- },
- "refreshKeys": {
- "description": {
- "acceptNewKeys": "This will remove the node from device and request new keys.",
- "keyMismatchReasonSuffix": ". This is due to the remote node's current public key does not match the previously stored key for this node.",
- "unableToSendDmPrefix": "Your node is unable to send a direct message to node: "
- },
- "acceptNewKeys": "Accept New Keys",
- "title": "Keys Mismatch - {{identifier}}"
- },
- "removeNode": {
- "description": "Are you sure you want to remove this Node?",
- "title": "Remove Node?"
- },
- "shutdown": {
- "title": "Schedule Shutdown",
- "description": "Turn off the connected node after x minutes."
- },
- "traceRoute": {
- "routeToDestination": "Route to destination:",
- "routeBack": "Route back:"
- },
- "tracerouteResponse": {
- "title": "Traceroute: {{identifier}}"
- },
- "unsafeRoles": {
- "confirmUnderstanding": "Yes, I know what I'm doing",
- "conjunction": " and the blog post about ",
- "postamble": " and understand the implications of changing the role.",
- "preamble": "I have read the ",
- "choosingRightDeviceRole": "Choosing The Right Device Role",
- "deviceRoleDocumentation": "Device Role Documentation",
- "title": "Are you sure?"
- },
- "managedMode": {
- "confirmUnderstanding": "Yes, I know what I'm doing",
- "title": "Are you sure?",
- "description": "Enabling Managed Mode blocks client applications (including the web client) from writing configurations to a radio. Once enabled, radio configurations can only be changed through Remote Admin messages. This setting is not required for remote node administration."
- },
- "clientNotification": {
- "title": "Client Notification",
- "TraceRoute can only be sent once every 30 seconds": "TraceRoute can only be sent once every 30 seconds",
- "Compromised keys were detected and regenerated.": "Compromised keys were detected and regenerated."
- }
+ "deleteMessages": {
+ "description": "This action will clear all message history. This cannot be undone. Are you sure you want to continue?",
+ "title": "Clear All Messages"
+ },
+ "deviceName": {
+ "description": "The Device will restart once the config is saved.",
+ "longName": "Long Name",
+ "shortName": "Short Name",
+ "title": "Change Device Name",
+ "validation": {
+ "longNameMax": "Long name must not be more than 40 characters",
+ "shortNameMax": "Short name must not be more than 4 characters",
+ "longNameMin": "Long name must have at least 1 character",
+ "shortNameMin": "Short name must have at least 1 character"
+ }
+ },
+ "import": {
+ "description": "The current LoRa configuration will be overridden.",
+ "error": {
+ "invalidUrl": "Invalid Meshtastic URL"
+ },
+ "channelPrefix": "Channel: ",
+ "primary": "Primary ",
+ "doNotImport": "No not import",
+ "channelName": "Назва",
+ "channelSlot": "Slot",
+ "channelSetUrl": "Channel Set/QR Code URL",
+ "useLoraConfig": "Import LoRa Config",
+ "presetDescription": "The current LoRa Config will be replaced.",
+ "title": "Import Channel Set"
+ },
+ "locationResponse": {
+ "title": "Location: {{identifier}}",
+ "altitude": "Altitude: ",
+ "coordinates": "Coordinates: ",
+ "noCoordinates": "No Coordinates"
+ },
+ "pkiRegenerateDialog": {
+ "title": "Regenerate Pre-Shared Key?",
+ "description": "Are you sure you want to regenerate the pre-shared key?",
+ "regenerate": "Regenerate"
+ },
+ "newDeviceDialog": {
+ "title": "Connect New Device",
+ "https": "https",
+ "http": "http",
+ "tabHttp": "HTTP",
+ "tabBluetooth": "Bluetooth",
+ "tabSerial": "Serial",
+ "useHttps": "Use HTTPS",
+ "connecting": "Connecting...",
+ "connect": "Connect",
+ "connectionFailedAlert": {
+ "title": "Connection Failed",
+ "descriptionPrefix": "Could not connect to the device. ",
+ "httpsHint": "If using HTTPS, you may need to accept a self-signed certificate first. ",
+ "openLinkPrefix": "Please open ",
+ "openLinkSuffix": " in a new tab",
+ "acceptTlsWarningSuffix": ", accept any TLS warnings if prompted, then try again",
+ "learnMoreLink": "Learn more"
+ },
+ "httpConnection": {
+ "label": "IP Address/Hostname",
+ "placeholder": "000.000.000.000 / meshtastic.local"
+ },
+ "serialConnection": {
+ "noDevicesPaired": "No devices paired yet.",
+ "newDeviceButton": "New device",
+ "deviceIdentifier": "# {{index}} - {{vendorId}} - {{productId}}"
+ },
+ "bluetoothConnection": {
+ "noDevicesPaired": "No devices paired yet.",
+ "newDeviceButton": "New device",
+ "connectionFailed": "Connection failed",
+ "deviceDisconnected": "Device disconnected",
+ "unknownDevice": "Unknown Device",
+ "errorLoadingDevices": "Error loading devices",
+ "unknownErrorLoadingDevices": "Unknown error loading devices"
+ },
+ "validation": {
+ "requiresWebBluetooth": "This connection type requires <0>Web Bluetooth0>. Please use a supported browser, like Chrome or Edge.",
+ "requiresWebSerial": "This connection type requires <0>Web Serial0>. Please use a supported browser, like Chrome or Edge.",
+ "requiresSecureContext": "This application requires a <0>secure context0>. Please connect using HTTPS or localhost.",
+ "additionallyRequiresSecureContext": "Additionally, it requires a <0>secure context0>. Please connect using HTTPS or localhost."
+ }
+ },
+ "nodeDetails": {
+ "message": "Message",
+ "requestPosition": "Request Position",
+ "traceRoute": "Trace Route",
+ "airTxUtilization": "Air TX utilization",
+ "allRawMetrics": "All Raw Metrics:",
+ "batteryLevel": "Battery level",
+ "channelUtilization": "Channel utilization",
+ "details": "Details:",
+ "deviceMetrics": "Device Metrics:",
+ "hardware": "Hardware: ",
+ "lastHeard": "Last Heard: ",
+ "nodeHexPrefix": "Node Hex: ",
+ "nodeNumber": "Node Number: ",
+ "position": "Position:",
+ "role": "Role: ",
+ "uptime": "Uptime: ",
+ "voltage": "Voltage",
+ "title": "Node Details for {{identifier}}",
+ "ignoreNode": "Ignore node",
+ "removeNode": "Remove node",
+ "unignoreNode": "Unignore node",
+ "security": "Security:",
+ "publicKey": "Public Key: ",
+ "messageable": "Messageable: ",
+ "KeyManuallyVerifiedTrue": "Public Key has been manually verified",
+ "KeyManuallyVerifiedFalse": "Public Key is not manually verified"
+ },
+ "pkiBackup": {
+ "loseKeysWarning": "If you lose your keys, you will need to reset your device.",
+ "secureBackup": "Its important to backup your public and private keys and store your backup securely!",
+ "footer": "=== END OF KEYS ===",
+ "header": "=== MESHTASTIC KEYS FOR {{longName}} ({{shortName}}) ===",
+ "privateKey": "Private Key:",
+ "publicKey": "Public Key:",
+ "fileName": "meshtastic_keys_{{longName}}_{{shortName}}.txt",
+ "title": "Backup Keys"
+ },
+ "pkiBackupReminder": {
+ "description": "We recommend backing up your key data regularly. Would you like to back up now?",
+ "title": "Backup Reminder",
+ "remindLaterPrefix": "Remind me in",
+ "remindNever": "Never remind me",
+ "backupNow": "Back up now"
+ },
+ "pkiRegenerate": {
+ "description": "Are you sure you want to regenerate key pair?",
+ "title": "Regenerate Key Pair"
+ },
+ "qr": {
+ "addChannels": "Add Channels",
+ "replaceChannels": "Replace Channels",
+ "description": "The current LoRa configuration will also be shared.",
+ "sharableUrl": "Sharable URL",
+ "title": "Generate QR Code"
+ },
+ "reboot": {
+ "title": "Reboot device",
+ "description": "Reboot now or schedule a reboot of the connected node. Optionally, you can choose to reboot into OTA (Over-the-Air) mode.",
+ "ota": "Reboot into OTA mode",
+ "enterDelay": "Enter delay",
+ "scheduled": "Reboot has been scheduled",
+ "schedule": "Schedule reboot",
+ "now": "Reboot now",
+ "cancel": "Cancel scheduled reboot"
+ },
+ "refreshKeys": {
+ "description": {
+ "acceptNewKeys": "This will remove the node from device and request new keys.",
+ "keyMismatchReasonSuffix": ". This is due to the remote node's current public key does not match the previously stored key for this node.",
+ "unableToSendDmPrefix": "Your node is unable to send a direct message to node: "
+ },
+ "acceptNewKeys": "Accept New Keys",
+ "title": "Keys Mismatch - {{identifier}}"
+ },
+ "removeNode": {
+ "description": "Are you sure you want to remove this Node?",
+ "title": "Remove Node?"
+ },
+ "shutdown": {
+ "title": "Schedule Shutdown",
+ "description": "Turn off the connected node after x minutes."
+ },
+ "traceRoute": {
+ "routeToDestination": "Route to destination:",
+ "routeBack": "Route back:"
+ },
+ "tracerouteResponse": {
+ "title": "Traceroute: {{identifier}}"
+ },
+ "unsafeRoles": {
+ "confirmUnderstanding": "Yes, I know what I'm doing",
+ "conjunction": " and the blog post about ",
+ "postamble": " and understand the implications of changing the role.",
+ "preamble": "I have read the ",
+ "choosingRightDeviceRole": "Choosing The Right Device Role",
+ "deviceRoleDocumentation": "Device Role Documentation",
+ "title": "Are you sure?"
+ },
+ "managedMode": {
+ "confirmUnderstanding": "Yes, I know what I'm doing",
+ "title": "Are you sure?",
+ "description": "Enabling Managed Mode blocks client applications (including the web client) from writing configurations to a radio. Once enabled, radio configurations can only be changed through Remote Admin messages. This setting is not required for remote node administration."
+ },
+ "clientNotification": {
+ "title": "Client Notification",
+ "TraceRoute can only be sent once every 30 seconds": "TraceRoute can only be sent once every 30 seconds",
+ "Compromised keys were detected and regenerated.": "Compromised keys were detected and regenerated."
+ },
+ "resetNodeDb": {
+ "title": "Reset Node Database",
+ "description": "This will clear all nodes from the connected device's node database and clear all message history in the client. This cannot be undone. Are you sure you want to continue?",
+ "confirm": "Reset Node Database",
+ "failedTitle": "There was an error resetting the Node DB. Please try again."
+ },
+ "clearAllStores": {
+ "title": "Clear All Local Storage",
+ "description": "This will clear all locally stored data, including message history and node databases for all previously connected devices. This will require you to reconnect to your node once complete and cannot be undone. Are you sure you want to continue?",
+ "confirm": "Clear all local storage",
+ "failedTitle": "There was an error clearing local storage. Please try again."
+ },
+ "factoryResetDevice": {
+ "title": "Factory Reset Device",
+ "description": "This will factory reset the connected device, erasing all configurations and data on the device as well as all nodes and messages saved in the client. This cannot be undone. Are you sure you want to continue?",
+ "confirm": "Factory Reset Device",
+ "failedTitle": "There was an error performing the factory reset. Please try again."
+ },
+ "factoryResetConfig": {
+ "title": "Factory Reset Config",
+ "description": "This will factory reset the configuration on the connected device, erasing all configurations on the device. This cannot be undone. Are you sure you want to continue?",
+ "confirm": "Factory Reset Config",
+ "failedTitle": "There was an error performing the factory reset. Please try again."
+ }
}
diff --git a/packages/web/public/i18n/locales/be-BY/map.json b/packages/web/public/i18n/locales/be-BY/map.json
new file mode 100644
index 00000000..887b0d29
--- /dev/null
+++ b/packages/web/public/i18n/locales/be-BY/map.json
@@ -0,0 +1,38 @@
+{
+ "maplibre": {
+ "GeolocateControl.FindMyLocation": "Find my location",
+ "NavigationControl.ZoomIn": "Zoom in",
+ "NavigationControl.ZoomOut": "Zoom out",
+ "CooperativeGesturesHandler.WindowsHelpText": "Use Ctrl + scroll to zoom the map",
+ "CooperativeGesturesHandler.MacHelpText": "Use ⌘ + scroll to zoom the map",
+ "CooperativeGesturesHandler.MobileHelpText": "Use two fingers to move the map"
+ },
+ "layerTool": {
+ "nodeMarkers": "Show nodes",
+ "directNeighbors": "Show direct connections",
+ "remoteNeighbors": "Show remote connections",
+ "positionPrecision": "Show position precision",
+ "traceroutes": "Show traceroutes",
+ "waypoints": "Show waypoints"
+ },
+ "mapMenu": {
+ "locateAria": "Locate my node",
+ "layersAria": "Change map style"
+ },
+ "waypointDetail": {
+ "edit": "Змяніць",
+ "description": "Description:",
+ "createdBy": "Edited by:",
+ "createdDate": "Created:",
+ "updated": "Updated:",
+ "expires": "Expires:",
+ "distance": "Distance:",
+ "bearing": "Absolute bearing:",
+ "lockedTo": "Locked by:",
+ "latitude": "Latitude:",
+ "longitude": "Longitude:"
+ },
+ "myNode": {
+ "tooltip": "This device"
+ }
+}
diff --git a/packages/web/public/i18n/locales/be-BY/messages.json b/packages/web/public/i18n/locales/be-BY/messages.json
index 7a50b569..3b7dbeb4 100644
--- a/packages/web/public/i18n/locales/be-BY/messages.json
+++ b/packages/web/public/i18n/locales/be-BY/messages.json
@@ -1,39 +1,39 @@
{
- "page": {
- "title": "Messages: {{chatName}}",
- "placeholder": "Enter Message"
- },
- "emptyState": {
- "title": "Select a Chat",
- "text": "No messages yet."
- },
- "selectChatPrompt": {
- "text": "Select a channel or node to start messaging."
- },
- "sendMessage": {
- "placeholder": "Enter your message here...",
- "sendButton": "Send"
- },
- "actionsMenu": {
- "addReactionLabel": "Add Reaction",
- "replyLabel": "Reply"
- },
- "deliveryStatus": {
- "delivered": {
- "label": "Message delivered",
- "displayText": "Message delivered"
- },
- "failed": {
- "label": "Message delivery failed",
- "displayText": "Delivery failed"
- },
- "unknown": {
- "label": "Message status unknown",
- "displayText": "Unknown state"
- },
- "waiting": {
- "label": "Sending message",
- "displayText": "Waiting for delivery"
- }
- }
+ "page": {
+ "title": "Messages: {{chatName}}",
+ "placeholder": "Enter Message"
+ },
+ "emptyState": {
+ "title": "Select a Chat",
+ "text": "No messages yet."
+ },
+ "selectChatPrompt": {
+ "text": "Select a channel or node to start messaging."
+ },
+ "sendMessage": {
+ "placeholder": "Enter your message here...",
+ "sendButton": "Send"
+ },
+ "actionsMenu": {
+ "addReactionLabel": "Add Reaction",
+ "replyLabel": "Reply"
+ },
+ "deliveryStatus": {
+ "delivered": {
+ "label": "Message delivered",
+ "displayText": "Message delivered"
+ },
+ "failed": {
+ "label": "Message delivery failed",
+ "displayText": "Delivery failed"
+ },
+ "unknown": {
+ "label": "Message status unknown",
+ "displayText": "Unknown state"
+ },
+ "waiting": {
+ "label": "Sending message",
+ "displayText": "Waiting for delivery"
+ }
+ }
}
diff --git a/packages/web/public/i18n/locales/be-BY/moduleConfig.json b/packages/web/public/i18n/locales/be-BY/moduleConfig.json
index ee740193..f3599598 100644
--- a/packages/web/public/i18n/locales/be-BY/moduleConfig.json
+++ b/packages/web/public/i18n/locales/be-BY/moduleConfig.json
@@ -1,448 +1,448 @@
{
- "page": {
- "tabAmbientLighting": "Ambient Lighting",
- "tabAudio": "Audio",
- "tabCannedMessage": "Canned",
- "tabDetectionSensor": "Detection Sensor",
- "tabExternalNotification": "Ext Notif",
- "tabMqtt": "MQTT",
- "tabNeighborInfo": "Neighbor Info",
- "tabPaxcounter": "Paxcounter",
- "tabRangeTest": "Range Test",
- "tabSerial": "Serial",
- "tabStoreAndForward": "S&F",
- "tabTelemetry": "Telemetry"
- },
- "ambientLighting": {
- "title": "Ambient Lighting Settings",
- "description": "Settings for the Ambient Lighting module",
- "ledState": {
- "label": "LED State",
- "description": "Sets LED to on or off"
- },
- "current": {
- "label": "Current",
- "description": "Sets the current for the LED output. Default is 10"
- },
- "red": {
- "label": "Red",
- "description": "Sets the red LED level. Values are 0-255"
- },
- "green": {
- "label": "Green",
- "description": "Sets the green LED level. Values are 0-255"
- },
- "blue": {
- "label": "Blue",
- "description": "Sets the blue LED level. Values are 0-255"
- }
- },
- "audio": {
- "title": "Audio Settings",
- "description": "Settings for the Audio module",
- "codec2Enabled": {
- "label": "Codec 2 Enabled",
- "description": "Enable Codec 2 audio encoding"
- },
- "pttPin": {
- "label": "PTT Pin",
- "description": "GPIO pin to use for PTT"
- },
- "bitrate": {
- "label": "Bitrate",
- "description": "Bitrate to use for audio encoding"
- },
- "i2sWs": {
- "label": "i2S WS",
- "description": "GPIO pin to use for i2S WS"
- },
- "i2sSd": {
- "label": "i2S SD",
- "description": "GPIO pin to use for i2S SD"
- },
- "i2sDin": {
- "label": "i2S DIN",
- "description": "GPIO pin to use for i2S DIN"
- },
- "i2sSck": {
- "label": "i2S SCK",
- "description": "GPIO pin to use for i2S SCK"
- }
- },
- "cannedMessage": {
- "title": "Canned Message Settings",
- "description": "Settings for the Canned Message module",
- "moduleEnabled": {
- "label": "Module Enabled",
- "description": "Enable Canned Message"
- },
- "rotary1Enabled": {
- "label": "Rotary Encoder #1 Enabled",
- "description": "Enable the rotary encoder"
- },
- "inputbrokerPinA": {
- "label": "Encoder Pin A",
- "description": "GPIO Pin Value (1-39) For encoder port A"
- },
- "inputbrokerPinB": {
- "label": "Encoder Pin B",
- "description": "GPIO Pin Value (1-39) For encoder port B"
- },
- "inputbrokerPinPress": {
- "label": "Encoder Pin Press",
- "description": "GPIO Pin Value (1-39) For encoder Press"
- },
- "inputbrokerEventCw": {
- "label": "Clockwise event",
- "description": "Select input event."
- },
- "inputbrokerEventCcw": {
- "label": "Counter Clockwise event",
- "description": "Select input event."
- },
- "inputbrokerEventPress": {
- "label": "Press event",
- "description": "Select input event"
- },
- "updown1Enabled": {
- "label": "Up Down enabled",
- "description": "Enable the up / down encoder"
- },
- "allowInputSource": {
- "label": "Allow Input Source",
- "description": "Select from: '_any', 'rotEnc1', 'upDownEnc1', 'cardkb'"
- },
- "sendBell": {
- "label": "Send Bell",
- "description": "Sends a bell character with each message"
- }
- },
- "detectionSensor": {
- "title": "Detection Sensor Settings",
- "description": "Settings for the Detection Sensor module",
- "enabled": {
- "label": "Enabled",
- "description": "Enable or disable Detection Sensor Module"
- },
- "minimumBroadcastSecs": {
- "label": "Minimum Broadcast Seconds",
- "description": "The interval in seconds of how often we can send a message to the mesh when a state change is detected"
- },
- "stateBroadcastSecs": {
- "label": "State Broadcast Seconds",
- "description": "The interval in seconds of how often we should send a message to the mesh with the current state regardless of changes"
- },
- "sendBell": {
- "label": "Send Bell",
- "description": "Send ASCII bell with alert message"
- },
- "name": {
- "label": "Friendly Name",
- "description": "Used to format the message sent to mesh, max 20 Characters"
- },
- "monitorPin": {
- "label": "Monitor Pin",
- "description": "The GPIO pin to monitor for state changes"
- },
- "detectionTriggerType": {
- "label": "Detection Triggered Type",
- "description": "The type of trigger event to be used"
- },
- "usePullup": {
- "label": "Use Pullup",
- "description": "Whether or not use INPUT_PULLUP mode for GPIO pin"
- }
- },
- "externalNotification": {
- "title": "External Notification Settings",
- "description": "Configure the external notification module",
- "enabled": {
- "label": "Module Enabled",
- "description": "Enable External Notification"
- },
- "outputMs": {
- "label": "Output MS",
- "description": "Output MS"
- },
- "output": {
- "label": "Output",
- "description": "Output"
- },
- "outputVibra": {
- "label": "Output Vibrate",
- "description": "Output Vibrate"
- },
- "outputBuzzer": {
- "label": "Output Buzzer",
- "description": "Output Buzzer"
- },
- "active": {
- "label": "Active",
- "description": "Active"
- },
- "alertMessage": {
- "label": "Alert Message",
- "description": "Alert Message"
- },
- "alertMessageVibra": {
- "label": "Alert Message Vibrate",
- "description": "Alert Message Vibrate"
- },
- "alertMessageBuzzer": {
- "label": "Alert Message Buzzer",
- "description": "Alert Message Buzzer"
- },
- "alertBell": {
- "label": "Alert Bell",
- "description": "Should an alert be triggered when receiving an incoming bell?"
- },
- "alertBellVibra": {
- "label": "Alert Bell Vibrate",
- "description": "Alert Bell Vibrate"
- },
- "alertBellBuzzer": {
- "label": "Alert Bell Buzzer",
- "description": "Alert Bell Buzzer"
- },
- "usePwm": {
- "label": "Use PWM",
- "description": "Use PWM"
- },
- "nagTimeout": {
- "label": "Nag Timeout",
- "description": "Nag Timeout"
- },
- "useI2sAsBuzzer": {
- "label": "Use I²S Pin as Buzzer",
- "description": "Designate I²S Pin as Buzzer Output"
- }
- },
- "mqtt": {
- "title": "MQTT Settings",
- "description": "Settings for the MQTT module",
- "enabled": {
- "label": "Enabled",
- "description": "Enable or disable MQTT"
- },
- "address": {
- "label": "MQTT Server Address",
- "description": "MQTT server address to use for default/custom servers"
- },
- "username": {
- "label": "MQTT Username",
- "description": "MQTT username to use for default/custom servers"
- },
- "password": {
- "label": "MQTT Password",
- "description": "MQTT password to use for default/custom servers"
- },
- "encryptionEnabled": {
- "label": "Encryption Enabled",
- "description": "Enable or disable MQTT encryption. Note: All messages are sent to the MQTT broker unencrypted if this option is not enabled, even when your uplink channels have encryption keys set. This includes position data."
- },
- "jsonEnabled": {
- "label": "JSON Enabled",
- "description": "Whether to send/consume JSON packets on MQTT"
- },
- "tlsEnabled": {
- "label": "TLS Enabled",
- "description": "Enable or disable TLS"
- },
- "root": {
- "label": "Root topic",
- "description": "MQTT root topic to use for default/custom servers"
- },
- "proxyToClientEnabled": {
- "label": "MQTT Client Proxy Enabled",
- "description": "Utilizes the network connection to proxy MQTT messages to the client."
- },
- "mapReportingEnabled": {
- "label": "Map Reporting Enabled",
- "description": "Your node will periodically send an unencrypted map report packet to the configured MQTT server, this includes id, short and long name, approximate location, hardware model, role, firmware version, LoRa region, modem preset and primary channel name."
- },
- "mapReportSettings": {
- "publishIntervalSecs": {
- "label": "Map Report Publish Interval (s)",
- "description": "Interval in seconds to publish map reports"
- },
- "positionPrecision": {
- "label": "Approximate Location",
- "description": "Position shared will be accurate within this distance",
- "options": {
- "metric_km23": "Within 23 km",
- "metric_km12": "Within 12 km",
- "metric_km5_8": "Within 5.8 km",
- "metric_km2_9": "Within 2.9 km",
- "metric_km1_5": "Within 1.5 km",
- "metric_m700": "Within 700 m",
- "metric_m350": "Within 350 m",
- "metric_m200": "Within 200 m",
- "metric_m90": "Within 90 m",
- "metric_m50": "Within 50 m",
- "imperial_mi15": "Within 15 miles",
- "imperial_mi7_3": "Within 7.3 miles",
- "imperial_mi3_6": "Within 3.6 miles",
- "imperial_mi1_8": "Within 1.8 miles",
- "imperial_mi0_9": "Within 0.9 miles",
- "imperial_mi0_5": "Within 0.5 miles",
- "imperial_mi0_2": "Within 0.2 miles",
- "imperial_ft600": "Within 600 feet",
- "imperial_ft300": "Within 300 feet",
- "imperial_ft150": "Within 150 feet"
- }
- }
- }
- },
- "neighborInfo": {
- "title": "Neighbor Info Settings",
- "description": "Settings for the Neighbor Info module",
- "enabled": {
- "label": "Enabled",
- "description": "Enable or disable Neighbor Info Module"
- },
- "updateInterval": {
- "label": "Update Interval",
- "description": "Interval in seconds of how often we should try to send our Neighbor Info to the mesh"
- }
- },
- "paxcounter": {
- "title": "Paxcounter Settings",
- "description": "Settings for the Paxcounter module",
- "enabled": {
- "label": "Module Enabled",
- "description": "Enable Paxcounter"
- },
- "paxcounterUpdateInterval": {
- "label": "Update Interval (seconds)",
- "description": "How long to wait between sending paxcounter packets"
- },
- "wifiThreshold": {
- "label": "WiFi RSSI Threshold",
- "description": "At what WiFi RSSI level should the counter increase. Defaults to -80."
- },
- "bleThreshold": {
- "label": "BLE RSSI Threshold",
- "description": "At what BLE RSSI level should the counter increase. Defaults to -80."
- }
- },
- "rangeTest": {
- "title": "Range Test Settings",
- "description": "Settings for the Range Test module",
- "enabled": {
- "label": "Module Enabled",
- "description": "Enable Range Test"
- },
- "sender": {
- "label": "Message Interval",
- "description": "How long to wait between sending test packets"
- },
- "save": {
- "label": "Save CSV to storage",
- "description": "ESP32 Only"
- }
- },
- "serial": {
- "title": "Serial Settings",
- "description": "Settings for the Serial module",
- "enabled": {
- "label": "Module Enabled",
- "description": "Enable Serial output"
- },
- "echo": {
- "label": "Echo",
- "description": "Any packets you send will be echoed back to your device"
- },
- "rxd": {
- "label": "Receive Pin",
- "description": "Set the GPIO pin to the RXD pin you have set up."
- },
- "txd": {
- "label": "Transmit Pin",
- "description": "Set the GPIO pin to the TXD pin you have set up."
- },
- "baud": {
- "label": "Baud Rate",
- "description": "The serial baud rate"
- },
- "timeout": {
- "label": "Timeout",
- "description": "Seconds to wait before we consider your packet as 'done'"
- },
- "mode": {
- "label": "Mode",
- "description": "Select Mode"
- },
- "overrideConsoleSerialPort": {
- "label": "Override Console Serial Port",
- "description": "If you have a serial port connected to the console, this will override it."
- }
- },
- "storeForward": {
- "title": "Store & Forward Settings",
- "description": "Settings for the Store & Forward module",
- "enabled": {
- "label": "Module Enabled",
- "description": "Enable Store & Forward"
- },
- "heartbeat": {
- "label": "Heartbeat Enabled",
- "description": "Enable Store & Forward heartbeat"
- },
- "records": {
- "label": "Number of records",
- "description": "Number of records to store"
- },
- "historyReturnMax": {
- "label": "History return max",
- "description": "Max number of records to return"
- },
- "historyReturnWindow": {
- "label": "History return window",
- "description": "Return records from this time window (minutes)"
- }
- },
- "telemetry": {
- "title": "Telemetry Settings",
- "description": "Settings for the Telemetry module",
- "deviceUpdateInterval": {
- "label": "Device Metrics",
- "description": "Device metrics update interval (seconds)"
- },
- "environmentUpdateInterval": {
- "label": "Environment metrics update interval (seconds)",
- "description": ""
- },
- "environmentMeasurementEnabled": {
- "label": "Module Enabled",
- "description": "Enable the Environment Telemetry"
- },
- "environmentScreenEnabled": {
- "label": "Displayed on Screen",
- "description": "Show the Telemetry Module on the OLED"
- },
- "environmentDisplayFahrenheit": {
- "label": "Display Fahrenheit",
- "description": "Display temp in Fahrenheit"
- },
- "airQualityEnabled": {
- "label": "Air Quality Enabled",
- "description": "Enable the Air Quality Telemetry"
- },
- "airQualityInterval": {
- "label": "Air Quality Update Interval",
- "description": "How often to send Air Quality data over the mesh"
- },
- "powerMeasurementEnabled": {
- "label": "Power Measurement Enabled",
- "description": "Enable the Power Measurement Telemetry"
- },
- "powerUpdateInterval": {
- "label": "Power Update Interval",
- "description": "How often to send Power data over the mesh"
- },
- "powerScreenEnabled": {
- "label": "Power Screen Enabled",
- "description": "Enable the Power Telemetry Screen"
- }
- }
+ "page": {
+ "tabAmbientLighting": "Ambient Lighting",
+ "tabAudio": "Audio",
+ "tabCannedMessage": "Canned",
+ "tabDetectionSensor": "Detection Sensor",
+ "tabExternalNotification": "Ext Notif",
+ "tabMqtt": "MQTT",
+ "tabNeighborInfo": "Neighbor Info",
+ "tabPaxcounter": "Paxcounter",
+ "tabRangeTest": "Range Test",
+ "tabSerial": "Serial",
+ "tabStoreAndForward": "S&F",
+ "tabTelemetry": "Telemetry"
+ },
+ "ambientLighting": {
+ "title": "Ambient Lighting Settings",
+ "description": "Settings for the Ambient Lighting module",
+ "ledState": {
+ "label": "LED State",
+ "description": "Sets LED to on or off"
+ },
+ "current": {
+ "label": "Current",
+ "description": "Sets the current for the LED output. Default is 10"
+ },
+ "red": {
+ "label": "Red",
+ "description": "Sets the red LED level. Values are 0-255"
+ },
+ "green": {
+ "label": "Green",
+ "description": "Sets the green LED level. Values are 0-255"
+ },
+ "blue": {
+ "label": "Blue",
+ "description": "Sets the blue LED level. Values are 0-255"
+ }
+ },
+ "audio": {
+ "title": "Audio Settings",
+ "description": "Settings for the Audio module",
+ "codec2Enabled": {
+ "label": "Codec 2 Enabled",
+ "description": "Enable Codec 2 audio encoding"
+ },
+ "pttPin": {
+ "label": "PTT Pin",
+ "description": "GPIO pin to use for PTT"
+ },
+ "bitrate": {
+ "label": "Bitrate",
+ "description": "Bitrate to use for audio encoding"
+ },
+ "i2sWs": {
+ "label": "i2S WS",
+ "description": "GPIO pin to use for i2S WS"
+ },
+ "i2sSd": {
+ "label": "i2S SD",
+ "description": "GPIO pin to use for i2S SD"
+ },
+ "i2sDin": {
+ "label": "i2S DIN",
+ "description": "GPIO pin to use for i2S DIN"
+ },
+ "i2sSck": {
+ "label": "i2S SCK",
+ "description": "GPIO pin to use for i2S SCK"
+ }
+ },
+ "cannedMessage": {
+ "title": "Canned Message Settings",
+ "description": "Settings for the Canned Message module",
+ "moduleEnabled": {
+ "label": "Module Enabled",
+ "description": "Enable Canned Message"
+ },
+ "rotary1Enabled": {
+ "label": "Rotary Encoder #1 Enabled",
+ "description": "Enable the rotary encoder"
+ },
+ "inputbrokerPinA": {
+ "label": "Encoder Pin A",
+ "description": "GPIO Pin Value (1-39) For encoder port A"
+ },
+ "inputbrokerPinB": {
+ "label": "Encoder Pin B",
+ "description": "GPIO Pin Value (1-39) For encoder port B"
+ },
+ "inputbrokerPinPress": {
+ "label": "Encoder Pin Press",
+ "description": "GPIO Pin Value (1-39) For encoder Press"
+ },
+ "inputbrokerEventCw": {
+ "label": "Clockwise event",
+ "description": "Select input event."
+ },
+ "inputbrokerEventCcw": {
+ "label": "Counter Clockwise event",
+ "description": "Select input event."
+ },
+ "inputbrokerEventPress": {
+ "label": "Press event",
+ "description": "Select input event"
+ },
+ "updown1Enabled": {
+ "label": "Up Down enabled",
+ "description": "Enable the up / down encoder"
+ },
+ "allowInputSource": {
+ "label": "Allow Input Source",
+ "description": "Select from: '_any', 'rotEnc1', 'upDownEnc1', 'cardkb'"
+ },
+ "sendBell": {
+ "label": "Send Bell",
+ "description": "Sends a bell character with each message"
+ }
+ },
+ "detectionSensor": {
+ "title": "Detection Sensor Settings",
+ "description": "Settings for the Detection Sensor module",
+ "enabled": {
+ "label": "Enabled",
+ "description": "Enable or disable Detection Sensor Module"
+ },
+ "minimumBroadcastSecs": {
+ "label": "Minimum Broadcast Seconds",
+ "description": "The interval in seconds of how often we can send a message to the mesh when a state change is detected"
+ },
+ "stateBroadcastSecs": {
+ "label": "State Broadcast Seconds",
+ "description": "The interval in seconds of how often we should send a message to the mesh with the current state regardless of changes"
+ },
+ "sendBell": {
+ "label": "Send Bell",
+ "description": "Send ASCII bell with alert message"
+ },
+ "name": {
+ "label": "Friendly Name",
+ "description": "Used to format the message sent to mesh, max 20 Characters"
+ },
+ "monitorPin": {
+ "label": "Monitor Pin",
+ "description": "The GPIO pin to monitor for state changes"
+ },
+ "detectionTriggerType": {
+ "label": "Detection Triggered Type",
+ "description": "The type of trigger event to be used"
+ },
+ "usePullup": {
+ "label": "Use Pullup",
+ "description": "Whether or not use INPUT_PULLUP mode for GPIO pin"
+ }
+ },
+ "externalNotification": {
+ "title": "External Notification Settings",
+ "description": "Configure the external notification module",
+ "enabled": {
+ "label": "Module Enabled",
+ "description": "Enable External Notification"
+ },
+ "outputMs": {
+ "label": "Output MS",
+ "description": "Output MS"
+ },
+ "output": {
+ "label": "Output",
+ "description": "Output"
+ },
+ "outputVibra": {
+ "label": "Output Vibrate",
+ "description": "Output Vibrate"
+ },
+ "outputBuzzer": {
+ "label": "Output Buzzer",
+ "description": "Output Buzzer"
+ },
+ "active": {
+ "label": "Active",
+ "description": "Active"
+ },
+ "alertMessage": {
+ "label": "Alert Message",
+ "description": "Alert Message"
+ },
+ "alertMessageVibra": {
+ "label": "Alert Message Vibrate",
+ "description": "Alert Message Vibrate"
+ },
+ "alertMessageBuzzer": {
+ "label": "Alert Message Buzzer",
+ "description": "Alert Message Buzzer"
+ },
+ "alertBell": {
+ "label": "Alert Bell",
+ "description": "Should an alert be triggered when receiving an incoming bell?"
+ },
+ "alertBellVibra": {
+ "label": "Alert Bell Vibrate",
+ "description": "Alert Bell Vibrate"
+ },
+ "alertBellBuzzer": {
+ "label": "Alert Bell Buzzer",
+ "description": "Alert Bell Buzzer"
+ },
+ "usePwm": {
+ "label": "Use PWM",
+ "description": "Use PWM"
+ },
+ "nagTimeout": {
+ "label": "Nag Timeout",
+ "description": "Nag Timeout"
+ },
+ "useI2sAsBuzzer": {
+ "label": "Use I²S Pin as Buzzer",
+ "description": "Designate I²S Pin as Buzzer Output"
+ }
+ },
+ "mqtt": {
+ "title": "MQTT Settings",
+ "description": "Settings for the MQTT module",
+ "enabled": {
+ "label": "Enabled",
+ "description": "Enable or disable MQTT"
+ },
+ "address": {
+ "label": "MQTT Server Address",
+ "description": "MQTT server address to use for default/custom servers"
+ },
+ "username": {
+ "label": "MQTT Username",
+ "description": "MQTT username to use for default/custom servers"
+ },
+ "password": {
+ "label": "MQTT Password",
+ "description": "MQTT password to use for default/custom servers"
+ },
+ "encryptionEnabled": {
+ "label": "Encryption Enabled",
+ "description": "Enable or disable MQTT encryption. Note: All messages are sent to the MQTT broker unencrypted if this option is not enabled, even when your uplink channels have encryption keys set. This includes position data."
+ },
+ "jsonEnabled": {
+ "label": "JSON Enabled",
+ "description": "Whether to send/consume JSON packets on MQTT"
+ },
+ "tlsEnabled": {
+ "label": "TLS Enabled",
+ "description": "Enable or disable TLS"
+ },
+ "root": {
+ "label": "Root topic",
+ "description": "MQTT root topic to use for default/custom servers"
+ },
+ "proxyToClientEnabled": {
+ "label": "MQTT Client Proxy Enabled",
+ "description": "Utilizes the network connection to proxy MQTT messages to the client."
+ },
+ "mapReportingEnabled": {
+ "label": "Map Reporting Enabled",
+ "description": "Your node will periodically send an unencrypted map report packet to the configured MQTT server, this includes id, short and long name, approximate location, hardware model, role, firmware version, LoRa region, modem preset and primary channel name."
+ },
+ "mapReportSettings": {
+ "publishIntervalSecs": {
+ "label": "Map Report Publish Interval (s)",
+ "description": "Interval in seconds to publish map reports"
+ },
+ "positionPrecision": {
+ "label": "Approximate Location",
+ "description": "Position shared will be accurate within this distance",
+ "options": {
+ "metric_km23": "Within 23 km",
+ "metric_km12": "Within 12 km",
+ "metric_km5_8": "Within 5.8 km",
+ "metric_km2_9": "Within 2.9 km",
+ "metric_km1_5": "Within 1.5 km",
+ "metric_m700": "Within 700 m",
+ "metric_m350": "Within 350 m",
+ "metric_m200": "Within 200 m",
+ "metric_m90": "Within 90 m",
+ "metric_m50": "Within 50 m",
+ "imperial_mi15": "Within 15 miles",
+ "imperial_mi7_3": "Within 7.3 miles",
+ "imperial_mi3_6": "Within 3.6 miles",
+ "imperial_mi1_8": "Within 1.8 miles",
+ "imperial_mi0_9": "Within 0.9 miles",
+ "imperial_mi0_5": "Within 0.5 miles",
+ "imperial_mi0_2": "Within 0.2 miles",
+ "imperial_ft600": "Within 600 feet",
+ "imperial_ft300": "Within 300 feet",
+ "imperial_ft150": "Within 150 feet"
+ }
+ }
+ }
+ },
+ "neighborInfo": {
+ "title": "Neighbor Info Settings",
+ "description": "Settings for the Neighbor Info module",
+ "enabled": {
+ "label": "Enabled",
+ "description": "Enable or disable Neighbor Info Module"
+ },
+ "updateInterval": {
+ "label": "Update Interval",
+ "description": "Interval in seconds of how often we should try to send our Neighbor Info to the mesh"
+ }
+ },
+ "paxcounter": {
+ "title": "Paxcounter Settings",
+ "description": "Settings for the Paxcounter module",
+ "enabled": {
+ "label": "Module Enabled",
+ "description": "Enable Paxcounter"
+ },
+ "paxcounterUpdateInterval": {
+ "label": "Update Interval (seconds)",
+ "description": "How long to wait between sending paxcounter packets"
+ },
+ "wifiThreshold": {
+ "label": "WiFi RSSI Threshold",
+ "description": "At what WiFi RSSI level should the counter increase. Defaults to -80."
+ },
+ "bleThreshold": {
+ "label": "BLE RSSI Threshold",
+ "description": "At what BLE RSSI level should the counter increase. Defaults to -80."
+ }
+ },
+ "rangeTest": {
+ "title": "Range Test Settings",
+ "description": "Settings for the Range Test module",
+ "enabled": {
+ "label": "Module Enabled",
+ "description": "Enable Range Test"
+ },
+ "sender": {
+ "label": "Message Interval",
+ "description": "How long to wait between sending test packets"
+ },
+ "save": {
+ "label": "Save CSV to storage",
+ "description": "ESP32 Only"
+ }
+ },
+ "serial": {
+ "title": "Serial Settings",
+ "description": "Settings for the Serial module",
+ "enabled": {
+ "label": "Module Enabled",
+ "description": "Enable Serial output"
+ },
+ "echo": {
+ "label": "Echo",
+ "description": "Any packets you send will be echoed back to your device"
+ },
+ "rxd": {
+ "label": "Receive Pin",
+ "description": "Set the GPIO pin to the RXD pin you have set up."
+ },
+ "txd": {
+ "label": "Transmit Pin",
+ "description": "Set the GPIO pin to the TXD pin you have set up."
+ },
+ "baud": {
+ "label": "Baud Rate",
+ "description": "The serial baud rate"
+ },
+ "timeout": {
+ "label": "Timeout",
+ "description": "Seconds to wait before we consider your packet as 'done'"
+ },
+ "mode": {
+ "label": "Mode",
+ "description": "Select Mode"
+ },
+ "overrideConsoleSerialPort": {
+ "label": "Override Console Serial Port",
+ "description": "If you have a serial port connected to the console, this will override it."
+ }
+ },
+ "storeForward": {
+ "title": "Store & Forward Settings",
+ "description": "Settings for the Store & Forward module",
+ "enabled": {
+ "label": "Module Enabled",
+ "description": "Enable Store & Forward"
+ },
+ "heartbeat": {
+ "label": "Heartbeat Enabled",
+ "description": "Enable Store & Forward heartbeat"
+ },
+ "records": {
+ "label": "Number of records",
+ "description": "Number of records to store"
+ },
+ "historyReturnMax": {
+ "label": "History return max",
+ "description": "Max number of records to return"
+ },
+ "historyReturnWindow": {
+ "label": "History return window",
+ "description": "Return records from this time window (minutes)"
+ }
+ },
+ "telemetry": {
+ "title": "Telemetry Settings",
+ "description": "Settings for the Telemetry module",
+ "deviceUpdateInterval": {
+ "label": "Device Metrics",
+ "description": "Device metrics update interval (seconds)"
+ },
+ "environmentUpdateInterval": {
+ "label": "Environment metrics update interval (seconds)",
+ "description": ""
+ },
+ "environmentMeasurementEnabled": {
+ "label": "Module Enabled",
+ "description": "Enable the Environment Telemetry"
+ },
+ "environmentScreenEnabled": {
+ "label": "Displayed on Screen",
+ "description": "Show the Telemetry Module on the OLED"
+ },
+ "environmentDisplayFahrenheit": {
+ "label": "Display Fahrenheit",
+ "description": "Display temp in Fahrenheit"
+ },
+ "airQualityEnabled": {
+ "label": "Air Quality Enabled",
+ "description": "Enable the Air Quality Telemetry"
+ },
+ "airQualityInterval": {
+ "label": "Air Quality Update Interval",
+ "description": "How often to send Air Quality data over the mesh"
+ },
+ "powerMeasurementEnabled": {
+ "label": "Power Measurement Enabled",
+ "description": "Enable the Power Measurement Telemetry"
+ },
+ "powerUpdateInterval": {
+ "label": "Power Update Interval",
+ "description": "How often to send Power data over the mesh"
+ },
+ "powerScreenEnabled": {
+ "label": "Power Screen Enabled",
+ "description": "Enable the Power Telemetry Screen"
+ }
+ }
}
diff --git a/packages/web/public/i18n/locales/be-BY/nodes.json b/packages/web/public/i18n/locales/be-BY/nodes.json
index c85a5587..9e18417f 100644
--- a/packages/web/public/i18n/locales/be-BY/nodes.json
+++ b/packages/web/public/i18n/locales/be-BY/nodes.json
@@ -1,63 +1,59 @@
{
- "nodeDetail": {
- "publicKeyEnabled": {
- "label": "Public Key Enabled"
- },
- "noPublicKey": {
- "label": "No Public Key"
- },
- "directMessage": {
- "label": "Direct Message {{shortName}}"
- },
- "favorite": {
- "label": "Favorite",
- "tooltip": "Add or remove this node from your favorites"
- },
- "notFavorite": {
- "label": "Not a Favorite"
- },
- "error": {
- "label": "Error",
- "text": "An error occurred while fetching node details. Please try again later."
- },
- "status": {
- "heard": "Heard",
- "mqtt": "MQTT"
- },
- "elevation": {
- "label": "Elevation"
- },
- "channelUtil": {
- "label": "Channel Util"
- },
- "airtimeUtil": {
- "label": "Airtime Util"
- }
- },
- "nodesTable": {
- "headings": {
- "longName": "Long Name",
- "connection": "Connection",
- "lastHeard": "Last Heard",
- "encryption": "Encryption",
- "model": "Model",
- "macAddress": "MAC Address"
- },
- "connectionStatus": {
- "direct": "Direct",
- "away": "away",
- "unknown": "-",
- "viaMqtt": ", via MQTT"
- },
- "lastHeardStatus": {
- "never": "Never"
- }
- },
- "actions": {
- "added": "Added",
- "removed": "Removed",
- "ignoreNode": "Ignore Node",
- "unignoreNode": "Unignore Node",
- "requestPosition": "Request Position"
- }
+ "nodeDetail": {
+ "publicKeyEnabled": {
+ "label": "Public Key Enabled"
+ },
+ "noPublicKey": {
+ "label": "No Public Key"
+ },
+ "directMessage": {
+ "label": "Direct Message {{shortName}}"
+ },
+ "favorite": {
+ "label": "Favorite",
+ "tooltip": "Add or remove this node from your favorites"
+ },
+ "notFavorite": {
+ "label": "Not a Favorite"
+ },
+ "error": {
+ "label": "Error",
+ "text": "An error occurred while fetching node details. Please try again later."
+ },
+ "status": {
+ "heard": "Heard",
+ "mqtt": "MQTT"
+ },
+ "elevation": {
+ "label": "Elevation"
+ },
+ "channelUtil": {
+ "label": "Channel Util"
+ },
+ "airtimeUtil": {
+ "label": "Airtime Util"
+ }
+ },
+ "nodesTable": {
+ "headings": {
+ "longName": "Long Name",
+ "connection": "Connection",
+ "lastHeard": "Last Heard",
+ "encryption": "Encryption",
+ "model": "Model",
+ "macAddress": "MAC Address"
+ },
+ "connectionStatus": {
+ "direct": "Direct",
+ "away": "away",
+ "viaMqtt": ", via MQTT"
+ }
+ },
+ "actions": {
+ "added": "Added",
+ "removed": "Removed",
+ "ignoreNode": "Ignore Node",
+ "unignoreNode": "Unignore Node",
+ "requestPosition": "Request Position"
+ }
}
diff --git a/packages/web/public/i18n/locales/be-BY/ui.json b/packages/web/public/i18n/locales/be-BY/ui.json
index 25f06257..77436c05 100644
--- a/packages/web/public/i18n/locales/be-BY/ui.json
+++ b/packages/web/public/i18n/locales/be-BY/ui.json
@@ -1,228 +1,229 @@
{
- "navigation": {
- "title": "Navigation",
- "messages": "Messages",
- "map": "Map",
- "config": "Config",
- "radioConfig": "Radio Config",
- "moduleConfig": "Module Config",
- "channels": "Channels",
- "nodes": "Nodes"
- },
- "app": {
- "title": "Meshtastic",
- "logo": "Meshtastic Logo"
- },
- "sidebar": {
- "collapseToggle": {
- "button": {
- "open": "Open sidebar",
- "close": "Close sidebar"
- }
- },
- "deviceInfo": {
- "volts": "{{voltage}} volts",
- "firmware": {
- "title": "Firmware",
- "version": "v{{version}}",
- "buildDate": "Build date: {{date}}"
- },
- "deviceName": {
- "title": "Device Name",
- "changeName": "Change Device Name",
- "placeholder": "Enter device name"
- },
- "editDeviceName": "Edit device name"
- }
- },
- "batteryStatus": {
- "charging": "{{level}}% charging",
- "pluggedIn": "Plugged in",
- "title": "Battery"
- },
- "search": {
- "nodes": "Search nodes...",
- "channels": "Search channels...",
- "commandPalette": "Search commands..."
- },
- "toast": {
- "positionRequestSent": {
- "title": "Position request sent."
- },
- "requestingPosition": {
- "title": "Requesting position, please wait..."
- },
- "sendingTraceroute": {
- "title": "Sending Traceroute, please wait..."
- },
- "tracerouteSent": {
- "title": "Traceroute sent."
- },
- "savedChannel": {
- "title": "Saved Channel: {{channelName}}"
- },
- "messages": {
- "pkiEncryption": {
- "title": "Chat is using PKI encryption."
- },
- "pskEncryption": {
- "title": "Chat is using PSK encryption."
- }
- },
- "configSaveError": {
- "title": "Error Saving Config",
- "description": "An error occurred while saving the configuration."
- },
- "validationError": {
- "title": "Config Errors Exist",
- "description": "Please fix the configuration errors before saving."
- },
- "saveSuccess": {
- "title": "Saving Config",
- "description": "The configuration change {{case}} has been saved."
- },
- "favoriteNode": {
- "title": "{{action}} {{nodeName}} {{direction}} favorites.",
- "action": {
- "added": "Added",
- "removed": "Removed",
- "to": "to",
- "from": "from"
- }
- },
- "ignoreNode": {
- "title": "{{action}} {{nodeName}} {{direction}} ignore list",
- "action": {
- "added": "Added",
- "removed": "Removed",
- "to": "to",
- "from": "from"
- }
- }
- },
- "notifications": {
- "copied": {
- "label": "Copied!"
- },
- "copyToClipboard": {
- "label": "Copy to clipboard"
- },
- "hidePassword": {
- "label": "Hide password"
- },
- "showPassword": {
- "label": "Show password"
- },
- "deliveryStatus": {
- "delivered": "Delivered",
- "failed": "Delivery Failed",
- "waiting": "Waiting",
- "unknown": "Unknown"
- }
- },
- "general": {
- "label": "General"
- },
- "hardware": {
- "label": "Hardware"
- },
- "metrics": {
- "label": "Metrics"
- },
- "role": {
- "label": "Role"
- },
- "filter": {
- "label": "Filter"
- },
- "advanced": {
- "label": "Advanced"
- },
- "clearInput": {
- "label": "Clear input"
- },
- "resetFilters": {
- "label": "Reset Filters"
- },
- "nodeName": {
- "label": "Node name/number",
- "placeholder": "Meshtastic 1234"
- },
- "airtimeUtilization": {
- "label": "Airtime Utilization (%)"
- },
- "batteryLevel": {
- "label": "Battery level (%)",
- "labelText": "Battery level (%): {{value}}"
- },
- "batteryVoltage": {
- "label": "Battery voltage (V)",
- "title": "Voltage"
- },
- "channelUtilization": {
- "label": "Channel Utilization (%)"
- },
- "hops": {
- "direct": "Direct",
- "label": "Number of hops",
- "text": "Number of hops: {{value}}"
- },
- "lastHeard": {
- "label": "Last heard",
- "labelText": "Last heard: {{value}}",
- "nowLabel": "Now"
- },
- "snr": {
- "label": "SNR (db)"
- },
- "favorites": {
- "label": "Favorites"
- },
- "hide": {
- "label": "Hide"
- },
- "showOnly": {
- "label": "Show Only"
- },
- "viaMqtt": {
- "label": "Connected via MQTT"
- },
- "hopsUnknown": {
- "label": "Unknown number of hops"
- },
- "showUnheard": {
- "label": "Never heard"
- },
- "language": {
- "label": "Language",
- "changeLanguage": "Change Language"
- },
- "theme": {
- "dark": "Dark",
- "light": "Light",
- "system": "Automatic",
- "changeTheme": "Change Color Scheme"
- },
- "errorPage": {
- "title": "This is a little embarrassing...",
- "description1": "We are really sorry but an error occurred in the web client that caused it to crash.
This is not supposed to happen, and we are working hard to fix it.",
- "description2": "The best way to prevent this from happening again to you or anyone else is to report the issue to us.",
- "reportInstructions": "Please include the following information in your report:",
- "reportSteps": {
- "step1": "What you were doing when the error occurred",
- "step2": "What you expected to happen",
- "step3": "What actually happened",
- "step4": "Any other relevant information"
- },
- "reportLink": "You can report the issue to our <0>GitHub0>",
- "dashboardLink": "Return to the <0>dashboard0>",
- "detailsSummary": "Error Details",
- "errorMessageLabel": "Error message:",
- "stackTraceLabel": "Stack trace:",
- "fallbackError": "{{error}}"
- },
- "footer": {
- "text": "Powered by <0>▲ Vercel0> | Meshtastic® is a registered trademark of Meshtastic LLC. | <1>Legal Information1>",
- "commitSha": "Commit SHA: {{sha}}"
- }
+ "navigation": {
+ "title": "Navigation",
+ "messages": "Messages",
+ "map": "Map",
+ "settings": "Settings",
+ "channels": "Channels",
+ "radioConfig": "Radio Config",
+ "deviceConfig": "Device Config",
+ "moduleConfig": "Module Config",
+ "nodes": "Nodes"
+ },
+ "app": {
+ "title": "Meshtastic",
+ "logo": "Meshtastic Logo"
+ },
+ "sidebar": {
+ "collapseToggle": {
+ "button": {
+ "open": "Open sidebar",
+ "close": "Close sidebar"
+ }
+ },
+ "deviceInfo": {
+ "volts": "{{voltage}} volts",
+ "firmware": {
+ "title": "Firmware",
+ "version": "v{{version}}",
+ "buildDate": "Build date: {{date}}"
+ }
+ }
+ },
+ "batteryStatus": {
+ "charging": "{{level}}% charging",
+ "pluggedIn": "Plugged in",
+ "title": "Battery"
+ },
+ "search": {
+ "nodes": "Search nodes...",
+ "channels": "Search channels...",
+ "commandPalette": "Search commands..."
+ },
+ "toast": {
+ "positionRequestSent": {
+ "title": "Position request sent."
+ },
+ "requestingPosition": {
+ "title": "Requesting position, please wait..."
+ },
+ "sendingTraceroute": {
+ "title": "Sending Traceroute, please wait..."
+ },
+ "tracerouteSent": {
+ "title": "Traceroute sent."
+ },
+ "savedChannel": {
+ "title": "Saved Channel: {{channelName}}"
+ },
+ "messages": {
+ "pkiEncryption": {
+ "title": "Chat is using PKI encryption."
+ },
+ "pskEncryption": {
+ "title": "Chat is using PSK encryption."
+ }
+ },
+ "configSaveError": {
+ "title": "Error Saving Config",
+ "description": "An error occurred while saving the configuration."
+ },
+ "validationError": {
+ "title": "Config Errors Exist",
+ "description": "Please fix the configuration errors before saving."
+ },
+ "saveSuccess": {
+ "title": "Saving Config",
+ "description": "The configuration change {{case}} has been saved."
+ },
+ "saveAllSuccess": {
+ "title": "Saved",
+ "description": "All configuration changes have been saved."
+ },
+ "favoriteNode": {
+ "title": "{{action}} {{nodeName}} {{direction}} favorites.",
+ "action": {
+ "added": "Added",
+ "removed": "Removed",
+ "to": "to",
+ "from": "from"
+ }
+ },
+ "ignoreNode": {
+ "title": "{{action}} {{nodeName}} {{direction}} ignore list",
+ "action": {
+ "added": "Added",
+ "removed": "Removed",
+ "to": "to",
+ "from": "from"
+ }
+ }
+ },
+ "notifications": {
+ "copied": {
+ "label": "Copied!"
+ },
+ "copyToClipboard": {
+ "label": "Copy to clipboard"
+ },
+ "hidePassword": {
+ "label": "Hide password"
+ },
+ "showPassword": {
+ "label": "Show password"
+ },
+ "deliveryStatus": {
+ "delivered": "Delivered",
+ "failed": "Delivery Failed",
+ "waiting": "Waiting",
+ "unknown": "Unknown"
+ }
+ },
+ "general": {
+ "label": "General"
+ },
+ "hardware": {
+ "label": "Hardware"
+ },
+ "metrics": {
+ "label": "Metrics"
+ },
+ "role": {
+ "label": "Role"
+ },
+ "filter": {
+ "label": "Filter"
+ },
+ "advanced": {
+ "label": "Advanced"
+ },
+ "clearInput": {
+ "label": "Clear input"
+ },
+ "resetFilters": {
+ "label": "Reset Filters"
+ },
+ "nodeName": {
+ "label": "Node name/number",
+ "placeholder": "Meshtastic 1234"
+ },
+ "airtimeUtilization": {
+ "label": "Airtime Utilization (%)",
+ "short": "Airtime Util. (%)"
+ },
+ "batteryLevel": {
+ "label": "Battery level (%)",
+ "labelText": "Battery level (%): {{value}}"
+ },
+ "batteryVoltage": {
+ "label": "Battery voltage (V)",
+ "title": "Voltage"
+ },
+ "channelUtilization": {
+ "label": "Channel Utilization (%)",
+ "short": "Channel Util. (%)"
+ },
+ "hops": {
+ "direct": "Direct",
+ "label": "Number of hops",
+ "text": "Number of hops: {{value}}"
+ },
+ "lastHeard": {
+ "label": "Last heard",
+ "labelText": "Last heard: {{value}}",
+ "nowLabel": "Now"
+ },
+ "snr": {
+ "label": "SNR (db)"
+ },
+ "favorites": {
+ "label": "Favorites"
+ },
+ "hide": {
+ "label": "Hide"
+ },
+ "showOnly": {
+ "label": "Show Only"
+ },
+ "viaMqtt": {
+ "label": "Connected via MQTT"
+ },
+ "hopsUnknown": {
+ "label": "Unknown number of hops"
+ },
+ "showUnheard": {
+ "label": "Never heard"
+ },
+ "language": {
+ "label": "Language",
+ "changeLanguage": "Change Language"
+ },
+ "theme": {
+ "dark": "Dark",
+ "light": "Light",
+ "system": "Automatic",
+ "changeTheme": "Change Color Scheme"
+ },
+ "errorPage": {
+ "title": "This is a little embarrassing...",
+ "description1": "We are really sorry but an error occurred in the web client that caused it to crash.
This is not supposed to happen, and we are working hard to fix it.",
+ "description2": "The best way to prevent this from happening again to you or anyone else is to report the issue to us.",
+ "reportInstructions": "Please include the following information in your report:",
+ "reportSteps": {
+ "step1": "What you were doing when the error occurred",
+ "step2": "What you expected to happen",
+ "step3": "What actually happened",
+ "step4": "Any other relevant information"
+ },
+ "reportLink": "You can report the issue to our <0>GitHub0>",
+ "dashboardLink": "Return to the <0>dashboard0>",
+ "detailsSummary": "Error Details",
+ "errorMessageLabel": "Error message:",
+ "stackTraceLabel": "Stack trace:",
+ "fallbackError": "{{error}}"
+ },
+ "footer": {
+ "text": "Powered by <0>▲ Vercel0> | Meshtastic® is a registered trademark of Meshtastic LLC. | <1>Legal Information1>",
+ "commitSha": "Commit SHA: {{sha}}"
+ }
}
diff --git a/packages/web/public/i18n/locales/bg-BG/channels.json b/packages/web/public/i18n/locales/bg-BG/channels.json
index 48291a72..2bba778f 100644
--- a/packages/web/public/i18n/locales/bg-BG/channels.json
+++ b/packages/web/public/i18n/locales/bg-BG/channels.json
@@ -1,69 +1,71 @@
{
- "page": {
- "sectionLabel": "Канали",
- "channelName": "Канал: {{channelName}}",
- "broadcastLabel": "Първичен",
- "channelIndex": "Ch {{index}}"
- },
- "validation": {
- "pskInvalid": "Моля, въведете валиден {{bits}} bit PSK."
- },
- "settings": {
- "label": "Настройки на канала",
- "description": "Крипто, MQTT и други настройки"
- },
- "role": {
- "label": "Роля",
- "description": "Телеметрията на устройството се изпраща през ПЪРВИЧЕН. Разрешен е само един ПЪРВИЧЕН.",
- "options": {
- "primary": "ПЪРВИЧЕН",
- "disabled": "ДЕЗАКТИВИРАН",
- "secondary": "ВТОРИЧЕН"
- }
- },
- "psk": {
- "label": "Предварително споделен ключ",
- "description": "Поддържани дължини на PSK: 256-битова, 128-битова, 8-битова, празна (0-битова)",
- "generate": "Генериране"
- },
- "name": {
- "label": "Име",
- "description": "Уникално име за канала <12 байта, оставете празно за подразбиране"
- },
- "uplinkEnabled": {
- "label": "Uplink Enabled",
- "description": "Изпращане на съобщения от локалната mesh към MQTT"
- },
- "downlinkEnabled": {
- "label": "Downlink Enabled",
- "description": "Изпращане на съобщения от MQTT към локалната mesh"
- },
- "positionPrecision": {
- "label": "Местоположение",
- "description": "Точността на местоположението, което да се споделя с канала. Може да бъде дезактивирано.",
- "options": {
- "none": "Да не се споделя местоположението",
- "precise": "Точно местоположение",
- "metric_km23": "В рамките на 23 километра",
- "metric_km12": "В рамките на 12 километра",
- "metric_km5_8": "В рамките на 5.8 километра",
- "metric_km2_9": "В рамките на 2.9 километра",
- "metric_km1_5": "В рамките на 1.5 километра",
- "metric_m700": "В рамките на 700 метра",
- "metric_m350": "В рамките на 350 метра",
- "metric_m200": "В рамките на 200 метра",
- "metric_m90": "В рамките на 90 метра",
- "metric_m50": "В рамките на 50 метра",
- "imperial_mi15": "В рамките на 15 мили",
- "imperial_mi7_3": "В рамките на 7.3 мили",
- "imperial_mi3_6": "В рамките на 3.6 мили",
- "imperial_mi1_8": "В рамките на 1.8 мили",
- "imperial_mi0_9": "В рамките на 0.9 мили",
- "imperial_mi0_5": "В рамките на 0.5 мили",
- "imperial_mi0_2": "В рамките на 0.2 мили",
- "imperial_ft600": "В рамките на 600 фута",
- "imperial_ft300": "В рамките на 300 фута",
- "imperial_ft150": "В рамките на 150 фута"
- }
- }
+ "page": {
+ "sectionLabel": "Канали",
+ "channelName": "Канал: {{channelName}}",
+ "broadcastLabel": "Първичен",
+ "channelIndex": "Ch {{index}}",
+ "import": "Импортиране",
+ "export": "Експортиране"
+ },
+ "validation": {
+ "pskInvalid": "Моля, въведете валиден {{bits}} bit PSK."
+ },
+ "settings": {
+ "label": "Настройки на канала",
+ "description": "Крипто, MQTT и други настройки"
+ },
+ "role": {
+ "label": "Роля",
+ "description": "Телеметрията на устройството се изпраща през ПЪРВИЧЕН. Разрешен е само един ПЪРВИЧЕН.",
+ "options": {
+ "primary": "ПЪРВИЧЕН",
+ "disabled": "ДЕЗАКТИВИРАН",
+ "secondary": "ВТОРИЧЕН"
+ }
+ },
+ "psk": {
+ "label": "Предварително споделен ключ",
+ "description": "Поддържани дължини на PSK: 256-битова, 128-битова, 8-битова, празна (0-битова)",
+ "generate": "Генериране"
+ },
+ "name": {
+ "label": "Име",
+ "description": "Уникално име за канала <12 байта, оставете празно за подразбиране"
+ },
+ "uplinkEnabled": {
+ "label": "Uplink Enabled",
+ "description": "Изпращане на съобщения от локалната mesh към MQTT"
+ },
+ "downlinkEnabled": {
+ "label": "Downlink Enabled",
+ "description": "Изпращане на съобщения от MQTT към локалната mesh"
+ },
+ "positionPrecision": {
+ "label": "Местоположение",
+ "description": "Точността на местоположението, което да се споделя с канала. Може да бъде дезактивирано.",
+ "options": {
+ "none": "Да не се споделя местоположението",
+ "precise": "Точно местоположение",
+ "metric_km23": "В рамките на 23 километра",
+ "metric_km12": "В рамките на 12 километра",
+ "metric_km5_8": "В рамките на 5.8 километра",
+ "metric_km2_9": "В рамките на 2.9 километра",
+ "metric_km1_5": "В рамките на 1.5 километра",
+ "metric_m700": "В рамките на 700 метра",
+ "metric_m350": "В рамките на 350 метра",
+ "metric_m200": "В рамките на 200 метра",
+ "metric_m90": "В рамките на 90 метра",
+ "metric_m50": "В рамките на 50 метра",
+ "imperial_mi15": "В рамките на 15 мили",
+ "imperial_mi7_3": "В рамките на 7.3 мили",
+ "imperial_mi3_6": "В рамките на 3.6 мили",
+ "imperial_mi1_8": "В рамките на 1.8 мили",
+ "imperial_mi0_9": "В рамките на 0.9 мили",
+ "imperial_mi0_5": "В рамките на 0.5 мили",
+ "imperial_mi0_2": "В рамките на 0.2 мили",
+ "imperial_ft600": "В рамките на 600 фута",
+ "imperial_ft300": "В рамките на 300 фута",
+ "imperial_ft150": "В рамките на 150 фута"
+ }
+ }
}
diff --git a/packages/web/public/i18n/locales/bg-BG/commandPalette.json b/packages/web/public/i18n/locales/bg-BG/commandPalette.json
index f3e771ff..b2f05136 100644
--- a/packages/web/public/i18n/locales/bg-BG/commandPalette.json
+++ b/packages/web/public/i18n/locales/bg-BG/commandPalette.json
@@ -15,7 +15,6 @@
"messages": "Съобщения",
"map": "Карта",
"config": "Конфигурация",
- "channels": "Канали",
"nodes": "Възли"
}
},
@@ -45,7 +44,8 @@
"label": "Отстраняване на грешки",
"command": {
"reconfigure": "Преконфигуриране",
- "clearAllStoredMessages": "Изчистване на всички съхранени съобщения"
+ "clearAllStoredMessages": "Изчистване на всички съхранени съобщения",
+ "clearAllStores": "Clear All Local Storage"
}
}
}
diff --git a/packages/web/public/i18n/locales/bg-BG/common.json b/packages/web/public/i18n/locales/bg-BG/common.json
index b1c78a23..793a8bb0 100644
--- a/packages/web/public/i18n/locales/bg-BG/common.json
+++ b/packages/web/public/i18n/locales/bg-BG/common.json
@@ -1,142 +1,157 @@
{
- "button": {
- "apply": "Приложи",
- "backupKey": "Резервно копие на ключа",
- "cancel": "Отказ",
- "clearMessages": "Изчистване на съобщенията",
- "close": "Затвори",
- "confirm": "Потвърждаване",
- "delete": "Изтриване",
- "dismiss": "Отхвърляне",
- "download": "Изтегляне",
- "export": "Експортиране",
- "generate": "Генериране",
- "regenerate": "Регенериране",
- "import": "Импортиране",
- "message": "Съобщение",
- "now": "Сега",
- "ok": "Добре",
- "print": "Отпечатване",
- "remove": "Изтрий",
- "requestNewKeys": "Заявка за нови ключове",
- "requestPosition": "Request Position",
- "reset": "Нулиране",
- "save": "Запис",
- "scanQr": "Сканиране на QR кода",
- "traceRoute": "Trace Route",
- "submit": "Изпращане"
- },
- "app": {
- "title": "Meshtastic",
- "fullTitle": "Meshtastic Web клиент"
- },
- "loading": "Зареждане...",
- "unit": {
- "cps": "CPS",
- "dbm": "dBm",
- "hertz": "Hz",
- "hop": {
- "one": "Хоп",
- "plural": "Хопа"
- },
- "hopsAway": {
- "one": "{{count}} hop away",
- "plural": "{{count}} hops away",
- "unknown": "Unknown hops away"
- },
- "megahertz": "MHz",
- "raw": "raw",
- "meter": {
- "one": "Метър",
- "plural": "Метри",
- "suffix": "m"
- },
- "minute": {
- "one": "Минута",
- "plural": "Минути"
- },
- "hour": {
- "one": "Час",
- "plural": "Часа"
- },
- "millisecond": {
- "one": "Милисекунда",
- "plural": "Милисекунди",
- "suffix": "ms"
- },
- "second": {
- "one": "Секунда",
- "plural": "Секунди"
- },
- "day": {
- "one": "Ден",
- "plural": "Дни"
- },
- "month": {
- "one": "Месец",
- "plural": "Месеца"
- },
- "year": {
- "one": "Година",
- "plural": "Години"
- },
- "snr": "SNR",
- "volt": {
- "one": "Волт",
- "plural": "Волта",
- "suffix": "V"
- },
- "record": {
- "one": "Записи",
- "plural": "Записи"
- }
- },
- "security": {
- "0bit": "Празен",
- "8bit": "8 bit",
- "128bit": "128 bit",
- "256bit": "256 bit"
- },
- "unknown": {
- "longName": "Неизвестно",
- "shortName": "НЕИЗВ.",
- "notAvailable": "N/A",
- "num": "??"
- },
- "nodeUnknownPrefix": "!",
- "unset": "НЕЗАДАДЕН",
- "fallbackName": "Meshtastic {{last4}}",
- "node": "Възел",
- "formValidation": {
- "unsavedChanges": "Незапазени промени",
- "tooBig": {
- "string": "Твърде дълъг, очаква се по-малко или равно на {{maximum}} знака.",
- "number": "Твърде голям, очаква се число по-малко или равно на {{maximum}}.",
- "bytes": "Твърде голям, очаква се по-малък или равен на {{params.maximum}} байта."
- },
- "tooSmall": {
- "string": "Твърде кратък, очаква се повече или равно на {{minimum}} знака.",
- "number": "Твърде малък, очаква се число, по-голямо или равно на {{minimum}}."
- },
- "invalidFormat": {
- "ipv4": "Невалиден формат, очаква се IPv4 адрес.",
- "key": "Невалиден формат, очаква се предварително споделен ключ (PSK), кодиран с Base64."
- },
- "invalidType": {
- "number": "Невалиден тип, очаква се число."
- },
- "pskLength": {
- "0bit": "Ключът трябва да е празен.",
- "8bit": "Ключът трябва да бъде 8-битов предварително споделен ключ (PSK).",
- "128bit": "Ключът трябва да бъде 128-битов предварително споделен ключ (PSK).",
- "256bit": "Ключът трябва да бъде 256-битов предварително споделен ключ (PSK)."
- },
- "required": {
- "generic": "Това поле е задължително.",
- "managed": "Изисква се поне един администраторски ключ, ако възелът е управляван.",
- "key": "Ключът е задължителен."
- }
- },
- "yes": "Да",
- "no": "Не"
+ "button": {
+ "apply": "Приложи",
+ "backupKey": "Резервно копие на ключа",
+ "cancel": "Отказ",
+ "clearMessages": "Изчистване на съобщенията",
+ "close": "Затвори",
+ "confirm": "Потвърждаване",
+ "delete": "Изтриване",
+ "dismiss": "Отхвърляне",
+ "download": "Изтегляне",
+ "export": "Експортиране",
+ "generate": "Генериране",
+ "regenerate": "Регенериране",
+ "import": "Импортиране",
+ "message": "Съобщение",
+ "now": "Сега",
+ "ok": "Добре",
+ "print": "Отпечатване",
+ "remove": "Изтрий",
+ "requestNewKeys": "Заявка за нови ключове",
+ "requestPosition": "Request Position",
+ "reset": "Нулиране",
+ "save": "Запис",
+ "scanQr": "Сканиране на QR кода",
+ "traceRoute": "Trace Route",
+ "submit": "Изпращане"
+ },
+ "app": {
+ "title": "Meshtastic",
+ "fullTitle": "Meshtastic Web клиент"
+ },
+ "loading": "Зареждане...",
+ "unit": {
+ "cps": "CPS",
+ "dbm": "dBm",
+ "hertz": "Hz",
+ "hop": {
+ "one": "Хоп",
+ "plural": "Хопа"
+ },
+ "hopsAway": {
+ "one": "{{count}} hop away",
+ "plural": "{{count}} hops away",
+ "unknown": "Unknown hops away"
+ },
+ "megahertz": "MHz",
+ "raw": "raw",
+ "meter": {
+ "one": "Метър",
+ "plural": "Метри",
+ "suffix": "m"
+ },
+ "kilometer": {
+ "one": "Kilometer",
+ "plural": "Kilometers",
+ "suffix": "km"
+ },
+ "minute": {
+ "one": "Минута",
+ "plural": "Минути"
+ },
+ "hour": {
+ "one": "Час",
+ "plural": "Часа"
+ },
+ "millisecond": {
+ "one": "Милисекунда",
+ "plural": "Милисекунди",
+ "suffix": "ms"
+ },
+ "second": {
+ "one": "Секунда",
+ "plural": "Секунди"
+ },
+ "day": {
+ "one": "Ден",
+ "plural": "Дни",
+ "today": "Today",
+ "yesterday": "Yesterday"
+ },
+ "month": {
+ "one": "Месец",
+ "plural": "Месеца"
+ },
+ "year": {
+ "one": "Година",
+ "plural": "Години"
+ },
+ "snr": "SNR",
+ "volt": {
+ "one": "Волт",
+ "plural": "Волта",
+ "suffix": "V"
+ },
+ "record": {
+ "one": "Записи",
+ "plural": "Записи"
+ },
+ "degree": {
+ "one": "Degree",
+ "plural": "Degrees",
+ "suffix": "°"
+ }
+ },
+ "security": {
+ "0bit": "Празен",
+ "8bit": "8 bit",
+ "128bit": "128 bit",
+ "256bit": "256 bit"
+ },
+ "unknown": {
+ "longName": "Неизвестно",
+ "shortName": "НЕИЗВ.",
+ "notAvailable": "N/A",
+ "num": "??"
+ },
+ "nodeUnknownPrefix": "!",
+ "unset": "НЕЗАДАДЕН",
+ "fallbackName": "Meshtastic {{last4}}",
+ "node": "Възел",
+ "formValidation": {
+ "unsavedChanges": "Незапазени промени",
+ "tooBig": {
+ "string": "Твърде дълъг, очаква се по-малко или равно на {{maximum}} знака.",
+ "number": "Твърде голям, очаква се число по-малко или равно на {{maximum}}.",
+ "bytes": "Твърде голям, очаква се по-малък или равен на {{params.maximum}} байта."
+ },
+ "tooSmall": {
+ "string": "Твърде кратък, очаква се повече или равно на {{minimum}} знака.",
+ "number": "Твърде малък, очаква се число, по-голямо или равно на {{minimum}}."
+ },
+ "invalidFormat": {
+ "ipv4": "Невалиден формат, очаква се IPv4 адрес.",
+ "key": "Невалиден формат, очаква се предварително споделен ключ (PSK), кодиран с Base64."
+ },
+ "invalidType": {
+ "number": "Невалиден тип, очаква се число."
+ },
+ "pskLength": {
+ "0bit": "Ключът трябва да е празен.",
+ "8bit": "Ключът трябва да бъде 8-битов предварително споделен ключ (PSK).",
+ "128bit": "Ключът трябва да бъде 128-битов предварително споделен ключ (PSK).",
+ "256bit": "Ключът трябва да бъде 256-битов предварително споделен ключ (PSK)."
+ },
+ "required": {
+ "generic": "Това поле е задължително.",
+ "managed": "Изисква се поне един администраторски ключ, ако възелът е управляван.",
+ "key": "Ключът е задължителен."
+ },
+ "invalidOverrideFreq": {
+ "number": "Invalid format, expected a value in the range 410-930 MHz or 0 (use default)."
+ }
+ },
+ "yes": "Да",
+ "no": "Не"
}
diff --git a/packages/web/public/i18n/locales/bg-BG/config.json b/packages/web/public/i18n/locales/bg-BG/config.json
new file mode 100644
index 00000000..59da7727
--- /dev/null
+++ b/packages/web/public/i18n/locales/bg-BG/config.json
@@ -0,0 +1,458 @@
+{
+ "page": {
+ "title": "Настройки",
+ "tabUser": "Потребител",
+ "tabChannels": "Канали",
+ "tabBluetooth": "Bluetooth",
+ "tabDevice": "Устройство",
+ "tabDisplay": "Дисплей",
+ "tabLora": "LoRa",
+ "tabNetwork": "Мрежа",
+ "tabPosition": "Позиция",
+ "tabPower": "Захранване",
+ "tabSecurity": "Сигурност"
+ },
+ "sidebar": {
+ "label": "Конфигурация"
+ },
+ "device": {
+ "title": "Настройки на устройството",
+ "description": "Настройки за устройството",
+ "buttonPin": {
+ "description": "Button pin override",
+ "label": "Пин за бутон"
+ },
+ "buzzerPin": {
+ "description": "Buzzer pin override",
+ "label": "Пин за зумер"
+ },
+ "disableTripleClick": {
+ "description": "Дезактивиране на трикратното щракване",
+ "label": "Дезактивиране на трикратното щракване"
+ },
+ "doubleTapAsButtonPress": {
+ "description": "Treat double tap as button press",
+ "label": "Double Tap as Button Press"
+ },
+ "ledHeartbeatDisabled": {
+ "description": "Дезактивиране на мигащия светодиод по подразбиране",
+ "label": "LED Heartbeat Disabled"
+ },
+ "nodeInfoBroadcastInterval": {
+ "description": "How often to broadcast node info",
+ "label": "Node Info Broadcast Interval"
+ },
+ "posixTimezone": {
+ "description": "The POSIX timezone string for the device",
+ "label": "POSIX часова зона"
+ },
+ "rebroadcastMode": {
+ "description": "How to handle rebroadcasting",
+ "label": "Режим на препредаване"
+ },
+ "role": {
+ "description": "Каква роля изпълнява устройството в mesh",
+ "label": "Роля"
+ }
+ },
+ "bluetooth": {
+ "title": "Настройки за Bluetooth",
+ "description": "Настройки за Bluetooth модула",
+ "note": "Забележка: Някои устройства (ESP32) не могат да използват едновременно Bluetooth и WiFi.",
+ "enabled": {
+ "description": "Активиране или дезактивиране на Bluetooth",
+ "label": "Активиран"
+ },
+ "pairingMode": {
+ "description": "Поведение при избор на ПИН.",
+ "label": "Режим на сдвояване"
+ },
+ "pin": {
+ "description": "Pin to use when pairing",
+ "label": "ПИН"
+ }
+ },
+ "display": {
+ "description": "Настройки за дисплея на устройството",
+ "title": "Настройки на дисплея",
+ "headingBold": {
+ "description": "Bolden the heading text",
+ "label": "Удебелен заглавен шрифт"
+ },
+ "carouselDelay": {
+ "description": "Колко бързо да се превключва между прозорците",
+ "label": "Carousel Delay"
+ },
+ "compassNorthTop": {
+ "description": "Фиксиране на север към горната част на компаса",
+ "label": "Север на компаса отгоре"
+ },
+ "displayMode": {
+ "description": "Screen layout variant",
+ "label": "Display Mode"
+ },
+ "displayUnits": {
+ "description": "Показване на метрични или имперски мерни единици",
+ "label": "Display Units"
+ },
+ "flipScreen": {
+ "description": "Обръщане на дисплея на 180 градуса",
+ "label": "Обръщане на дисплея"
+ },
+ "gpsDisplayUnits": {
+ "description": "Coordinate display format",
+ "label": "GPS Display Units"
+ },
+ "oledType": {
+ "description": "Тип на OLED екрана, прикрепен към устройството",
+ "label": "Тип OLED"
+ },
+ "screenTimeout": {
+ "description": "Turn off the display after this long",
+ "label": "Screen Timeout"
+ },
+ "twelveHourClock": {
+ "description": "Използване на 12-часов формат на часовника",
+ "label": "12-часов часовник"
+ },
+ "wakeOnTapOrMotion": {
+ "description": "Събуждане на устройството при докосване или движение",
+ "label": "Събуждане при докосване или движение"
+ }
+ },
+ "lora": {
+ "title": "Настройки на Mesh",
+ "description": "Настройки за LoRa mesh",
+ "bandwidth": {
+ "description": "Широчина на канала в MHz",
+ "label": "Широчина на честотната лента"
+ },
+ "boostedRxGain": {
+ "description": "Boosted RX gain",
+ "label": "Boosted RX Gain"
+ },
+ "codingRate": {
+ "description": "The denominator of the coding rate",
+ "label": "Coding Rate"
+ },
+ "frequencyOffset": {
+ "description": "Frequency offset to correct for crystal calibration errors",
+ "label": "Отместване на честотата"
+ },
+ "frequencySlot": {
+ "description": "Номер на LoRa честотен канал",
+ "label": "Честотен слот"
+ },
+ "hopLimit": {
+ "description": "Максимален брой хопове",
+ "label": "Лимит на хопове"
+ },
+ "ignoreMqtt": {
+ "description": "Да не се препращат MQTT съобщения през mesh",
+ "label": "Игнориране на MQTT"
+ },
+ "modemPreset": {
+ "description": "Използване на предварително настроен модем",
+ "label": "Предварително настроен модем"
+ },
+ "okToMqtt": {
+ "description": "When set to true, this configuration indicates that the user approves the packet to be uploaded to MQTT. If set to false, remote nodes are requested not to forward packets to MQTT",
+ "label": "OK to MQTT"
+ },
+ "overrideDutyCycle": {
+ "description": "Override Duty Cycle",
+ "label": "Override Duty Cycle"
+ },
+ "overrideFrequency": {
+ "description": "Override frequency",
+ "label": "Override Frequency"
+ },
+ "region": {
+ "description": "Задаване на региона за вашия възел",
+ "label": "Регион"
+ },
+ "spreadingFactor": {
+ "description": "Indicates the number of chirps per symbol",
+ "label": "Spreading Factor"
+ },
+ "transmitEnabled": {
+ "description": "Активиране/дезактивиране на предаването (TX) от LoRa радиото",
+ "label": "Предаването е активирано"
+ },
+ "transmitPower": {
+ "description": "Максимална мощност на предаване",
+ "label": "Мощност на предаване"
+ },
+ "usePreset": {
+ "description": "Използване на една от предварително зададените настройки на модема",
+ "label": "Използване на предварително зададени настройки"
+ },
+ "meshSettings": {
+ "description": "Настройки за LoRa mesh",
+ "label": "Настройки на Mesh"
+ },
+ "waveformSettings": {
+ "description": "Settings for the LoRa waveform",
+ "label": "Waveform Settings"
+ },
+ "radioSettings": {
+ "label": "Настройки на радиото",
+ "description": "Настройки за LoRa радиото"
+ }
+ },
+ "network": {
+ "title": "Конфигурация на WiFi",
+ "description": "Конфигурация на WiFi радиото",
+ "note": "Забележка: Някои устройства (ESP32) не могат да използват едновременно Bluetooth и WiFi.",
+ "addressMode": {
+ "description": "Address assignment selection",
+ "label": "Режим на адреса"
+ },
+ "dns": {
+ "description": "DNS сървър",
+ "label": "DNS"
+ },
+ "ethernetEnabled": {
+ "description": "Активиране или дезактивиране на Ethernet порта",
+ "label": "Активиран"
+ },
+ "gateway": {
+ "description": "Шлюз по подразбиране",
+ "label": "Шлюз"
+ },
+ "ip": {
+ "description": "IP адрес",
+ "label": "IP"
+ },
+ "psk": {
+ "description": "Парола за мрежата",
+ "label": "PSK"
+ },
+ "ssid": {
+ "description": "Име на мрежата",
+ "label": "SSID"
+ },
+ "subnet": {
+ "description": "Подмрежова маска",
+ "label": "Подмрежа"
+ },
+ "wifiEnabled": {
+ "description": "Активиране или дезактивиране на WiFi радиото",
+ "label": "Активиран"
+ },
+ "meshViaUdp": {
+ "label": "Mesh чрез UDP"
+ },
+ "ntpServer": {
+ "label": "NTP сървър"
+ },
+ "rsyslogServer": {
+ "label": "Сървър Rsyslog"
+ },
+ "ethernetConfigSettings": {
+ "description": "Конфигуриране на Ethernet порта",
+ "label": "Конфигурация на Ethernet "
+ },
+ "ipConfigSettings": {
+ "description": "Конфигуриране на IP",
+ "label": "Конфигурация на IP"
+ },
+ "ntpConfigSettings": {
+ "description": "Конфигуриране на NTP",
+ "label": "Конфигурация на NTP"
+ },
+ "rsyslogConfigSettings": {
+ "description": "Конфигуриране на Rsyslog",
+ "label": "Конфиг. на Rsyslog"
+ },
+ "udpConfigSettings": {
+ "description": "Конфигуриране на UDP през Mesh",
+ "label": "Конфигуриране на UDP"
+ }
+ },
+ "position": {
+ "title": "Настройки на позицията",
+ "description": "Настройки за модула за позиция",
+ "broadcastInterval": {
+ "description": "How often your position is sent out over the mesh",
+ "label": "Интервал на излъчване"
+ },
+ "enablePin": {
+ "description": "GPS module enable pin override",
+ "label": "Активиране на пин"
+ },
+ "fixedPosition": {
+ "description": "Да не се докладва GPS позиция, а ръчно зададена такава",
+ "label": "Фиксирана позиция"
+ },
+ "gpsMode": {
+ "description": "Конфигуриране дали GPS на устройството е активиран, деактивиран или липсва",
+ "label": "Режим на GPS"
+ },
+ "gpsUpdateInterval": {
+ "description": "Колко често трябва да се получава GPS сигнал",
+ "label": "Интервал на актуализиране на GPS"
+ },
+ "positionFlags": {
+ "description": "Optional fields to include when assembling position messages. The more fields are selected, the larger the message will be leading to longer airtime usage and a higher risk of packet loss.",
+ "label": "Position Flags"
+ },
+ "receivePin": {
+ "description": "GPS module RX pin override",
+ "label": "Receive Pin"
+ },
+ "smartPositionEnabled": {
+ "description": "Only send position when there has been a meaningful change in location",
+ "label": "Enable Smart Position"
+ },
+ "smartPositionMinDistance": {
+ "description": "Минималното разстояние (в метри), което трябва да се измине, преди да се изпрати актуализация на местоположението",
+ "label": "Минимално разстояние за интелигентна позиция"
+ },
+ "smartPositionMinInterval": {
+ "description": "Minimum interval (in seconds) that must pass before a position update is sent",
+ "label": "Smart Position Minimum Interval"
+ },
+ "transmitPin": {
+ "description": "GPS module TX pin override",
+ "label": "Transmit Pin"
+ },
+ "intervalsSettings": {
+ "description": "Колко често да се изпращат актуализации на позицията",
+ "label": "Интервали"
+ },
+ "flags": {
+ "placeholder": "Select position flags...",
+ "altitude": "Надморска височина",
+ "altitudeGeoidalSeparation": "Altitude Geoidal Separation",
+ "altitudeMsl": "Altitude is Mean Sea Level",
+ "dop": "Dilution of precision (DOP) PDOP used by default",
+ "hdopVdop": "If DOP is set, use HDOP / VDOP values instead of PDOP",
+ "numSatellites": "Брой сателити",
+ "sequenceNumber": "Пореден номер",
+ "timestamp": "Времево клеймо",
+ "unset": "Не е зададен",
+ "vehicleHeading": "Посока на движение на превозното средство",
+ "vehicleSpeed": "Скорост на превозното средство"
+ }
+ },
+ "power": {
+ "adcMultiplierOverride": {
+ "description": "Използва се за настройване на отчитането на напрежението на батерията",
+ "label": "ADC Multiplier Override ratio"
+ },
+ "ina219Address": {
+ "description": "Address of the INA219 battery monitor",
+ "label": "INA219 адрес"
+ },
+ "lightSleepDuration": {
+ "description": "Колко дълго устройството ще бъде в лек сън",
+ "label": "Продължителност на лекия сън"
+ },
+ "minimumWakeTime": {
+ "description": "Минималното време, през което устройството ще остане активно след получаване на пакет",
+ "label": "Минимално време за събуждане"
+ },
+ "noConnectionBluetoothDisabled": {
+ "description": "If the device does not receive a Bluetooth connection, the BLE radio will be disabled after this long",
+ "label": "Няма връзка Bluetooth е дезактивиран"
+ },
+ "powerSavingEnabled": {
+ "description": "Изберете, ако се захранва от източник с малък ток (напр. слънчева енергия), за да се намали максимално консумацията на енергия.",
+ "label": "Активиране на енергоспестяващ режим"
+ },
+ "shutdownOnBatteryDelay": {
+ "description": "Automatically shutdown node after this long when on battery, 0 for indefinite",
+ "label": "Shutdown on battery delay"
+ },
+ "superDeepSleepDuration": {
+ "description": "Колко дълго устройството ще бъде в супер дълбок сън",
+ "label": "Продължителност на супер дълбокия сън"
+ },
+ "powerConfigSettings": {
+ "description": "Настройки за захранващия модул",
+ "label": "Конфигуриране на захранването"
+ },
+ "sleepSettings": {
+ "description": "Настройки за спящ режим за захранващия модул",
+ "label": "Настройки за сън"
+ }
+ },
+ "security": {
+ "description": "Настройки за конфигурацията за сигурност",
+ "title": "Насртойки на сигурността",
+ "button_backupKey": "Резервно копие на ключа",
+ "adminChannelEnabled": {
+ "description": "Allow incoming device control over the insecure legacy admin channel",
+ "label": "Allow Legacy Admin"
+ },
+ "enableDebugLogApi": {
+ "description": "Output live debug logging over serial, view and export position-redacted device logs over Bluetooth",
+ "label": "Enable Debug Log API"
+ },
+ "managed": {
+ "description": "Ако е активирана, опциите за конфигурация на устройството могат да се променят дистанционно само от възел за отдалечено администриране чрез администраторски съобщения. Не активирайте тази опция, освен ако не е настроен поне един подходящ възел за отдалечено администриране и публичният ключ е съхранен в едно от полетата по-горе.",
+ "label": "Управлява се"
+ },
+ "privateKey": {
+ "description": "Използва се за създаване на споделен ключ с отдалечено устройство",
+ "label": "Частен ключ"
+ },
+ "publicKey": {
+ "description": "Изпраща се до други възли в mesh, за да им позволи да изчислят споделения секретен ключ",
+ "label": "Публичен ключ"
+ },
+ "primaryAdminKey": {
+ "description": "Основният публичен ключ, оторизиран за изпращане на администраторски съобщения до този възел",
+ "label": "Основен администраторски ключ"
+ },
+ "secondaryAdminKey": {
+ "description": "Вторичният публичен ключ, оторизиран за изпращане на администраторски съобщения до този възел.",
+ "label": "Вторичен администраторски ключ"
+ },
+ "serialOutputEnabled": {
+ "description": "Serial Console over the Stream API",
+ "label": "Serial Output Enabled"
+ },
+ "tertiaryAdminKey": {
+ "description": "Третичният публичен ключ, оторизиран за изпращане на администраторски съобщения до този възел",
+ "label": "Третичен администраторски ключ"
+ },
+ "adminSettings": {
+ "description": "Настройки за Admin",
+ "label": "Администраторски настройки"
+ },
+ "loggingSettings": {
+ "description": "Settings for Logging",
+ "label": "Logging Settings"
+ }
+ },
+ "user": {
+ "title": "User Settings",
+ "description": "Configure your device name and identity settings",
+ "longName": {
+ "label": "Дълго име",
+ "description": "Your full display name (1-40 characters)",
+ "validation": {
+ "min": "Long name must be at least 1 character",
+ "max": "Long name must be at most 40 characters"
+ }
+ },
+ "shortName": {
+ "label": "Кратко име",
+ "description": "Your abbreviated name (2-4 characters)",
+ "validation": {
+ "min": "Short name must be at least 2 characters",
+ "max": "Short name must be at most 4 characters"
+ }
+ },
+ "isUnmessageable": {
+ "label": "Без съобщения",
+ "description": "Used to identify unmonitored or infrastructure nodes so that messaging is not available to nodes that will never respond."
+ },
+ "isLicensed": {
+ "label": "Лицензиран радиолюбител (HAM)",
+ "description": "Enable if you are a licensed amateur radio operator, enabling this option disables encryption and is not compatible with the default Meshtastic network."
+ }
+ }
+}
diff --git a/packages/web/public/i18n/locales/bg-BG/dashboard.json b/packages/web/public/i18n/locales/bg-BG/dashboard.json
index f59f4eb4..4f1c9d39 100644
--- a/packages/web/public/i18n/locales/bg-BG/dashboard.json
+++ b/packages/web/public/i18n/locales/bg-BG/dashboard.json
@@ -1,12 +1,12 @@
{
- "dashboard": {
- "title": "Свързани устройства",
- "description": "Управлявайте свързаните си устройства Meshtastic.",
- "connectionType_ble": "BLE",
- "connectionType_serial": "Серийна",
- "connectionType_network": "Мрежа",
- "noDevicesTitle": "Няма свързани устройства",
- "noDevicesDescription": "Свържете ново устройство, за да започнете.",
- "button_newConnection": "Нова връзка"
- }
+ "dashboard": {
+ "title": "Свързани устройства",
+ "description": "Управлявайте свързаните си устройства Meshtastic.",
+ "connectionType_ble": "BLE",
+ "connectionType_serial": "Серийна",
+ "connectionType_network": "Мрежа",
+ "noDevicesTitle": "Няма свързани устройства",
+ "noDevicesDescription": "Свържете ново устройство, за да започнете.",
+ "button_newConnection": "Нова връзка"
+ }
}
diff --git a/packages/web/public/i18n/locales/bg-BG/dialog.json b/packages/web/public/i18n/locales/bg-BG/dialog.json
index 1940890b..fa8d9186 100644
--- a/packages/web/public/i18n/locales/bg-BG/dialog.json
+++ b/packages/web/public/i18n/locales/bg-BG/dialog.json
@@ -1,193 +1,221 @@
{
- "deleteMessages": {
- "description": "Това действие ще изчисти цялата история на съобщенията. Това не може да бъде отменено. Сигурни ли сте, че искате да продължите?",
- "title": "Изчистване на всички съобщения"
- },
- "deviceName": {
- "description": "Устройството ще се рестартира, след като конфигурацията бъде запазена.",
- "longName": "Дълго име",
- "shortName": "Кратко име",
- "title": "Промяна на името на устройството",
- "validation": {
- "longNameMax": "Дългото име не трябва да е повече от 40 знака",
- "shortNameMax": "Краткото име не трябва да е повече от 4 знака",
- "longNameMin": "Дългото име трябва да съдържа поне 1 символ",
- "shortNameMin": "Краткото име трябва да съдържа поне 1 символ"
- }
- },
- "import": {
- "description": "Текущата конфигурация на LoRa ще бъде презаписана.",
- "error": {
- "invalidUrl": "Невалиден Meshtastic URL"
- },
- "channelPrefix": "Канал: ",
- "channelSetUrl": "Channel Set/QR Code URL",
- "channels": "Канали:",
- "usePreset": "Използване на предварително зададени настройки?",
- "title": "Import Channel Set"
- },
- "locationResponse": {
- "title": "Местоположение: {{identifier}}",
- "altitude": "Надморска височина: ",
- "coordinates": "Координати:",
- "noCoordinates": "Няма координати"
- },
- "pkiRegenerateDialog": {
- "title": "Регенериране на предварително споделения ключ?",
- "description": "Сигурни ли сте, че искате да регенерирате предварително споделения ключ?",
- "regenerate": "Регенериране"
- },
- "newDeviceDialog": {
- "title": "Свързване на ново устройство",
- "https": "https",
- "http": "http",
- "tabHttp": "HTTP",
- "tabBluetooth": "Bluetooth",
- "tabSerial": "Серийна",
- "useHttps": "Използване на HTTPS",
- "connecting": "Свързване...",
- "connect": "Свързване",
- "connectionFailedAlert": {
- "title": "Връзката е неуспешна",
- "descriptionPrefix": "Не може да се свърже с устройството.",
- "httpsHint": "Ако използвате HTTPS, може да се наложи първо да приемете самоподписан сертификат. ",
- "openLinkPrefix": "Моля, отворете",
- "openLinkSuffix": "в нов раздел",
- "acceptTlsWarningSuffix": ", accept any TLS warnings if prompted, then try again",
- "learnMoreLink": "Научете повече"
- },
- "httpConnection": {
- "label": "IP адрес/Име на хост",
- "placeholder": "000.000.000.000 / meshtastic.local"
- },
- "serialConnection": {
- "noDevicesPaired": "Все още няма сдвоени устройства.",
- "newDeviceButton": "Ново устройство",
- "deviceIdentifier": "# {{index}} - {{vendorId}} - {{productId}}"
- },
- "bluetoothConnection": {
- "noDevicesPaired": "Все още няма сдвоени устройства.",
- "newDeviceButton": "Ново устройство",
- "connectionFailed": "Връзката е неуспешна",
- "deviceDisconnected": "Устройството не е свързано",
- "unknownDevice": "Неизвестно устройство",
- "errorLoadingDevices": "Грешка при зареждане на устройствата",
- "unknownErrorLoadingDevices": "Неизвестна грешка при зареждане на устройствата"
- },
- "validation": {
- "requiresWebBluetooth": "Този тип връзка изисква <0>Web Bluetooth0>. Моля, използвайте поддържан браузър, като Chrome или Edge.",
- "requiresWebSerial": "Този тип връзка изисква <0>Web Serial0>. Моля, използвайте поддържан браузър, като Chrome или Edge.",
- "requiresSecureContext": "Това приложение изисква <0>secure context0>. Моля, свържете се чрез HTTPS или localhost.",
- "additionallyRequiresSecureContext": "Освен това, изисква <0>secure context0>. Моля, свържете се чрез HTTPS или localhost."
- }
- },
- "nodeDetails": {
- "message": "Съобщение",
- "requestPosition": "Request Position",
- "traceRoute": "Trace Route",
- "airTxUtilization": "Air TX utilization",
- "allRawMetrics": "All Raw Metrics:",
- "batteryLevel": "Ниво на батерията",
- "channelUtilization": "Използване на канала",
- "details": "Подробности:",
- "deviceMetrics": "Device Metrics:",
- "hardware": "Хардуер: ",
- "lastHeard": "Последно чут: ",
- "nodeHexPrefix": "Node Hex: ",
- "nodeNumber": "Номер на възела: ",
- "position": "Позиция:",
- "role": "Роля: ",
- "uptime": "Време на работа: ",
- "voltage": "Напрежение",
- "title": "Подробности за възел за {{identifier}}",
- "ignoreNode": "Игнориране на възела",
- "removeNode": "Премахване на възела",
- "unignoreNode": "Премахване на игнорирането на възела",
- "security": "Сигурност:",
- "publicKey": "Public Key: ",
- "messageable": "Messageable: ",
- "KeyManuallyVerifiedTrue": "Публичният ключ е проверен ръчно",
- "KeyManuallyVerifiedFalse": "Публичният ключ не е проверен ръчно"
- },
- "pkiBackup": {
- "loseKeysWarning": "Ако загубите ключовете си, ще трябва да нулирате устройството си.",
- "secureBackup": "Важно е да направите резервно копие на публичните и частните си ключове и да съхранявате резервното си копие сигурно!",
- "footer": "=== КРАЙ НА КЛЮЧОВЕТЕ ===",
- "header": "=== MESHTASTIC КЛЮЧОВЕ ЗА {{longName}} ({{shortName}}) ===",
- "privateKey": "Частен ключ:",
- "publicKey": "Публичен ключ:",
- "fileName": "meshtastic_keys_{{longName}}_{{shortName}}.txt",
- "title": "Backup Keys"
- },
- "pkiBackupReminder": {
- "description": "Препоръчваме редовно да правите резервни копия на данните с вашите ключове. Искате ли да направите резервно копие сега?",
- "title": "Напомняне за резервно копие",
- "remindLaterPrefix": "Напомни ми в",
- "remindNever": "Никога не ми напомняй",
- "backupNow": "Създаване на резервно копие сега"
- },
- "pkiRegenerate": {
- "description": "Сигурни ли сте, че искате да регенерирате двойката ключове?",
- "title": "Регенериране на двойката ключове"
- },
- "qr": {
- "addChannels": "Добавяне на канали",
- "replaceChannels": "Замяна на канали",
- "description": "Текущата конфигурация на LoRa също ще бъде споделена.",
- "sharableUrl": "Sharable URL",
- "title": "Генериране на QR код"
- },
- "reboot": {
- "title": "Рестартиране на устройството",
- "description": "Reboot now or schedule a reboot of the connected node. Optionally, you can choose to reboot into OTA (Over-the-Air) mode.",
- "ota": "Reboot into OTA mode",
- "enterDelay": "Въведете забавяне",
- "scheduled": "Насрочено е рестартиране",
- "schedule": "Планиране на рестартиране",
- "now": "Рестартиране сега",
- "cancel": "Cancel scheduled reboot"
- },
- "refreshKeys": {
- "description": {
- "acceptNewKeys": "This will remove the node from device and request new keys.",
- "keyMismatchReasonSuffix": ". This is due to the remote node's current public key does not match the previously stored key for this node.",
- "unableToSendDmPrefix": "Your node is unable to send a direct message to node: "
- },
- "acceptNewKeys": "риемане на нови ключове",
- "title": "Keys Mismatch - {{identifier}}"
- },
- "removeNode": {
- "description": "Сигурни ли сте, че искате да премахнете този възел?",
- "title": "Премахване на възела?"
- },
- "shutdown": {
- "title": "Планирано изключване",
- "description": "Изключване на свързания възел след x минути."
- },
- "traceRoute": {
- "routeToDestination": "Route to destination:",
- "routeBack": "Route back:"
- },
- "tracerouteResponse": {
- "title": "Traceroute: {{identifier}}"
- },
- "unsafeRoles": {
- "confirmUnderstanding": "Да, знам какво правя",
- "conjunction": "и публикацията в блога за ",
- "postamble": " и разберам последиците от промяната на ролята.",
- "preamble": "Аз прочетох ",
- "choosingRightDeviceRole": "Избор на правилната роля на устройството",
- "deviceRoleDocumentation": "Документация за ролите на устройството",
- "title": "Сигурни ли сте?"
- },
- "managedMode": {
- "confirmUnderstanding": "Да, знам какво правя",
- "title": "Сигурни ли сте?",
- "description": "Enabling Managed Mode blocks client applications (including the web client) from writing configurations to a radio. Once enabled, radio configurations can only be changed through Remote Admin messages. This setting is not required for remote node administration."
- },
- "clientNotification": {
- "title": "Client Notification",
- "TraceRoute can only be sent once every 30 seconds": "TraceRoute can only be sent once every 30 seconds",
- "Compromised keys were detected and regenerated.": "Бяха открити и регенерирани компрометирани ключове."
- }
+ "deleteMessages": {
+ "description": "Това действие ще изчисти цялата история на съобщенията. Това не може да бъде отменено. Сигурни ли сте, че искате да продължите?",
+ "title": "Изчистване на всички съобщения"
+ },
+ "deviceName": {
+ "description": "Устройството ще се рестартира, след като конфигурацията бъде запазена.",
+ "longName": "Дълго име",
+ "shortName": "Кратко име",
+ "title": "Промяна на името на устройството",
+ "validation": {
+ "longNameMax": "Дългото име не трябва да е повече от 40 знака",
+ "shortNameMax": "Краткото име не трябва да е повече от 4 знака",
+ "longNameMin": "Дългото име трябва да съдържа поне 1 символ",
+ "shortNameMin": "Краткото име трябва да съдържа поне 1 символ"
+ }
+ },
+ "import": {
+ "description": "Текущата конфигурация на LoRa ще бъде презаписана.",
+ "error": {
+ "invalidUrl": "Невалиден Meshtastic URL"
+ },
+ "channelPrefix": "Канал: ",
+ "primary": "Primary ",
+ "doNotImport": "No not import",
+ "channelName": "Име",
+ "channelSlot": "Слот",
+ "channelSetUrl": "Channel Set/QR Code URL",
+ "useLoraConfig": "Import LoRa Config",
+ "presetDescription": "The current LoRa Config will be replaced.",
+ "title": "Import Channel Set"
+ },
+ "locationResponse": {
+ "title": "Местоположение: {{identifier}}",
+ "altitude": "Надморска височина: ",
+ "coordinates": "Координати:",
+ "noCoordinates": "Няма координати"
+ },
+ "pkiRegenerateDialog": {
+ "title": "Регенериране на предварително споделения ключ?",
+ "description": "Сигурни ли сте, че искате да регенерирате предварително споделения ключ?",
+ "regenerate": "Регенериране"
+ },
+ "newDeviceDialog": {
+ "title": "Свързване на ново устройство",
+ "https": "https",
+ "http": "http",
+ "tabHttp": "HTTP",
+ "tabBluetooth": "Bluetooth",
+ "tabSerial": "Серийна",
+ "useHttps": "Използване на HTTPS",
+ "connecting": "Свързване...",
+ "connect": "Свързване",
+ "connectionFailedAlert": {
+ "title": "Връзката е неуспешна",
+ "descriptionPrefix": "Не може да се свърже с устройството.",
+ "httpsHint": "Ако използвате HTTPS, може да се наложи първо да приемете самоподписан сертификат. ",
+ "openLinkPrefix": "Моля, отворете",
+ "openLinkSuffix": "в нов раздел",
+ "acceptTlsWarningSuffix": ", accept any TLS warnings if prompted, then try again",
+ "learnMoreLink": "Научете повече"
+ },
+ "httpConnection": {
+ "label": "IP адрес/Име на хост",
+ "placeholder": "000.000.000.000 / meshtastic.local"
+ },
+ "serialConnection": {
+ "noDevicesPaired": "Все още няма сдвоени устройства.",
+ "newDeviceButton": "Ново устройство",
+ "deviceIdentifier": "# {{index}} - {{vendorId}} - {{productId}}"
+ },
+ "bluetoothConnection": {
+ "noDevicesPaired": "Все още няма сдвоени устройства.",
+ "newDeviceButton": "Ново устройство",
+ "connectionFailed": "Връзката е неуспешна",
+ "deviceDisconnected": "Устройството не е свързано",
+ "unknownDevice": "Неизвестно устройство",
+ "errorLoadingDevices": "Грешка при зареждане на устройствата",
+ "unknownErrorLoadingDevices": "Неизвестна грешка при зареждане на устройствата"
+ },
+ "validation": {
+ "requiresWebBluetooth": "Този тип връзка изисква <0>Web Bluetooth0>. Моля, използвайте поддържан браузър, като Chrome или Edge.",
+ "requiresWebSerial": "Този тип връзка изисква <0>Web Serial0>. Моля, използвайте поддържан браузър, като Chrome или Edge.",
+ "requiresSecureContext": "Това приложение изисква <0>secure context0>. Моля, свържете се чрез HTTPS или localhost.",
+ "additionallyRequiresSecureContext": "Освен това, изисква <0>secure context0>. Моля, свържете се чрез HTTPS или localhost."
+ }
+ },
+ "nodeDetails": {
+ "message": "Съобщение",
+ "requestPosition": "Request Position",
+ "traceRoute": "Trace Route",
+ "airTxUtilization": "Air TX utilization",
+ "allRawMetrics": "All Raw Metrics:",
+ "batteryLevel": "Ниво на батерията",
+ "channelUtilization": "Използване на канала",
+ "details": "Подробности:",
+ "deviceMetrics": "Device Metrics:",
+ "hardware": "Хардуер: ",
+ "lastHeard": "Последно чут: ",
+ "nodeHexPrefix": "Node Hex: ",
+ "nodeNumber": "Номер на възела: ",
+ "position": "Позиция:",
+ "role": "Роля: ",
+ "uptime": "Време на работа: ",
+ "voltage": "Напрежение",
+ "title": "Подробности за възел за {{identifier}}",
+ "ignoreNode": "Игнориране на възела",
+ "removeNode": "Премахване на възела",
+ "unignoreNode": "Премахване на игнорирането на възела",
+ "security": "Сигурност:",
+ "publicKey": "Public Key: ",
+ "messageable": "Messageable: ",
+ "KeyManuallyVerifiedTrue": "Публичният ключ е проверен ръчно",
+ "KeyManuallyVerifiedFalse": "Публичният ключ не е проверен ръчно"
+ },
+ "pkiBackup": {
+ "loseKeysWarning": "Ако загубите ключовете си, ще трябва да нулирате устройството си.",
+ "secureBackup": "Важно е да направите резервно копие на публичните и частните си ключове и да съхранявате резервното си копие сигурно!",
+ "footer": "=== КРАЙ НА КЛЮЧОВЕТЕ ===",
+ "header": "=== MESHTASTIC КЛЮЧОВЕ ЗА {{longName}} ({{shortName}}) ===",
+ "privateKey": "Частен ключ:",
+ "publicKey": "Публичен ключ:",
+ "fileName": "meshtastic_keys_{{longName}}_{{shortName}}.txt",
+ "title": "Backup Keys"
+ },
+ "pkiBackupReminder": {
+ "description": "Препоръчваме редовно да правите резервни копия на данните с вашите ключове. Искате ли да направите резервно копие сега?",
+ "title": "Напомняне за резервно копие",
+ "remindLaterPrefix": "Напомни ми в",
+ "remindNever": "Никога не ми напомняй",
+ "backupNow": "Създаване на резервно копие сега"
+ },
+ "pkiRegenerate": {
+ "description": "Сигурни ли сте, че искате да регенерирате двойката ключове?",
+ "title": "Регенериране на двойката ключове"
+ },
+ "qr": {
+ "addChannels": "Добавяне на канали",
+ "replaceChannels": "Замяна на канали",
+ "description": "Текущата конфигурация на LoRa също ще бъде споделена.",
+ "sharableUrl": "Sharable URL",
+ "title": "Генериране на QR код"
+ },
+ "reboot": {
+ "title": "Рестартиране на устройството",
+ "description": "Reboot now or schedule a reboot of the connected node. Optionally, you can choose to reboot into OTA (Over-the-Air) mode.",
+ "ota": "Reboot into OTA mode",
+ "enterDelay": "Въведете забавяне",
+ "scheduled": "Насрочено е рестартиране",
+ "schedule": "Планиране на рестартиране",
+ "now": "Рестартиране сега",
+ "cancel": "Cancel scheduled reboot"
+ },
+ "refreshKeys": {
+ "description": {
+ "acceptNewKeys": "This will remove the node from device and request new keys.",
+ "keyMismatchReasonSuffix": ". This is due to the remote node's current public key does not match the previously stored key for this node.",
+ "unableToSendDmPrefix": "Your node is unable to send a direct message to node: "
+ },
+ "acceptNewKeys": "риемане на нови ключове",
+ "title": "Keys Mismatch - {{identifier}}"
+ },
+ "removeNode": {
+ "description": "Сигурни ли сте, че искате да премахнете този възел?",
+ "title": "Премахване на възела?"
+ },
+ "shutdown": {
+ "title": "Планирано изключване",
+ "description": "Изключване на свързания възел след x минути."
+ },
+ "traceRoute": {
+ "routeToDestination": "Route to destination:",
+ "routeBack": "Route back:"
+ },
+ "tracerouteResponse": {
+ "title": "Traceroute: {{identifier}}"
+ },
+ "unsafeRoles": {
+ "confirmUnderstanding": "Да, знам какво правя",
+ "conjunction": "и публикацията в блога за ",
+ "postamble": " и разберам последиците от промяната на ролята.",
+ "preamble": "Аз прочетох ",
+ "choosingRightDeviceRole": "Избор на правилната роля на устройството",
+ "deviceRoleDocumentation": "Документация за ролите на устройството",
+ "title": "Сигурни ли сте?"
+ },
+ "managedMode": {
+ "confirmUnderstanding": "Да, знам какво правя",
+ "title": "Сигурни ли сте?",
+ "description": "Enabling Managed Mode blocks client applications (including the web client) from writing configurations to a radio. Once enabled, radio configurations can only be changed through Remote Admin messages. This setting is not required for remote node administration."
+ },
+ "clientNotification": {
+ "title": "Client Notification",
+ "TraceRoute can only be sent once every 30 seconds": "TraceRoute can only be sent once every 30 seconds",
+ "Compromised keys were detected and regenerated.": "Бяха открити и регенерирани компрометирани ключове."
+ },
+ "resetNodeDb": {
+ "title": "Reset Node Database",
+ "description": "This will clear all nodes from the connected device's node database and clear all message history in the client. This cannot be undone. Are you sure you want to continue?",
+ "confirm": "Reset Node Database",
+ "failedTitle": "There was an error resetting the Node DB. Please try again."
+ },
+ "clearAllStores": {
+ "title": "Clear All Local Storage",
+ "description": "This will clear all locally stored data, including message history and node databases for all previously connected devices. This will require you to reconnect to your node once complete and cannot be undone. Are you sure you want to continue?",
+ "confirm": "Clear all local storage",
+ "failedTitle": "There was an error clearing local storage. Please try again."
+ },
+ "factoryResetDevice": {
+ "title": "Фабрично нулиране на устройството",
+ "description": "This will factory reset the connected device, erasing all configurations and data on the device as well as all nodes and messages saved in the client. This cannot be undone. Are you sure you want to continue?",
+ "confirm": "Фабрично нулиране на устройството",
+ "failedTitle": "There was an error performing the factory reset. Please try again."
+ },
+ "factoryResetConfig": {
+ "title": "Фабрично нулиране на конфигурацията",
+ "description": "This will factory reset the configuration on the connected device, erasing all configurations on the device. This cannot be undone. Are you sure you want to continue?",
+ "confirm": "Фабрично нулиране на конфигурацията",
+ "failedTitle": "There was an error performing the factory reset. Please try again."
+ }
}
diff --git a/packages/web/public/i18n/locales/bg-BG/map.json b/packages/web/public/i18n/locales/bg-BG/map.json
new file mode 100644
index 00000000..f994073f
--- /dev/null
+++ b/packages/web/public/i18n/locales/bg-BG/map.json
@@ -0,0 +1,38 @@
+{
+ "maplibre": {
+ "GeolocateControl.FindMyLocation": "Find my location",
+ "NavigationControl.ZoomIn": "Zoom in",
+ "NavigationControl.ZoomOut": "Zoom out",
+ "CooperativeGesturesHandler.WindowsHelpText": "Use Ctrl + scroll to zoom the map",
+ "CooperativeGesturesHandler.MacHelpText": "Use ⌘ + scroll to zoom the map",
+ "CooperativeGesturesHandler.MobileHelpText": "Use two fingers to move the map"
+ },
+ "layerTool": {
+ "nodeMarkers": "Show nodes",
+ "directNeighbors": "Show direct connections",
+ "remoteNeighbors": "Show remote connections",
+ "positionPrecision": "Show position precision",
+ "traceroutes": "Show traceroutes",
+ "waypoints": "Show waypoints"
+ },
+ "mapMenu": {
+ "locateAria": "Locate my node",
+ "layersAria": "Change map style"
+ },
+ "waypointDetail": {
+ "edit": "Редактирай",
+ "description": "Description:",
+ "createdBy": "Edited by:",
+ "createdDate": "Created:",
+ "updated": "Updated:",
+ "expires": "Expires:",
+ "distance": "Distance:",
+ "bearing": "Absolute bearing:",
+ "lockedTo": "Locked by:",
+ "latitude": "Latitude:",
+ "longitude": "Longitude:"
+ },
+ "myNode": {
+ "tooltip": "This device"
+ }
+}
diff --git a/packages/web/public/i18n/locales/bg-BG/messages.json b/packages/web/public/i18n/locales/bg-BG/messages.json
index 9e9c68fe..e9189926 100644
--- a/packages/web/public/i18n/locales/bg-BG/messages.json
+++ b/packages/web/public/i18n/locales/bg-BG/messages.json
@@ -1,39 +1,39 @@
{
- "page": {
- "title": "Съобщения: {{chatName}}",
- "placeholder": "Въведете съобщение"
- },
- "emptyState": {
- "title": "Изберете чат",
- "text": "Все още няма съобщения."
- },
- "selectChatPrompt": {
- "text": "Изберете канал или възел, за да стартирате съобщения."
- },
- "sendMessage": {
- "placeholder": "Въведете Вашето съобщение тук...",
- "sendButton": "Изпрати"
- },
- "actionsMenu": {
- "addReactionLabel": "Добавяне на реакция",
- "replyLabel": "Отговор"
- },
- "deliveryStatus": {
- "delivered": {
- "label": "Съобщението е доставено",
- "displayText": "Съобщението е доставено"
- },
- "failed": {
- "label": "Доставката на съобщението не е успешна",
- "displayText": "Неуспешна доставка"
- },
- "unknown": {
- "label": "Статусът на съобщението е неизвестен",
- "displayText": "Неизвестно състояние"
- },
- "waiting": {
- "label": "Изпращане на съобщение",
- "displayText": "Чака доставка"
- }
- }
+ "page": {
+ "title": "Съобщения: {{chatName}}",
+ "placeholder": "Въведете съобщение"
+ },
+ "emptyState": {
+ "title": "Изберете чат",
+ "text": "Все още няма съобщения."
+ },
+ "selectChatPrompt": {
+ "text": "Изберете канал или възел, за да стартирате съобщения."
+ },
+ "sendMessage": {
+ "placeholder": "Въведете Вашето съобщение тук...",
+ "sendButton": "Изпрати"
+ },
+ "actionsMenu": {
+ "addReactionLabel": "Добавяне на реакция",
+ "replyLabel": "Отговор"
+ },
+ "deliveryStatus": {
+ "delivered": {
+ "label": "Съобщението е доставено",
+ "displayText": "Съобщението е доставено"
+ },
+ "failed": {
+ "label": "Доставката на съобщението не е успешна",
+ "displayText": "Неуспешна доставка"
+ },
+ "unknown": {
+ "label": "Статусът на съобщението е неизвестен",
+ "displayText": "Неизвестно състояние"
+ },
+ "waiting": {
+ "label": "Изпращане на съобщение",
+ "displayText": "Чака доставка"
+ }
+ }
}
diff --git a/packages/web/public/i18n/locales/bg-BG/moduleConfig.json b/packages/web/public/i18n/locales/bg-BG/moduleConfig.json
index bb9037a7..07d2a9ac 100644
--- a/packages/web/public/i18n/locales/bg-BG/moduleConfig.json
+++ b/packages/web/public/i18n/locales/bg-BG/moduleConfig.json
@@ -1,448 +1,448 @@
{
- "page": {
- "tabAmbientLighting": "Ambient Lighting",
- "tabAudio": "Аудио",
- "tabCannedMessage": "Canned",
- "tabDetectionSensor": "Detection Sensor",
- "tabExternalNotification": "Ext Notif",
- "tabMqtt": "MQTT",
- "tabNeighborInfo": "Neighbor Info",
- "tabPaxcounter": "Paxcounter",
- "tabRangeTest": "Тест на обхвата",
- "tabSerial": "Серийна",
- "tabStoreAndForward": "S&F",
- "tabTelemetry": "Телеметрия"
- },
- "ambientLighting": {
- "title": "Ambient Lighting Settings",
- "description": "Settings for the Ambient Lighting module",
- "ledState": {
- "label": "LED State",
- "description": "Sets LED to on or off"
- },
- "current": {
- "label": "Текущ",
- "description": "Sets the current for the LED output. Default is 10"
- },
- "red": {
- "label": "Червен",
- "description": "Sets the red LED level. Values are 0-255"
- },
- "green": {
- "label": "Зелен",
- "description": "Sets the green LED level. Values are 0-255"
- },
- "blue": {
- "label": "Син",
- "description": "Sets the blue LED level. Values are 0-255"
- }
- },
- "audio": {
- "title": "Настройки на аудиото",
- "description": "Настройки за аудио модула",
- "codec2Enabled": {
- "label": "Codec 2 е активиран",
- "description": "Enable Codec 2 audio encoding"
- },
- "pttPin": {
- "label": "Пин за РТТ",
- "description": "GPIO пин, който да се използва за PTT"
- },
- "bitrate": {
- "label": "Bitrate",
- "description": "Bitrate to use for audio encoding"
- },
- "i2sWs": {
- "label": "i2S WS",
- "description": "GPIO pin to use for i2S WS"
- },
- "i2sSd": {
- "label": "i2S SD",
- "description": "GPIO pin to use for i2S SD"
- },
- "i2sDin": {
- "label": "i2S DIN",
- "description": "GPIO pin to use for i2S DIN"
- },
- "i2sSck": {
- "label": "i2S SCK",
- "description": "GPIO pin to use for i2S SCK"
- }
- },
- "cannedMessage": {
- "title": "Canned Message Settings",
- "description": "Settings for the Canned Message module",
- "moduleEnabled": {
- "label": "Модулът е активиран",
- "description": "Enable Canned Message"
- },
- "rotary1Enabled": {
- "label": "Ротационен енкодер #1 е активиран",
- "description": "Активиране на ротационния енкодер"
- },
- "inputbrokerPinA": {
- "label": "Encoder Pin A",
- "description": "GPIO Pin Value (1-39) For encoder port A"
- },
- "inputbrokerPinB": {
- "label": "Encoder Pin B",
- "description": "GPIO Pin Value (1-39) For encoder port B"
- },
- "inputbrokerPinPress": {
- "label": "Encoder Pin Press",
- "description": "GPIO Pin Value (1-39) For encoder Press"
- },
- "inputbrokerEventCw": {
- "label": "Clockwise event",
- "description": "Select input event."
- },
- "inputbrokerEventCcw": {
- "label": "Counter Clockwise event",
- "description": "Select input event."
- },
- "inputbrokerEventPress": {
- "label": "Press event",
- "description": "Select input event"
- },
- "updown1Enabled": {
- "label": "Up Down enabled",
- "description": "Enable the up / down encoder"
- },
- "allowInputSource": {
- "label": "Allow Input Source",
- "description": "Изберете от: '_any', 'rotEnc1', 'upDownEnc1', 'cardkb'"
- },
- "sendBell": {
- "label": "Send Bell",
- "description": "Sends a bell character with each message"
- }
- },
- "detectionSensor": {
- "title": "Detection Sensor Settings",
- "description": "Settings for the Detection Sensor module",
- "enabled": {
- "label": "Активиран",
- "description": "Enable or disable Detection Sensor Module"
- },
- "minimumBroadcastSecs": {
- "label": "Minimum Broadcast Seconds",
- "description": "The interval in seconds of how often we can send a message to the mesh when a state change is detected"
- },
- "stateBroadcastSecs": {
- "label": "State Broadcast Seconds",
- "description": "The interval in seconds of how often we should send a message to the mesh with the current state regardless of changes"
- },
- "sendBell": {
- "label": "Send Bell",
- "description": "Send ASCII bell with alert message"
- },
- "name": {
- "label": "Приятелско име",
- "description": "Използва се за форматиране на съобщението, изпратено до mesh, максимум 20 знака"
- },
- "monitorPin": {
- "label": "Monitor Pin",
- "description": "The GPIO pin to monitor for state changes"
- },
- "detectionTriggerType": {
- "label": "Detection Triggered Type",
- "description": "The type of trigger event to be used"
- },
- "usePullup": {
- "label": "Use Pullup",
- "description": "Whether or not use INPUT_PULLUP mode for GPIO pin"
- }
- },
- "externalNotification": {
- "title": "External Notification Settings",
- "description": "Configure the external notification module",
- "enabled": {
- "label": "Модулът е активиран",
- "description": "Enable External Notification"
- },
- "outputMs": {
- "label": "Output MS",
- "description": "Output MS"
- },
- "output": {
- "label": "Output",
- "description": "Output"
- },
- "outputVibra": {
- "label": "Output Vibrate",
- "description": "Output Vibrate"
- },
- "outputBuzzer": {
- "label": "Output Buzzer",
- "description": "Output Buzzer"
- },
- "active": {
- "label": "Активно",
- "description": "Активно"
- },
- "alertMessage": {
- "label": "Предупредително съобщение",
- "description": "Предупредително съобщение"
- },
- "alertMessageVibra": {
- "label": "Alert Message Vibrate",
- "description": "Alert Message Vibrate"
- },
- "alertMessageBuzzer": {
- "label": "Alert Message Buzzer",
- "description": "Alert Message Buzzer"
- },
- "alertBell": {
- "label": "Alert Bell",
- "description": "Should an alert be triggered when receiving an incoming bell?"
- },
- "alertBellVibra": {
- "label": "Alert Bell Vibrate",
- "description": "Alert Bell Vibrate"
- },
- "alertBellBuzzer": {
- "label": "Alert Bell Buzzer",
- "description": "Alert Bell Buzzer"
- },
- "usePwm": {
- "label": "Use PWM",
- "description": "Use PWM"
- },
- "nagTimeout": {
- "label": "Nag Timeout",
- "description": "Nag Timeout"
- },
- "useI2sAsBuzzer": {
- "label": "Use I²S Pin as Buzzer",
- "description": "Designate I²S Pin as Buzzer Output"
- }
- },
- "mqtt": {
- "title": "Настройки на MQTT",
- "description": "Настройки за MQTT модула",
- "enabled": {
- "label": "Активиран",
- "description": "Активиране или дезактивиране на MQTT"
- },
- "address": {
- "label": "Адрес на MQTT сървъра",
- "description": "Адрес на MQTT сървъра, който да се използва за сървъри по подразбиране/персонализирани сървъри"
- },
- "username": {
- "label": "Потребителско име за MQTT",
- "description": "Потребителско име за MQTT, което да се използва за сървъри по подразбиране/персонализирани сървъри"
- },
- "password": {
- "label": "Парола за MQTT",
- "description": "Парола за MQTT, която да се използва за сървъри по подразбиране/персонализирани сървъри"
- },
- "encryptionEnabled": {
- "label": "Криптирането е активирано",
- "description": "Enable or disable MQTT encryption. Note: All messages are sent to the MQTT broker unencrypted if this option is not enabled, even when your uplink channels have encryption keys set. This includes position data."
- },
- "jsonEnabled": {
- "label": "JSON е активиран",
- "description": "Whether to send/consume JSON packets on MQTT"
- },
- "tlsEnabled": {
- "label": "TLS е активиран",
- "description": "Активиране или дезактивиране на TLS"
- },
- "root": {
- "label": "Root topic",
- "description": "MQTT root topic to use for default/custom servers"
- },
- "proxyToClientEnabled": {
- "label": "MQTT Client Proxy Enabled",
- "description": "Utilizes the network connection to proxy MQTT messages to the client."
- },
- "mapReportingEnabled": {
- "label": "Map Reporting Enabled",
- "description": "Your node will periodically send an unencrypted map report packet to the configured MQTT server, this includes id, short and long name, approximate location, hardware model, role, firmware version, LoRa region, modem preset and primary channel name."
- },
- "mapReportSettings": {
- "publishIntervalSecs": {
- "label": "Map Report Publish Interval (s)",
- "description": "Interval in seconds to publish map reports"
- },
- "positionPrecision": {
- "label": "Приблизително местоположение",
- "description": "Position shared will be accurate within this distance",
- "options": {
- "metric_km23": "В рамките на 23 км",
- "metric_km12": "В рамките на 12 км",
- "metric_km5_8": "В рамките на 5.8 км",
- "metric_km2_9": "В рамките на 2.9 км",
- "metric_km1_5": "В рамките на 1.5 км",
- "metric_m700": "В рамките на 700 м",
- "metric_m350": "В рамките на 350 м",
- "metric_m200": "В рамките на 200 м",
- "metric_m90": "В рамките на 90 м",
- "metric_m50": "В рамките на 50 м",
- "imperial_mi15": "В рамките на 15 мили",
- "imperial_mi7_3": "В рамките на 7.3 мили",
- "imperial_mi3_6": "В рамките на 3.6 мили",
- "imperial_mi1_8": "В рамките на 1.8 мили",
- "imperial_mi0_9": "В рамките на 0.9 мили",
- "imperial_mi0_5": "В рамките на 0.5 мили",
- "imperial_mi0_2": "В рамките на 0.2 мили",
- "imperial_ft600": "В рамките на 600 фута",
- "imperial_ft300": "В рамките на 300 фута",
- "imperial_ft150": "В рамките на 150 фута"
- }
- }
- }
- },
- "neighborInfo": {
- "title": "Neighbor Info Settings",
- "description": "Settings for the Neighbor Info module",
- "enabled": {
- "label": "Активиран",
- "description": "Enable or disable Neighbor Info Module"
- },
- "updateInterval": {
- "label": "Интервал на актуализиране",
- "description": "Interval in seconds of how often we should try to send our Neighbor Info to the mesh"
- }
- },
- "paxcounter": {
- "title": "Paxcounter Settings",
- "description": "Настройки за модула Paxcounter",
- "enabled": {
- "label": "Модулът е активиран",
- "description": "Активиране на Paxcounter"
- },
- "paxcounterUpdateInterval": {
- "label": "Интервал на актуализиране (секунди)",
- "description": "How long to wait between sending paxcounter packets"
- },
- "wifiThreshold": {
- "label": "WiFi RSSI Threshold",
- "description": "At what WiFi RSSI level should the counter increase. Defaults to -80."
- },
- "bleThreshold": {
- "label": "BLE RSSI Threshold",
- "description": "At what BLE RSSI level should the counter increase. Defaults to -80."
- }
- },
- "rangeTest": {
- "title": "Настройки за тест на обхвата",
- "description": "Настройки на модула за тестване на обхвата",
- "enabled": {
- "label": "Модулът е активиран",
- "description": "Enable Range Test"
- },
- "sender": {
- "label": "Интервал на съобщенията",
- "description": "Колко време да се чака между изпращането на тестови пакети"
- },
- "save": {
- "label": "Запазване на CSV в хранилището",
- "description": "Само ESP32"
- }
- },
- "serial": {
- "title": "Серийни настройки",
- "description": "Настройки на серийния модул",
- "enabled": {
- "label": "Модулът е активиран",
- "description": "Активиране на сериен изход"
- },
- "echo": {
- "label": "Echo",
- "description": "Any packets you send will be echoed back to your device"
- },
- "rxd": {
- "label": "Receive Pin",
- "description": "Set the GPIO pin to the RXD pin you have set up."
- },
- "txd": {
- "label": "Transmit Pin",
- "description": "Set the GPIO pin to the TXD pin you have set up."
- },
- "baud": {
- "label": "Baud Rate",
- "description": "The serial baud rate"
- },
- "timeout": {
- "label": "Timeout",
- "description": "Seconds to wait before we consider your packet as 'done'"
- },
- "mode": {
- "label": "Режим",
- "description": "Избор на режим"
- },
- "overrideConsoleSerialPort": {
- "label": "Override Console Serial Port",
- "description": "If you have a serial port connected to the console, this will override it."
- }
- },
- "storeForward": {
- "title": "Store & Forward Settings",
- "description": "Settings for the Store & Forward module",
- "enabled": {
- "label": "Модулът е активиран",
- "description": "Enable Store & Forward"
- },
- "heartbeat": {
- "label": "Heartbeat Enabled",
- "description": "Enable Store & Forward heartbeat"
- },
- "records": {
- "label": "Брой записи",
- "description": "Number of records to store"
- },
- "historyReturnMax": {
- "label": "History return max",
- "description": "Max number of records to return"
- },
- "historyReturnWindow": {
- "label": "History return window",
- "description": "Return records from this time window (minutes)"
- }
- },
- "telemetry": {
- "title": "Настройки на телеметрията",
- "description": "Настройки за модула за телеметрия",
- "deviceUpdateInterval": {
- "label": "Метрики на устройството",
- "description": "Интервал на актуализиране на показателите на устройството (секунди)"
- },
- "environmentUpdateInterval": {
- "label": "Интервал на актуализиране на показателите на околната среда (секунди)",
- "description": ""
- },
- "environmentMeasurementEnabled": {
- "label": "Модулът е активиран",
- "description": "Enable the Environment Telemetry"
- },
- "environmentScreenEnabled": {
- "label": "Показва се на екрана",
- "description": "Show the Telemetry Module on the OLED"
- },
- "environmentDisplayFahrenheit": {
- "label": "Показване на Фаренхайт",
- "description": "Показване на температурата във Фаренхайт"
- },
- "airQualityEnabled": {
- "label": "Качество на въздуха е активирано",
- "description": "Активиране на телеметрията за качеството на въздуха"
- },
- "airQualityInterval": {
- "label": "Air Quality Update Interval",
- "description": "How often to send Air Quality data over the mesh"
- },
- "powerMeasurementEnabled": {
- "label": "Power Measurement Enabled",
- "description": "Enable the Power Measurement Telemetry"
- },
- "powerUpdateInterval": {
- "label": "Power Update Interval",
- "description": "How often to send Power data over the mesh"
- },
- "powerScreenEnabled": {
- "label": "Power Screen Enabled",
- "description": "Enable the Power Telemetry Screen"
- }
- }
+ "page": {
+ "tabAmbientLighting": "Ambient Lighting",
+ "tabAudio": "Аудио",
+ "tabCannedMessage": "Canned",
+ "tabDetectionSensor": "Detection Sensor",
+ "tabExternalNotification": "Ext Notif",
+ "tabMqtt": "MQTT",
+ "tabNeighborInfo": "Neighbor Info",
+ "tabPaxcounter": "Paxcounter",
+ "tabRangeTest": "Тест на обхвата",
+ "tabSerial": "Серийна",
+ "tabStoreAndForward": "S&F",
+ "tabTelemetry": "Телеметрия"
+ },
+ "ambientLighting": {
+ "title": "Ambient Lighting Settings",
+ "description": "Settings for the Ambient Lighting module",
+ "ledState": {
+ "label": "LED State",
+ "description": "Sets LED to on or off"
+ },
+ "current": {
+ "label": "Текущ",
+ "description": "Sets the current for the LED output. Default is 10"
+ },
+ "red": {
+ "label": "Червен",
+ "description": "Sets the red LED level. Values are 0-255"
+ },
+ "green": {
+ "label": "Зелен",
+ "description": "Sets the green LED level. Values are 0-255"
+ },
+ "blue": {
+ "label": "Син",
+ "description": "Sets the blue LED level. Values are 0-255"
+ }
+ },
+ "audio": {
+ "title": "Настройки на аудиото",
+ "description": "Настройки за аудио модула",
+ "codec2Enabled": {
+ "label": "Codec 2 е активиран",
+ "description": "Enable Codec 2 audio encoding"
+ },
+ "pttPin": {
+ "label": "Пин за РТТ",
+ "description": "GPIO пин, който да се използва за PTT"
+ },
+ "bitrate": {
+ "label": "Bitrate",
+ "description": "Bitrate to use for audio encoding"
+ },
+ "i2sWs": {
+ "label": "i2S WS",
+ "description": "GPIO pin to use for i2S WS"
+ },
+ "i2sSd": {
+ "label": "i2S SD",
+ "description": "GPIO pin to use for i2S SD"
+ },
+ "i2sDin": {
+ "label": "i2S DIN",
+ "description": "GPIO pin to use for i2S DIN"
+ },
+ "i2sSck": {
+ "label": "i2S SCK",
+ "description": "GPIO pin to use for i2S SCK"
+ }
+ },
+ "cannedMessage": {
+ "title": "Canned Message Settings",
+ "description": "Settings for the Canned Message module",
+ "moduleEnabled": {
+ "label": "Модулът е активиран",
+ "description": "Enable Canned Message"
+ },
+ "rotary1Enabled": {
+ "label": "Ротационен енкодер #1 е активиран",
+ "description": "Активиране на ротационния енкодер"
+ },
+ "inputbrokerPinA": {
+ "label": "Encoder Pin A",
+ "description": "GPIO Pin Value (1-39) For encoder port A"
+ },
+ "inputbrokerPinB": {
+ "label": "Encoder Pin B",
+ "description": "GPIO Pin Value (1-39) For encoder port B"
+ },
+ "inputbrokerPinPress": {
+ "label": "Encoder Pin Press",
+ "description": "GPIO Pin Value (1-39) For encoder Press"
+ },
+ "inputbrokerEventCw": {
+ "label": "Clockwise event",
+ "description": "Select input event."
+ },
+ "inputbrokerEventCcw": {
+ "label": "Counter Clockwise event",
+ "description": "Select input event."
+ },
+ "inputbrokerEventPress": {
+ "label": "Press event",
+ "description": "Select input event"
+ },
+ "updown1Enabled": {
+ "label": "Up Down enabled",
+ "description": "Enable the up / down encoder"
+ },
+ "allowInputSource": {
+ "label": "Allow Input Source",
+ "description": "Изберете от: '_any', 'rotEnc1', 'upDownEnc1', 'cardkb'"
+ },
+ "sendBell": {
+ "label": "Send Bell",
+ "description": "Sends a bell character with each message"
+ }
+ },
+ "detectionSensor": {
+ "title": "Detection Sensor Settings",
+ "description": "Settings for the Detection Sensor module",
+ "enabled": {
+ "label": "Активиран",
+ "description": "Enable or disable Detection Sensor Module"
+ },
+ "minimumBroadcastSecs": {
+ "label": "Minimum Broadcast Seconds",
+ "description": "The interval in seconds of how often we can send a message to the mesh when a state change is detected"
+ },
+ "stateBroadcastSecs": {
+ "label": "State Broadcast Seconds",
+ "description": "The interval in seconds of how often we should send a message to the mesh with the current state regardless of changes"
+ },
+ "sendBell": {
+ "label": "Send Bell",
+ "description": "Send ASCII bell with alert message"
+ },
+ "name": {
+ "label": "Приятелско име",
+ "description": "Използва се за форматиране на съобщението, изпратено до mesh, максимум 20 знака"
+ },
+ "monitorPin": {
+ "label": "Monitor Pin",
+ "description": "The GPIO pin to monitor for state changes"
+ },
+ "detectionTriggerType": {
+ "label": "Detection Triggered Type",
+ "description": "The type of trigger event to be used"
+ },
+ "usePullup": {
+ "label": "Use Pullup",
+ "description": "Whether or not use INPUT_PULLUP mode for GPIO pin"
+ }
+ },
+ "externalNotification": {
+ "title": "External Notification Settings",
+ "description": "Configure the external notification module",
+ "enabled": {
+ "label": "Модулът е активиран",
+ "description": "Enable External Notification"
+ },
+ "outputMs": {
+ "label": "Output MS",
+ "description": "Output MS"
+ },
+ "output": {
+ "label": "Output",
+ "description": "Output"
+ },
+ "outputVibra": {
+ "label": "Output Vibrate",
+ "description": "Output Vibrate"
+ },
+ "outputBuzzer": {
+ "label": "Output Buzzer",
+ "description": "Output Buzzer"
+ },
+ "active": {
+ "label": "Активно",
+ "description": "Активно"
+ },
+ "alertMessage": {
+ "label": "Предупредително съобщение",
+ "description": "Предупредително съобщение"
+ },
+ "alertMessageVibra": {
+ "label": "Alert Message Vibrate",
+ "description": "Alert Message Vibrate"
+ },
+ "alertMessageBuzzer": {
+ "label": "Alert Message Buzzer",
+ "description": "Alert Message Buzzer"
+ },
+ "alertBell": {
+ "label": "Alert Bell",
+ "description": "Should an alert be triggered when receiving an incoming bell?"
+ },
+ "alertBellVibra": {
+ "label": "Alert Bell Vibrate",
+ "description": "Alert Bell Vibrate"
+ },
+ "alertBellBuzzer": {
+ "label": "Alert Bell Buzzer",
+ "description": "Alert Bell Buzzer"
+ },
+ "usePwm": {
+ "label": "Use PWM",
+ "description": "Use PWM"
+ },
+ "nagTimeout": {
+ "label": "Nag Timeout",
+ "description": "Nag Timeout"
+ },
+ "useI2sAsBuzzer": {
+ "label": "Use I²S Pin as Buzzer",
+ "description": "Designate I²S Pin as Buzzer Output"
+ }
+ },
+ "mqtt": {
+ "title": "Настройки на MQTT",
+ "description": "Настройки за MQTT модула",
+ "enabled": {
+ "label": "Активиран",
+ "description": "Активиране или дезактивиране на MQTT"
+ },
+ "address": {
+ "label": "Адрес на MQTT сървъра",
+ "description": "Адрес на MQTT сървъра, който да се използва за сървъри по подразбиране/персонализирани сървъри"
+ },
+ "username": {
+ "label": "Потребителско име за MQTT",
+ "description": "Потребителско име за MQTT, което да се използва за сървъри по подразбиране/персонализирани сървъри"
+ },
+ "password": {
+ "label": "Парола за MQTT",
+ "description": "Парола за MQTT, която да се използва за сървъри по подразбиране/персонализирани сървъри"
+ },
+ "encryptionEnabled": {
+ "label": "Криптирането е активирано",
+ "description": "Enable or disable MQTT encryption. Note: All messages are sent to the MQTT broker unencrypted if this option is not enabled, even when your uplink channels have encryption keys set. This includes position data."
+ },
+ "jsonEnabled": {
+ "label": "JSON е активиран",
+ "description": "Whether to send/consume JSON packets on MQTT"
+ },
+ "tlsEnabled": {
+ "label": "TLS е активиран",
+ "description": "Активиране или дезактивиране на TLS"
+ },
+ "root": {
+ "label": "Root topic",
+ "description": "MQTT root topic to use for default/custom servers"
+ },
+ "proxyToClientEnabled": {
+ "label": "MQTT Client Proxy Enabled",
+ "description": "Utilizes the network connection to proxy MQTT messages to the client."
+ },
+ "mapReportingEnabled": {
+ "label": "Map Reporting Enabled",
+ "description": "Your node will periodically send an unencrypted map report packet to the configured MQTT server, this includes id, short and long name, approximate location, hardware model, role, firmware version, LoRa region, modem preset and primary channel name."
+ },
+ "mapReportSettings": {
+ "publishIntervalSecs": {
+ "label": "Map Report Publish Interval (s)",
+ "description": "Interval in seconds to publish map reports"
+ },
+ "positionPrecision": {
+ "label": "Приблизително местоположение",
+ "description": "Position shared will be accurate within this distance",
+ "options": {
+ "metric_km23": "В рамките на 23 км",
+ "metric_km12": "В рамките на 12 км",
+ "metric_km5_8": "В рамките на 5.8 км",
+ "metric_km2_9": "В рамките на 2.9 км",
+ "metric_km1_5": "В рамките на 1.5 км",
+ "metric_m700": "В рамките на 700 м",
+ "metric_m350": "В рамките на 350 м",
+ "metric_m200": "В рамките на 200 м",
+ "metric_m90": "В рамките на 90 м",
+ "metric_m50": "В рамките на 50 м",
+ "imperial_mi15": "В рамките на 15 мили",
+ "imperial_mi7_3": "В рамките на 7.3 мили",
+ "imperial_mi3_6": "В рамките на 3.6 мили",
+ "imperial_mi1_8": "В рамките на 1.8 мили",
+ "imperial_mi0_9": "В рамките на 0.9 мили",
+ "imperial_mi0_5": "В рамките на 0.5 мили",
+ "imperial_mi0_2": "В рамките на 0.2 мили",
+ "imperial_ft600": "В рамките на 600 фута",
+ "imperial_ft300": "В рамките на 300 фута",
+ "imperial_ft150": "В рамките на 150 фута"
+ }
+ }
+ }
+ },
+ "neighborInfo": {
+ "title": "Neighbor Info Settings",
+ "description": "Settings for the Neighbor Info module",
+ "enabled": {
+ "label": "Активиран",
+ "description": "Enable or disable Neighbor Info Module"
+ },
+ "updateInterval": {
+ "label": "Интервал на актуализиране",
+ "description": "Interval in seconds of how often we should try to send our Neighbor Info to the mesh"
+ }
+ },
+ "paxcounter": {
+ "title": "Paxcounter Settings",
+ "description": "Настройки за модула Paxcounter",
+ "enabled": {
+ "label": "Модулът е активиран",
+ "description": "Активиране на Paxcounter"
+ },
+ "paxcounterUpdateInterval": {
+ "label": "Интервал на актуализиране (секунди)",
+ "description": "How long to wait between sending paxcounter packets"
+ },
+ "wifiThreshold": {
+ "label": "WiFi RSSI Threshold",
+ "description": "At what WiFi RSSI level should the counter increase. Defaults to -80."
+ },
+ "bleThreshold": {
+ "label": "BLE RSSI Threshold",
+ "description": "At what BLE RSSI level should the counter increase. Defaults to -80."
+ }
+ },
+ "rangeTest": {
+ "title": "Настройки за тест на обхвата",
+ "description": "Настройки на модула за тестване на обхвата",
+ "enabled": {
+ "label": "Модулът е активиран",
+ "description": "Enable Range Test"
+ },
+ "sender": {
+ "label": "Интервал на съобщенията",
+ "description": "Колко време да се чака между изпращането на тестови пакети"
+ },
+ "save": {
+ "label": "Запазване на CSV в хранилището",
+ "description": "Само ESP32"
+ }
+ },
+ "serial": {
+ "title": "Серийни настройки",
+ "description": "Настройки на серийния модул",
+ "enabled": {
+ "label": "Модулът е активиран",
+ "description": "Активиране на сериен изход"
+ },
+ "echo": {
+ "label": "Echo",
+ "description": "Any packets you send will be echoed back to your device"
+ },
+ "rxd": {
+ "label": "Receive Pin",
+ "description": "Set the GPIO pin to the RXD pin you have set up."
+ },
+ "txd": {
+ "label": "Transmit Pin",
+ "description": "Set the GPIO pin to the TXD pin you have set up."
+ },
+ "baud": {
+ "label": "Baud Rate",
+ "description": "The serial baud rate"
+ },
+ "timeout": {
+ "label": "Timeout",
+ "description": "Seconds to wait before we consider your packet as 'done'"
+ },
+ "mode": {
+ "label": "Режим",
+ "description": "Избор на режим"
+ },
+ "overrideConsoleSerialPort": {
+ "label": "Override Console Serial Port",
+ "description": "If you have a serial port connected to the console, this will override it."
+ }
+ },
+ "storeForward": {
+ "title": "Store & Forward Settings",
+ "description": "Settings for the Store & Forward module",
+ "enabled": {
+ "label": "Модулът е активиран",
+ "description": "Enable Store & Forward"
+ },
+ "heartbeat": {
+ "label": "Heartbeat Enabled",
+ "description": "Enable Store & Forward heartbeat"
+ },
+ "records": {
+ "label": "Брой записи",
+ "description": "Number of records to store"
+ },
+ "historyReturnMax": {
+ "label": "History return max",
+ "description": "Max number of records to return"
+ },
+ "historyReturnWindow": {
+ "label": "History return window",
+ "description": "Return records from this time window (minutes)"
+ }
+ },
+ "telemetry": {
+ "title": "Настройки на телеметрията",
+ "description": "Настройки за модула за телеметрия",
+ "deviceUpdateInterval": {
+ "label": "Метрики на устройството",
+ "description": "Интервал на актуализиране на показателите на устройството (секунди)"
+ },
+ "environmentUpdateInterval": {
+ "label": "Интервал на актуализиране на показателите на околната среда (секунди)",
+ "description": ""
+ },
+ "environmentMeasurementEnabled": {
+ "label": "Модулът е активиран",
+ "description": "Enable the Environment Telemetry"
+ },
+ "environmentScreenEnabled": {
+ "label": "Показва се на екрана",
+ "description": "Show the Telemetry Module on the OLED"
+ },
+ "environmentDisplayFahrenheit": {
+ "label": "Показване на Фаренхайт",
+ "description": "Показване на температурата във Фаренхайт"
+ },
+ "airQualityEnabled": {
+ "label": "Качество на въздуха е активирано",
+ "description": "Активиране на телеметрията за качеството на въздуха"
+ },
+ "airQualityInterval": {
+ "label": "Air Quality Update Interval",
+ "description": "How often to send Air Quality data over the mesh"
+ },
+ "powerMeasurementEnabled": {
+ "label": "Power Measurement Enabled",
+ "description": "Enable the Power Measurement Telemetry"
+ },
+ "powerUpdateInterval": {
+ "label": "Power Update Interval",
+ "description": "How often to send Power data over the mesh"
+ },
+ "powerScreenEnabled": {
+ "label": "Power Screen Enabled",
+ "description": "Enable the Power Telemetry Screen"
+ }
+ }
}
diff --git a/packages/web/public/i18n/locales/bg-BG/nodes.json b/packages/web/public/i18n/locales/bg-BG/nodes.json
index e3a88804..2fd3ed41 100644
--- a/packages/web/public/i18n/locales/bg-BG/nodes.json
+++ b/packages/web/public/i18n/locales/bg-BG/nodes.json
@@ -1,63 +1,59 @@
{
- "nodeDetail": {
- "publicKeyEnabled": {
- "label": "Публичният ключ е активиран"
- },
- "noPublicKey": {
- "label": "Няма публичен ключ"
- },
- "directMessage": {
- "label": "Директно съобщение {{shortName}}"
- },
- "favorite": {
- "label": "Любим",
- "tooltip": "Добавяне или премахване на този възел от любимите ви"
- },
- "notFavorite": {
- "label": "Не е любим"
- },
- "error": {
- "label": "Грешка",
- "text": "Възникна грешка при извличането на подробности за възела. Моля, опитайте отново по-късно."
- },
- "status": {
- "heard": "Heard",
- "mqtt": "MQTT"
- },
- "elevation": {
- "label": "Височина"
- },
- "channelUtil": {
- "label": "Използване на канала"
- },
- "airtimeUtil": {
- "label": "Използване на ефирно време"
- }
- },
- "nodesTable": {
- "headings": {
- "longName": "Дълго име",
- "connection": "Connection",
- "lastHeard": "Последно чут",
- "encryption": "Криптиране",
- "model": "Модел",
- "macAddress": "MAC адрес"
- },
- "connectionStatus": {
- "direct": "Директно",
- "away": "away",
- "unknown": "-",
- "viaMqtt": ", чрез MQTT"
- },
- "lastHeardStatus": {
- "never": "Никога"
- }
- },
- "actions": {
- "added": "Добавен",
- "removed": "Премахнат",
- "ignoreNode": "Игнориране на възела",
- "unignoreNode": "Премахване на игнорирането на възела",
- "requestPosition": "Request Position"
- }
+ "nodeDetail": {
+ "publicKeyEnabled": {
+ "label": "Публичният ключ е активиран"
+ },
+ "noPublicKey": {
+ "label": "Няма публичен ключ"
+ },
+ "directMessage": {
+ "label": "Директно съобщение {{shortName}}"
+ },
+ "favorite": {
+ "label": "Любим",
+ "tooltip": "Добавяне или премахване на този възел от любимите ви"
+ },
+ "notFavorite": {
+ "label": "Не е любим"
+ },
+ "error": {
+ "label": "Грешка",
+ "text": "Възникна грешка при извличането на подробности за възела. Моля, опитайте отново по-късно."
+ },
+ "status": {
+ "heard": "Heard",
+ "mqtt": "MQTT"
+ },
+ "elevation": {
+ "label": "Височина"
+ },
+ "channelUtil": {
+ "label": "Използване на канала"
+ },
+ "airtimeUtil": {
+ "label": "Използване на ефирно време"
+ }
+ },
+ "nodesTable": {
+ "headings": {
+ "longName": "Дълго име",
+ "connection": "Connection",
+ "lastHeard": "Последно чут",
+ "encryption": "Криптиране",
+ "model": "Модел",
+ "macAddress": "MAC адрес"
+ },
+ "connectionStatus": {
+ "direct": "Директно",
+ "away": "away",
+ "viaMqtt": ", чрез MQTT"
+ }
+ },
+ "actions": {
+ "added": "Добавен",
+ "removed": "Премахнат",
+ "ignoreNode": "Игнориране на възела",
+ "unignoreNode": "Премахване на игнорирането на възела",
+ "requestPosition": "Request Position"
+ }
}
diff --git a/packages/web/public/i18n/locales/bg-BG/ui.json b/packages/web/public/i18n/locales/bg-BG/ui.json
index 3829b344..abb09c41 100644
--- a/packages/web/public/i18n/locales/bg-BG/ui.json
+++ b/packages/web/public/i18n/locales/bg-BG/ui.json
@@ -1,228 +1,229 @@
{
- "navigation": {
- "title": "Навигация",
- "messages": "Съобщения",
- "map": "Карта",
- "config": "Конфигурация",
- "radioConfig": "Конфигурация на радиото",
- "moduleConfig": "Конфигурация на модула",
- "channels": "Канали",
- "nodes": "Възли"
- },
- "app": {
- "title": "Meshtastic",
- "logo": "Лого на Meshtastic"
- },
- "sidebar": {
- "collapseToggle": {
- "button": {
- "open": "Отваряне на страничната лента",
- "close": "Затваряне на страничната лента"
- }
- },
- "deviceInfo": {
- "volts": "{{voltage}} волта",
- "firmware": {
- "title": "Фърмуер",
- "version": "v{{version}}",
- "buildDate": "Дата на компилация: {{date}}"
- },
- "deviceName": {
- "title": "Име на устройството",
- "changeName": "Промяна на името на устройството",
- "placeholder": "Въвеждане на име на устройството"
- },
- "editDeviceName": "Редактиране на името на устройство"
- }
- },
- "batteryStatus": {
- "charging": "{{level}}% зареждане",
- "pluggedIn": "Включен в ел. мрежа",
- "title": "Батерия"
- },
- "search": {
- "nodes": "Търсене на възли...",
- "channels": "Търсене на канали...",
- "commandPalette": "Търсене на команди..."
- },
- "toast": {
- "positionRequestSent": {
- "title": "Заявката за позиция е изпратена."
- },
- "requestingPosition": {
- "title": "Запитване за позиция, моля изчакайте..."
- },
- "sendingTraceroute": {
- "title": "Sending Traceroute, please wait..."
- },
- "tracerouteSent": {
- "title": "Traceroute sent."
- },
- "savedChannel": {
- "title": "Запазен канал: {{channelName}}"
- },
- "messages": {
- "pkiEncryption": {
- "title": "Чатът използва PKI криптиране."
- },
- "pskEncryption": {
- "title": "Чатът използва PSK криптиране."
- }
- },
- "configSaveError": {
- "title": "Грешка при запазване на конфигурацията",
- "description": "Възникна грешка при запазване на конфигурацията."
- },
- "validationError": {
- "title": "Съществуват грешки в конфигурацията",
- "description": "Моля, коригирайте грешките в конфигурацията, преди да я запазите."
- },
- "saveSuccess": {
- "title": "Запазване на конфигурацията",
- "description": "Промяната в конфигурацията {{case}} е запазена."
- },
- "favoriteNode": {
- "title": "{{action}} {{nodeName}} {{direction}} любими.",
- "action": {
- "added": "Добавен",
- "removed": "Премахнат",
- "to": "в",
- "from": "от"
- }
- },
- "ignoreNode": {
- "title": "{{action}} {{nodeName}} {{direction}} списък с игнорирани",
- "action": {
- "added": "Добавен",
- "removed": "Премахнат",
- "to": "в",
- "from": "от"
- }
- }
- },
- "notifications": {
- "copied": {
- "label": "Копирано!"
- },
- "copyToClipboard": {
- "label": "Копиране в клипборда"
- },
- "hidePassword": {
- "label": "Скриване на паролата"
- },
- "showPassword": {
- "label": "Показване на паролата"
- },
- "deliveryStatus": {
- "delivered": "Доставено",
- "failed": "Неуспешна доставка",
- "waiting": "Изчакване",
- "unknown": "Неизвестно"
- }
- },
- "general": {
- "label": "General"
- },
- "hardware": {
- "label": "Хардуер"
- },
- "metrics": {
- "label": "Метрики"
- },
- "role": {
- "label": "Роля"
- },
- "filter": {
- "label": "Филтър"
- },
- "advanced": {
- "label": "Разширени"
- },
- "clearInput": {
- "label": "Clear input"
- },
- "resetFilters": {
- "label": "Нулиране на филтрите"
- },
- "nodeName": {
- "label": "Име/номер на възел",
- "placeholder": "Meshtastic 1234"
- },
- "airtimeUtilization": {
- "label": "Използване на ефира (%)"
- },
- "batteryLevel": {
- "label": "Ниво на батерията (%)",
- "labelText": "Ниво на батерията (%): {{value}}"
- },
- "batteryVoltage": {
- "label": "Напрежение на батерията (V)",
- "title": "Напрежение"
- },
- "channelUtilization": {
- "label": "Използване на канала (%)"
- },
- "hops": {
- "direct": "Директно",
- "label": "Брой хопове",
- "text": "Брой хопове: {{value}}"
- },
- "lastHeard": {
- "label": "Последно чут",
- "labelText": "Последно чут: {{value}}",
- "nowLabel": "Сега"
- },
- "snr": {
- "label": "SNR (db)"
- },
- "favorites": {
- "label": "Любими"
- },
- "hide": {
- "label": "Скриване"
- },
- "showOnly": {
- "label": "Показване само"
- },
- "viaMqtt": {
- "label": "Свързан чрез MQTT"
- },
- "hopsUnknown": {
- "label": "Неизвестен брой хопове"
- },
- "showUnheard": {
- "label": "Никога не е чуван"
- },
- "language": {
- "label": "Език",
- "changeLanguage": "Промяна на езика"
- },
- "theme": {
- "dark": "Тъмна",
- "light": "Светла",
- "system": "Автоматично",
- "changeTheme": "Промяна на цветовата схема"
- },
- "errorPage": {
- "title": "Това е малко смущаващо...",
- "description1": "Наистина съжаляваме, но възникна грешка в web клиента, която доведе до срив.
Това не би трябвало да се случва и работим усилено, за да го поправим.",
- "description2": "Най-добрият начин да предотвратите това да се случи отново с вас или с някой друг е да ни съобщите за проблема.",
- "reportInstructions": "Моля, включете следната информация в доклада си:",
- "reportSteps": {
- "step1": "Какво правехте, когато възникна грешката",
- "step2": "Какво очаквахте да се случи",
- "step3": "Какво всъщност се случи",
- "step4": "Всяка друга подходяща информация"
- },
- "reportLink": "Можете да съобщите за проблема в нашия <0>GitHub0>",
- "dashboardLink": "Връщане към <0>таблото0>",
- "detailsSummary": "Подробности за грешката",
- "errorMessageLabel": "Съобщение за грешка:",
- "stackTraceLabel": "Stack trace:",
- "fallbackError": "{{error}}"
- },
- "footer": {
- "text": "Задвижвано от <0>▲ Vercel0> | Meshtastic® е регистрирана търговска марка на Meshtastic LLC. | <1>Правна информация1>",
- "commitSha": "Commit SHA: {{sha}}"
- }
+ "navigation": {
+ "title": "Навигация",
+ "messages": "Съобщения",
+ "map": "Карта",
+ "settings": "Настройки",
+ "channels": "Канали",
+ "radioConfig": "Конфигурация на радиото",
+ "deviceConfig": "Конфигуриране на устройството",
+ "moduleConfig": "Конфигурация на модула",
+ "nodes": "Възли"
+ },
+ "app": {
+ "title": "Meshtastic",
+ "logo": "Лого на Meshtastic"
+ },
+ "sidebar": {
+ "collapseToggle": {
+ "button": {
+ "open": "Отваряне на страничната лента",
+ "close": "Затваряне на страничната лента"
+ }
+ },
+ "deviceInfo": {
+ "volts": "{{voltage}} волта",
+ "firmware": {
+ "title": "Фърмуер",
+ "version": "v{{version}}",
+ "buildDate": "Дата на компилация: {{date}}"
+ }
+ }
+ },
+ "batteryStatus": {
+ "charging": "{{level}}% зареждане",
+ "pluggedIn": "Включен в ел. мрежа",
+ "title": "Батерия"
+ },
+ "search": {
+ "nodes": "Търсене на възли...",
+ "channels": "Търсене на канали...",
+ "commandPalette": "Търсене на команди..."
+ },
+ "toast": {
+ "positionRequestSent": {
+ "title": "Заявката за позиция е изпратена."
+ },
+ "requestingPosition": {
+ "title": "Запитване за позиция, моля изчакайте..."
+ },
+ "sendingTraceroute": {
+ "title": "Sending Traceroute, please wait..."
+ },
+ "tracerouteSent": {
+ "title": "Traceroute sent."
+ },
+ "savedChannel": {
+ "title": "Запазен канал: {{channelName}}"
+ },
+ "messages": {
+ "pkiEncryption": {
+ "title": "Чатът използва PKI криптиране."
+ },
+ "pskEncryption": {
+ "title": "Чатът използва PSK криптиране."
+ }
+ },
+ "configSaveError": {
+ "title": "Грешка при запазване на конфигурацията",
+ "description": "Възникна грешка при запазване на конфигурацията."
+ },
+ "validationError": {
+ "title": "Съществуват грешки в конфигурацията",
+ "description": "Моля, коригирайте грешките в конфигурацията, преди да я запазите."
+ },
+ "saveSuccess": {
+ "title": "Запазване на конфигурацията",
+ "description": "Промяната в конфигурацията {{case}} е запазена."
+ },
+ "saveAllSuccess": {
+ "title": "Saved",
+ "description": "All configuration changes have been saved."
+ },
+ "favoriteNode": {
+ "title": "{{action}} {{nodeName}} {{direction}} любими.",
+ "action": {
+ "added": "Добавен",
+ "removed": "Премахнат",
+ "to": "в",
+ "from": "от"
+ }
+ },
+ "ignoreNode": {
+ "title": "{{action}} {{nodeName}} {{direction}} списък с игнорирани",
+ "action": {
+ "added": "Добавен",
+ "removed": "Премахнат",
+ "to": "в",
+ "from": "от"
+ }
+ }
+ },
+ "notifications": {
+ "copied": {
+ "label": "Копирано!"
+ },
+ "copyToClipboard": {
+ "label": "Копиране в клипборда"
+ },
+ "hidePassword": {
+ "label": "Скриване на паролата"
+ },
+ "showPassword": {
+ "label": "Показване на паролата"
+ },
+ "deliveryStatus": {
+ "delivered": "Доставено",
+ "failed": "Неуспешна доставка",
+ "waiting": "Изчакване",
+ "unknown": "Неизвестно"
+ }
+ },
+ "general": {
+ "label": "General"
+ },
+ "hardware": {
+ "label": "Хардуер"
+ },
+ "metrics": {
+ "label": "Метрики"
+ },
+ "role": {
+ "label": "Роля"
+ },
+ "filter": {
+ "label": "Филтър"
+ },
+ "advanced": {
+ "label": "Разширени"
+ },
+ "clearInput": {
+ "label": "Clear input"
+ },
+ "resetFilters": {
+ "label": "Нулиране на филтрите"
+ },
+ "nodeName": {
+ "label": "Име/номер на възел",
+ "placeholder": "Meshtastic 1234"
+ },
+ "airtimeUtilization": {
+ "label": "Използване на ефира (%)",
+ "short": "Airtime Util. (%)"
+ },
+ "batteryLevel": {
+ "label": "Ниво на батерията (%)",
+ "labelText": "Ниво на батерията (%): {{value}}"
+ },
+ "batteryVoltage": {
+ "label": "Напрежение на батерията (V)",
+ "title": "Напрежение"
+ },
+ "channelUtilization": {
+ "label": "Използване на канала (%)",
+ "short": "Channel Util. (%)"
+ },
+ "hops": {
+ "direct": "Директно",
+ "label": "Брой хопове",
+ "text": "Брой хопове: {{value}}"
+ },
+ "lastHeard": {
+ "label": "Последно чут",
+ "labelText": "Последно чут: {{value}}",
+ "nowLabel": "Сега"
+ },
+ "snr": {
+ "label": "SNR (db)"
+ },
+ "favorites": {
+ "label": "Любими"
+ },
+ "hide": {
+ "label": "Скриване"
+ },
+ "showOnly": {
+ "label": "Показване само"
+ },
+ "viaMqtt": {
+ "label": "Свързан чрез MQTT"
+ },
+ "hopsUnknown": {
+ "label": "Неизвестен брой хопове"
+ },
+ "showUnheard": {
+ "label": "Никога не е чуван"
+ },
+ "language": {
+ "label": "Език",
+ "changeLanguage": "Промяна на езика"
+ },
+ "theme": {
+ "dark": "Тъмна",
+ "light": "Светла",
+ "system": "Автоматично",
+ "changeTheme": "Промяна на цветовата схема"
+ },
+ "errorPage": {
+ "title": "Това е малко смущаващо...",
+ "description1": "Наистина съжаляваме, но възникна грешка в web клиента, която доведе до срив.
Това не би трябвало да се случва и работим усилено, за да го поправим.",
+ "description2": "Най-добрият начин да предотвратите това да се случи отново с вас или с някой друг е да ни съобщите за проблема.",
+ "reportInstructions": "Моля, включете следната информация в доклада си:",
+ "reportSteps": {
+ "step1": "Какво правехте, когато възникна грешката",
+ "step2": "Какво очаквахте да се случи",
+ "step3": "Какво всъщност се случи",
+ "step4": "Всяка друга подходяща информация"
+ },
+ "reportLink": "Можете да съобщите за проблема в нашия <0>GitHub0>",
+ "dashboardLink": "Връщане към <0>таблото0>",
+ "detailsSummary": "Подробности за грешката",
+ "errorMessageLabel": "Съобщение за грешка:",
+ "stackTraceLabel": "Stack trace:",
+ "fallbackError": "{{error}}"
+ },
+ "footer": {
+ "text": "Задвижвано от <0>▲ Vercel0> | Meshtastic® е регистрирана търговска марка на Meshtastic LLC. | <1>Правна информация1>",
+ "commitSha": "Commit SHA: {{sha}}"
+ }
}
diff --git a/packages/web/public/i18n/locales/cs-CZ/channels.json b/packages/web/public/i18n/locales/cs-CZ/channels.json
index 6d24d811..adc897cf 100644
--- a/packages/web/public/i18n/locales/cs-CZ/channels.json
+++ b/packages/web/public/i18n/locales/cs-CZ/channels.json
@@ -1,69 +1,71 @@
{
- "page": {
- "sectionLabel": "Kanály",
- "channelName": "Kanál: {{channelName}}",
- "broadcastLabel": "Primární",
- "channelIndex": "K {{index}}"
- },
- "validation": {
- "pskInvalid": "Prosím zadejte platný {{bits}} bit PSK."
- },
- "settings": {
- "label": "Nastavení kanálu",
- "description": "Krypto, MQTT a další nastavení"
- },
- "role": {
- "label": "Role",
- "description": "Telemetrie zařízení je posílána přes PRIMÁRNÍ. Je povolena pouze jedna PRIMÁRNÍ",
- "options": {
- "primary": "PRIMÁRNÍ",
- "disabled": "VYPNUTO",
- "secondary": "SEKUNDÁRNÍ"
- }
- },
- "psk": {
- "label": "Sdílený klíč",
- "description": "Podporované délky PSK: 256-bit, 128-bit, 8-bit, prázdné (0-bit)",
- "generate": "Generovat"
- },
- "name": {
- "label": "Jméno",
- "description": "Jedinečný název kanálu <12 bytů, ponechte prázdné pro výchozí"
- },
- "uplinkEnabled": {
- "label": "Odesílání povoleno",
- "description": "Odesílat zprávy z místní sítě do MQTT"
- },
- "downlinkEnabled": {
- "label": "Stahování povoleno",
- "description": "Odesílat zprávy z MQTT do místní sítě"
- },
- "positionPrecision": {
- "label": "Poloha",
- "description": "Přesnost umístění, které chcete sdílet s kanálem. Může být vypnuto.",
- "options": {
- "none": "Nesdílet polohu",
- "precise": "Přesná poloha",
- "metric_km23": "Okruh 23 kilometrů",
- "metric_km12": "Okruh 12 kilometrů",
- "metric_km5_8": "Okruh 5,8 kilometrů",
- "metric_km2_9": "Okruh 2,9 kilometrů",
- "metric_km1_5": "Okruh 1,5 kilometru",
- "metric_m700": "Okruh 700 metrů",
- "metric_m350": "Okruh 350 metrů",
- "metric_m200": "Okruh 200 metrů",
- "metric_m90": "Okruh 90 metrů",
- "metric_m50": "Okruh 50 metrů",
- "imperial_mi15": "Okruh 15 mil",
- "imperial_mi7_3": "Okruh 7,3 mil",
- "imperial_mi3_6": "Okruh 3,6 mil",
- "imperial_mi1_8": "Okruh 1,8 mil",
- "imperial_mi0_9": "Okruh 0,9 míle",
- "imperial_mi0_5": "Okruh 0,5 míle",
- "imperial_mi0_2": "Okruh 0,2 míle",
- "imperial_ft600": "Okruh 600 stop",
- "imperial_ft300": "Okruh 300 stop",
- "imperial_ft150": "Okruh 150 stop"
- }
- }
+ "page": {
+ "sectionLabel": "Kanály",
+ "channelName": "Kanál: {{channelName}}",
+ "broadcastLabel": "Primární",
+ "channelIndex": "K {{index}}",
+ "import": "Import",
+ "export": "Export"
+ },
+ "validation": {
+ "pskInvalid": "Prosím zadejte platný {{bits}} bit PSK."
+ },
+ "settings": {
+ "label": "Nastavení kanálu",
+ "description": "Krypto, MQTT a další nastavení"
+ },
+ "role": {
+ "label": "Role",
+ "description": "Telemetrie zařízení je posílána přes PRIMÁRNÍ. Je povolena pouze jedna PRIMÁRNÍ",
+ "options": {
+ "primary": "PRIMÁRNÍ",
+ "disabled": "VYPNUTO",
+ "secondary": "SEKUNDÁRNÍ"
+ }
+ },
+ "psk": {
+ "label": "Sdílený klíč",
+ "description": "Podporované délky PSK: 256-bit, 128-bit, 8-bit, prázdné (0-bit)",
+ "generate": "Generovat"
+ },
+ "name": {
+ "label": "Jméno",
+ "description": "Jedinečný název kanálu <12 bytů, ponechte prázdné pro výchozí"
+ },
+ "uplinkEnabled": {
+ "label": "Odesílání povoleno",
+ "description": "Odesílat zprávy z místní sítě do MQTT"
+ },
+ "downlinkEnabled": {
+ "label": "Stahování povoleno",
+ "description": "Odesílat zprávy z MQTT do místní sítě"
+ },
+ "positionPrecision": {
+ "label": "Poloha",
+ "description": "Přesnost umístění, které chcete sdílet s kanálem. Může být vypnuto.",
+ "options": {
+ "none": "Nesdílet polohu",
+ "precise": "Přesná poloha",
+ "metric_km23": "Okruh 23 kilometrů",
+ "metric_km12": "Okruh 12 kilometrů",
+ "metric_km5_8": "Okruh 5,8 kilometrů",
+ "metric_km2_9": "Okruh 2,9 kilometrů",
+ "metric_km1_5": "Okruh 1,5 kilometru",
+ "metric_m700": "Okruh 700 metrů",
+ "metric_m350": "Okruh 350 metrů",
+ "metric_m200": "Okruh 200 metrů",
+ "metric_m90": "Okruh 90 metrů",
+ "metric_m50": "Okruh 50 metrů",
+ "imperial_mi15": "Okruh 15 mil",
+ "imperial_mi7_3": "Okruh 7,3 mil",
+ "imperial_mi3_6": "Okruh 3,6 mil",
+ "imperial_mi1_8": "Okruh 1,8 mil",
+ "imperial_mi0_9": "Okruh 0,9 míle",
+ "imperial_mi0_5": "Okruh 0,5 míle",
+ "imperial_mi0_2": "Okruh 0,2 míle",
+ "imperial_ft600": "Okruh 600 stop",
+ "imperial_ft300": "Okruh 300 stop",
+ "imperial_ft150": "Okruh 150 stop"
+ }
+ }
}
diff --git a/packages/web/public/i18n/locales/cs-CZ/commandPalette.json b/packages/web/public/i18n/locales/cs-CZ/commandPalette.json
index 8b8c0101..91fcf66b 100644
--- a/packages/web/public/i18n/locales/cs-CZ/commandPalette.json
+++ b/packages/web/public/i18n/locales/cs-CZ/commandPalette.json
@@ -15,7 +15,6 @@
"messages": "Zprávy",
"map": "Mapa",
"config": "Config",
- "channels": "Kanály",
"nodes": "Uzly"
}
},
@@ -45,7 +44,8 @@
"label": "Debug",
"command": {
"reconfigure": "Reconfigure",
- "clearAllStoredMessages": "Clear All Stored Message"
+ "clearAllStoredMessages": "Clear All Stored Message",
+ "clearAllStores": "Clear All Local Storage"
}
}
}
diff --git a/packages/web/public/i18n/locales/cs-CZ/common.json b/packages/web/public/i18n/locales/cs-CZ/common.json
index 6e1f2d1e..799b4872 100644
--- a/packages/web/public/i18n/locales/cs-CZ/common.json
+++ b/packages/web/public/i18n/locales/cs-CZ/common.json
@@ -1,142 +1,157 @@
{
- "button": {
- "apply": "Použít",
- "backupKey": "Backup Key",
- "cancel": "Zrušit",
- "clearMessages": "Clear Messages",
- "close": "Zavřít",
- "confirm": "Confirm",
- "delete": "Smazat",
- "dismiss": "Dismiss",
- "download": "Download",
- "export": "Export",
- "generate": "Generate",
- "regenerate": "Regenerate",
- "import": "Import",
- "message": "Zpráva",
- "now": "Now",
- "ok": "OK",
- "print": "Print",
- "remove": "Odstranit",
- "requestNewKeys": "Request New Keys",
- "requestPosition": "Request Position",
- "reset": "Reset",
- "save": "Uložit",
- "scanQr": "Naskenovat QR kód",
- "traceRoute": "Trace Route",
- "submit": "Submit"
- },
- "app": {
- "title": "Meshtastic",
- "fullTitle": "Meshtastic Web Client"
- },
- "loading": "Loading...",
- "unit": {
- "cps": "CPS",
- "dbm": "dBm",
- "hertz": "Hz",
- "hop": {
- "one": "Hop",
- "plural": "Hops"
- },
- "hopsAway": {
- "one": "{{count}} hop away",
- "plural": "{{count}} hops away",
- "unknown": "Unknown hops away"
- },
- "megahertz": "MHz",
- "raw": "raw",
- "meter": {
- "one": "Meter",
- "plural": "Meters",
- "suffix": "m"
- },
- "minute": {
- "one": "Minute",
- "plural": "Minutes"
- },
- "hour": {
- "one": "Hour",
- "plural": "Hours"
- },
- "millisecond": {
- "one": "Millisecond",
- "plural": "Milliseconds",
- "suffix": "ms"
- },
- "second": {
- "one": "Second",
- "plural": "Seconds"
- },
- "day": {
- "one": "Day",
- "plural": "Days"
- },
- "month": {
- "one": "Month",
- "plural": "Months"
- },
- "year": {
- "one": "Year",
- "plural": "Years"
- },
- "snr": "SNR",
- "volt": {
- "one": "Volt",
- "plural": "Volts",
- "suffix": "V"
- },
- "record": {
- "one": "Records",
- "plural": "Records"
- }
- },
- "security": {
- "0bit": "Empty",
- "8bit": "8 bit",
- "128bit": "128 bit",
- "256bit": "256 bit"
- },
- "unknown": {
- "longName": "Unknown",
- "shortName": "UNK",
- "notAvailable": "N/A",
- "num": "??"
- },
- "nodeUnknownPrefix": "!",
- "unset": "UNSET",
- "fallbackName": "Meshtastic {{last4}}",
- "node": "Node",
- "formValidation": {
- "unsavedChanges": "Unsaved changes",
- "tooBig": {
- "string": "Too long, expected less than or equal to {{maximum}} characters.",
- "number": "Too big, expected a number smaller than or equal to {{maximum}}.",
- "bytes": "Too big, expected less than or equal to {{params.maximum}} bytes."
- },
- "tooSmall": {
- "string": "Too short, expected more than or equal to {{minimum}} characters.",
- "number": "Too small, expected a number larger than or equal to {{minimum}}."
- },
- "invalidFormat": {
- "ipv4": "Invalid format, expected an IPv4 address.",
- "key": "Invalid format, expected a Base64 encoded pre-shared key (PSK)."
- },
- "invalidType": {
- "number": "Invalid type, expected a number."
- },
- "pskLength": {
- "0bit": "Key is required to be empty.",
- "8bit": "Key is required to be an 8 bit pre-shared key (PSK).",
- "128bit": "Key is required to be a 128 bit pre-shared key (PSK).",
- "256bit": "Key is required to be a 256 bit pre-shared key (PSK)."
- },
- "required": {
- "generic": "This field is required.",
- "managed": "At least one admin key is requred if the node is managed.",
- "key": "Key is required."
- }
- },
- "yes": "Ano",
- "no": "Ne"
+ "button": {
+ "apply": "Použít",
+ "backupKey": "Backup Key",
+ "cancel": "Zrušit",
+ "clearMessages": "Clear Messages",
+ "close": "Zavřít",
+ "confirm": "Confirm",
+ "delete": "Smazat",
+ "dismiss": "Dismiss",
+ "download": "Download",
+ "export": "Export",
+ "generate": "Generate",
+ "regenerate": "Regenerate",
+ "import": "Import",
+ "message": "Zpráva",
+ "now": "Now",
+ "ok": "OK",
+ "print": "Print",
+ "remove": "Odstranit",
+ "requestNewKeys": "Request New Keys",
+ "requestPosition": "Request Position",
+ "reset": "Reset",
+ "save": "Uložit",
+ "scanQr": "Naskenovat QR kód",
+ "traceRoute": "Trace Route",
+ "submit": "Submit"
+ },
+ "app": {
+ "title": "Meshtastic",
+ "fullTitle": "Meshtastic Web Client"
+ },
+ "loading": "Loading...",
+ "unit": {
+ "cps": "CPS",
+ "dbm": "dBm",
+ "hertz": "Hz",
+ "hop": {
+ "one": "Hop",
+ "plural": "Hops"
+ },
+ "hopsAway": {
+ "one": "{{count}} hop away",
+ "plural": "{{count}} hops away",
+ "unknown": "Unknown hops away"
+ },
+ "megahertz": "MHz",
+ "raw": "raw",
+ "meter": {
+ "one": "Meter",
+ "plural": "Meters",
+ "suffix": "m"
+ },
+ "kilometer": {
+ "one": "Kilometer",
+ "plural": "Kilometers",
+ "suffix": "km"
+ },
+ "minute": {
+ "one": "Minute",
+ "plural": "Minutes"
+ },
+ "hour": {
+ "one": "Hour",
+ "plural": "Hours"
+ },
+ "millisecond": {
+ "one": "Millisecond",
+ "plural": "Milliseconds",
+ "suffix": "ms"
+ },
+ "second": {
+ "one": "Second",
+ "plural": "Seconds"
+ },
+ "day": {
+ "one": "Day",
+ "plural": "Days",
+ "today": "Today",
+ "yesterday": "Yesterday"
+ },
+ "month": {
+ "one": "Month",
+ "plural": "Months"
+ },
+ "year": {
+ "one": "Year",
+ "plural": "Years"
+ },
+ "snr": "SNR",
+ "volt": {
+ "one": "Volt",
+ "plural": "Volts",
+ "suffix": "V"
+ },
+ "record": {
+ "one": "Records",
+ "plural": "Records"
+ },
+ "degree": {
+ "one": "Degree",
+ "plural": "Degrees",
+ "suffix": "°"
+ }
+ },
+ "security": {
+ "0bit": "Empty",
+ "8bit": "8 bit",
+ "128bit": "128 bit",
+ "256bit": "256 bit"
+ },
+ "unknown": {
+ "longName": "Unknown",
+ "shortName": "UNK",
+ "notAvailable": "N/A",
+ "num": "??"
+ },
+ "nodeUnknownPrefix": "!",
+ "unset": "UNSET",
+ "fallbackName": "Meshtastic {{last4}}",
+ "node": "Node",
+ "formValidation": {
+ "unsavedChanges": "Unsaved changes",
+ "tooBig": {
+ "string": "Too long, expected less than or equal to {{maximum}} characters.",
+ "number": "Too big, expected a number smaller than or equal to {{maximum}}.",
+ "bytes": "Too big, expected less than or equal to {{params.maximum}} bytes."
+ },
+ "tooSmall": {
+ "string": "Too short, expected more than or equal to {{minimum}} characters.",
+ "number": "Too small, expected a number larger than or equal to {{minimum}}."
+ },
+ "invalidFormat": {
+ "ipv4": "Invalid format, expected an IPv4 address.",
+ "key": "Invalid format, expected a Base64 encoded pre-shared key (PSK)."
+ },
+ "invalidType": {
+ "number": "Invalid type, expected a number."
+ },
+ "pskLength": {
+ "0bit": "Key is required to be empty.",
+ "8bit": "Key is required to be an 8 bit pre-shared key (PSK).",
+ "128bit": "Key is required to be a 128 bit pre-shared key (PSK).",
+ "256bit": "Key is required to be a 256 bit pre-shared key (PSK)."
+ },
+ "required": {
+ "generic": "This field is required.",
+ "managed": "At least one admin key is requred if the node is managed.",
+ "key": "Key is required."
+ },
+ "invalidOverrideFreq": {
+ "number": "Invalid format, expected a value in the range 410-930 MHz or 0 (use default)."
+ }
+ },
+ "yes": "Ano",
+ "no": "Ne"
}
diff --git a/packages/web/public/i18n/locales/cs-CZ/config.json b/packages/web/public/i18n/locales/cs-CZ/config.json
new file mode 100644
index 00000000..33b71008
--- /dev/null
+++ b/packages/web/public/i18n/locales/cs-CZ/config.json
@@ -0,0 +1,458 @@
+{
+ "page": {
+ "title": "Nastavení",
+ "tabUser": "Uživatel",
+ "tabChannels": "Kanály",
+ "tabBluetooth": "Bluetooth",
+ "tabDevice": "Zařízení",
+ "tabDisplay": "Obrazovka",
+ "tabLora": "LoRa",
+ "tabNetwork": "Síť",
+ "tabPosition": "Pozice",
+ "tabPower": "Napájení",
+ "tabSecurity": "Zabezpečení"
+ },
+ "sidebar": {
+ "label": "Configuration"
+ },
+ "device": {
+ "title": "Device Settings",
+ "description": "Settings for the device",
+ "buttonPin": {
+ "description": "Button pin override",
+ "label": "Button Pin"
+ },
+ "buzzerPin": {
+ "description": "Buzzer pin override",
+ "label": "Buzzer Pin"
+ },
+ "disableTripleClick": {
+ "description": "Disable triple click",
+ "label": "Disable Triple Click"
+ },
+ "doubleTapAsButtonPress": {
+ "description": "Treat double tap as button press",
+ "label": "Dvojité klepnutí jako stisk tlačítka"
+ },
+ "ledHeartbeatDisabled": {
+ "description": "Disable default blinking LED",
+ "label": "LED Heartbeat Disabled"
+ },
+ "nodeInfoBroadcastInterval": {
+ "description": "How often to broadcast node info",
+ "label": "Interval vysílání NodeInfo (v sekundách)"
+ },
+ "posixTimezone": {
+ "description": "The POSIX timezone string for the device",
+ "label": "POSIX časové pásmo"
+ },
+ "rebroadcastMode": {
+ "description": "How to handle rebroadcasting",
+ "label": "Režim opětovného vysílání"
+ },
+ "role": {
+ "description": "What role the device performs on the mesh",
+ "label": "Role"
+ }
+ },
+ "bluetooth": {
+ "title": "Nastavení Bluetooth",
+ "description": "Settings for the Bluetooth module",
+ "note": "Note: Some devices (ESP32) cannot use both Bluetooth and WiFi at the same time.",
+ "enabled": {
+ "description": "Enable or disable Bluetooth",
+ "label": "Povoleno"
+ },
+ "pairingMode": {
+ "description": "Pin selection behaviour.",
+ "label": "Režim párování"
+ },
+ "pin": {
+ "description": "Pin to use when pairing",
+ "label": "Pin"
+ }
+ },
+ "display": {
+ "description": "Settings for the device display",
+ "title": "Display Settings",
+ "headingBold": {
+ "description": "Bolden the heading text",
+ "label": "Tučný nadpis"
+ },
+ "carouselDelay": {
+ "description": "How fast to cycle through windows",
+ "label": "Carousel Delay"
+ },
+ "compassNorthTop": {
+ "description": "Fix north to the top of compass",
+ "label": "Compass North Top"
+ },
+ "displayMode": {
+ "description": "Screen layout variant",
+ "label": "Display Mode"
+ },
+ "displayUnits": {
+ "description": "Display metric or imperial units",
+ "label": "Display Units"
+ },
+ "flipScreen": {
+ "description": "Flip display 180 degrees",
+ "label": "Flip Screen"
+ },
+ "gpsDisplayUnits": {
+ "description": "Coordinate display format",
+ "label": "GPS Display Units"
+ },
+ "oledType": {
+ "description": "Type of OLED screen attached to the device",
+ "label": "OLED Type"
+ },
+ "screenTimeout": {
+ "description": "Turn off the display after this long",
+ "label": "Screen Timeout"
+ },
+ "twelveHourClock": {
+ "description": "Use 12-hour clock format",
+ "label": "12-Hour Clock"
+ },
+ "wakeOnTapOrMotion": {
+ "description": "Wake the device on tap or motion",
+ "label": "Wake on Tap or Motion"
+ }
+ },
+ "lora": {
+ "title": "Mesh Settings",
+ "description": "Settings for the LoRa mesh",
+ "bandwidth": {
+ "description": "Channel bandwidth in MHz",
+ "label": "Šířka pásma"
+ },
+ "boostedRxGain": {
+ "description": "Boosted RX gain",
+ "label": "Boosted RX Gain"
+ },
+ "codingRate": {
+ "description": "The denominator of the coding rate",
+ "label": "Coding Rate"
+ },
+ "frequencyOffset": {
+ "description": "Frequency offset to correct for crystal calibration errors",
+ "label": "Frequency Offset"
+ },
+ "frequencySlot": {
+ "description": "LoRa frequency channel number",
+ "label": "Frekvenční slot"
+ },
+ "hopLimit": {
+ "description": "Maximum number of hops",
+ "label": "Hop Limit"
+ },
+ "ignoreMqtt": {
+ "description": "Don't forward MQTT messages over the mesh",
+ "label": "Ignorovat MQTT"
+ },
+ "modemPreset": {
+ "description": "Modem preset to use",
+ "label": "Předvolba modemu"
+ },
+ "okToMqtt": {
+ "description": "When set to true, this configuration indicates that the user approves the packet to be uploaded to MQTT. If set to false, remote nodes are requested not to forward packets to MQTT",
+ "label": "OK do MQTT"
+ },
+ "overrideDutyCycle": {
+ "description": "Přepsat střídu",
+ "label": "Přepsat střídu"
+ },
+ "overrideFrequency": {
+ "description": "Override frequency",
+ "label": "Override Frequency"
+ },
+ "region": {
+ "description": "Sets the region for your node",
+ "label": "Region"
+ },
+ "spreadingFactor": {
+ "description": "Indicates the number of chirps per symbol",
+ "label": "Spreading Factor"
+ },
+ "transmitEnabled": {
+ "description": "Enable/Disable transmit (TX) from the LoRa radio",
+ "label": "Vysílání povoleno"
+ },
+ "transmitPower": {
+ "description": "Max transmit power",
+ "label": "Vysílací výkon"
+ },
+ "usePreset": {
+ "description": "Use one of the predefined modem presets",
+ "label": "Použít předvolbu"
+ },
+ "meshSettings": {
+ "description": "Settings for the LoRa mesh",
+ "label": "Mesh Settings"
+ },
+ "waveformSettings": {
+ "description": "Settings for the LoRa waveform",
+ "label": "Waveform Settings"
+ },
+ "radioSettings": {
+ "label": "Radio Settings",
+ "description": "Settings for the LoRa radio"
+ }
+ },
+ "network": {
+ "title": "WiFi Config",
+ "description": "WiFi radio configuration",
+ "note": "Note: Some devices (ESP32) cannot use both Bluetooth and WiFi at the same time.",
+ "addressMode": {
+ "description": "Address assignment selection",
+ "label": "Address Mode"
+ },
+ "dns": {
+ "description": "DNS Server",
+ "label": "DNS"
+ },
+ "ethernetEnabled": {
+ "description": "Enable or disable the Ethernet port",
+ "label": "Povoleno"
+ },
+ "gateway": {
+ "description": "Default Gateway",
+ "label": "Gateway/Brána"
+ },
+ "ip": {
+ "description": "IP Address",
+ "label": "IP adresa"
+ },
+ "psk": {
+ "description": "Network password",
+ "label": "PSK"
+ },
+ "ssid": {
+ "description": "Network name",
+ "label": "SSID"
+ },
+ "subnet": {
+ "description": "Subnet Mask",
+ "label": "Podsíť"
+ },
+ "wifiEnabled": {
+ "description": "Enable or disable the WiFi radio",
+ "label": "Povoleno"
+ },
+ "meshViaUdp": {
+ "label": "Mesh via UDP"
+ },
+ "ntpServer": {
+ "label": "NTP Server"
+ },
+ "rsyslogServer": {
+ "label": "Rsyslog Server"
+ },
+ "ethernetConfigSettings": {
+ "description": "Ethernet port configuration",
+ "label": "Ethernet Config"
+ },
+ "ipConfigSettings": {
+ "description": "IP configuration",
+ "label": "IP Config"
+ },
+ "ntpConfigSettings": {
+ "description": "NTP configuration",
+ "label": "NTP Config"
+ },
+ "rsyslogConfigSettings": {
+ "description": "Rsyslog configuration",
+ "label": "Rsyslog Config"
+ },
+ "udpConfigSettings": {
+ "description": "UDP over Mesh configuration",
+ "label": "UDP Konfigurace"
+ }
+ },
+ "position": {
+ "title": "Position Settings",
+ "description": "Settings for the position module",
+ "broadcastInterval": {
+ "description": "How often your position is sent out over the mesh",
+ "label": "Interval vysílání"
+ },
+ "enablePin": {
+ "description": "GPS module enable pin override",
+ "label": "Enable Pin"
+ },
+ "fixedPosition": {
+ "description": "Don't report GPS position, but a manually-specified one",
+ "label": "Pevná poloha"
+ },
+ "gpsMode": {
+ "description": "Configure whether device GPS is Enabled, Disabled, or Not Present",
+ "label": "GPS Mode"
+ },
+ "gpsUpdateInterval": {
+ "description": "How often a GPS fix should be acquired",
+ "label": "GPS Update Interval"
+ },
+ "positionFlags": {
+ "description": "Optional fields to include when assembling position messages. The more fields are selected, the larger the message will be leading to longer airtime usage and a higher risk of packet loss.",
+ "label": "Příznaky polohy"
+ },
+ "receivePin": {
+ "description": "GPS module RX pin override",
+ "label": "Receive Pin"
+ },
+ "smartPositionEnabled": {
+ "description": "Only send position when there has been a meaningful change in location",
+ "label": "Enable Smart Position"
+ },
+ "smartPositionMinDistance": {
+ "description": "Minimum distance (in meters) that must be traveled before a position update is sent",
+ "label": "Smart Position Minimum Distance"
+ },
+ "smartPositionMinInterval": {
+ "description": "Minimum interval (in seconds) that must pass before a position update is sent",
+ "label": "Smart Position Minimum Interval"
+ },
+ "transmitPin": {
+ "description": "GPS module TX pin override",
+ "label": "Transmit Pin"
+ },
+ "intervalsSettings": {
+ "description": "How often to send position updates",
+ "label": "Intervals"
+ },
+ "flags": {
+ "placeholder": "Select position flags...",
+ "altitude": "Altitude",
+ "altitudeGeoidalSeparation": "Altitude Geoidal Separation",
+ "altitudeMsl": "Altitude is Mean Sea Level",
+ "dop": "Dilution of precision (DOP) PDOP used by default",
+ "hdopVdop": "If DOP is set, use HDOP / VDOP values instead of PDOP",
+ "numSatellites": "Number of satellites",
+ "sequenceNumber": "Sequence number",
+ "timestamp": "Časová značka",
+ "unset": "Zrušit nastavení",
+ "vehicleHeading": "Vehicle heading",
+ "vehicleSpeed": "Vehicle speed"
+ }
+ },
+ "power": {
+ "adcMultiplierOverride": {
+ "description": "Used for tweaking battery voltage reading",
+ "label": "ADC Multiplier Override ratio"
+ },
+ "ina219Address": {
+ "description": "Address of the INA219 battery monitor",
+ "label": "INA219 Address"
+ },
+ "lightSleepDuration": {
+ "description": "How long the device will be in light sleep for",
+ "label": "Light Sleep Duration"
+ },
+ "minimumWakeTime": {
+ "description": "Minimum amount of time the device will stay awake for after receiving a packet",
+ "label": "Minimum Wake Time"
+ },
+ "noConnectionBluetoothDisabled": {
+ "description": "If the device does not receive a Bluetooth connection, the BLE radio will be disabled after this long",
+ "label": "No Connection Bluetooth Disabled"
+ },
+ "powerSavingEnabled": {
+ "description": "Select if powered from a low-current source (i.e. solar), to minimize power consumption as much as possible.",
+ "label": "Povolit úsporný režim"
+ },
+ "shutdownOnBatteryDelay": {
+ "description": "Automatically shutdown node after this long when on battery, 0 for indefinite",
+ "label": "Shutdown on battery delay"
+ },
+ "superDeepSleepDuration": {
+ "description": "How long the device will be in super deep sleep for",
+ "label": "Super Deep Sleep Duration"
+ },
+ "powerConfigSettings": {
+ "description": "Settings for the power module",
+ "label": "Nastavení napájení"
+ },
+ "sleepSettings": {
+ "description": "Sleep settings for the power module",
+ "label": "Sleep Settings"
+ }
+ },
+ "security": {
+ "description": "Settings for the Security configuration",
+ "title": "Security Settings",
+ "button_backupKey": "Backup Key",
+ "adminChannelEnabled": {
+ "description": "Allow incoming device control over the insecure legacy admin channel",
+ "label": "Allow Legacy Admin"
+ },
+ "enableDebugLogApi": {
+ "description": "Output live debug logging over serial, view and export position-redacted device logs over Bluetooth",
+ "label": "Enable Debug Log API"
+ },
+ "managed": {
+ "description": "If enabled, device configuration options are only able to be changed remotely by a Remote Admin node via admin messages. Do not enable this option unless at least one suitable Remote Admin node has been setup, and the public key is stored in one of the fields above.",
+ "label": "Managed"
+ },
+ "privateKey": {
+ "description": "Used to create a shared key with a remote device",
+ "label": "Soukromý klíč"
+ },
+ "publicKey": {
+ "description": "Sent out to other nodes on the mesh to allow them to compute a shared secret key",
+ "label": "Veřejný klíč"
+ },
+ "primaryAdminKey": {
+ "description": "The primary public key authorized to send admin messages to this node",
+ "label": "Primary Admin Key"
+ },
+ "secondaryAdminKey": {
+ "description": "The secondary public key authorized to send admin messages to this node",
+ "label": "Secondary Admin Key"
+ },
+ "serialOutputEnabled": {
+ "description": "Serial Console over the Stream API",
+ "label": "Serial Output Enabled"
+ },
+ "tertiaryAdminKey": {
+ "description": "The tertiary public key authorized to send admin messages to this node",
+ "label": "Tertiary Admin Key"
+ },
+ "adminSettings": {
+ "description": "Settings for Admin",
+ "label": "Admin Settings"
+ },
+ "loggingSettings": {
+ "description": "Settings for Logging",
+ "label": "Logging Settings"
+ }
+ },
+ "user": {
+ "title": "User Settings",
+ "description": "Configure your device name and identity settings",
+ "longName": {
+ "label": "Dlouhé jméno",
+ "description": "Your full display name (1-40 characters)",
+ "validation": {
+ "min": "Long name must be at least 1 character",
+ "max": "Long name must be at most 40 characters"
+ }
+ },
+ "shortName": {
+ "label": "Krátké jméno",
+ "description": "Your abbreviated name (2-4 characters)",
+ "validation": {
+ "min": "Short name must be at least 2 characters",
+ "max": "Short name must be at most 4 characters"
+ }
+ },
+ "isUnmessageable": {
+ "label": "Nepřijímá zprávy",
+ "description": "Used to identify unmonitored or infrastructure nodes so that messaging is not available to nodes that will never respond."
+ },
+ "isLicensed": {
+ "label": "Licencované amatérské rádio (HAM)",
+ "description": "Enable if you are a licensed amateur radio operator, enabling this option disables encryption and is not compatible with the default Meshtastic network."
+ }
+ }
+}
diff --git a/packages/web/public/i18n/locales/cs-CZ/dashboard.json b/packages/web/public/i18n/locales/cs-CZ/dashboard.json
index 22c36f4d..f114cc28 100644
--- a/packages/web/public/i18n/locales/cs-CZ/dashboard.json
+++ b/packages/web/public/i18n/locales/cs-CZ/dashboard.json
@@ -1,12 +1,12 @@
{
- "dashboard": {
- "title": "Connected Devices",
- "description": "Manage your connected Meshtastic devices.",
- "connectionType_ble": "BLE",
- "connectionType_serial": "Sériový",
- "connectionType_network": "Síť",
- "noDevicesTitle": "No devices connected",
- "noDevicesDescription": "Connect a new device to get started.",
- "button_newConnection": "New Connection"
- }
+ "dashboard": {
+ "title": "Connected Devices",
+ "description": "Manage your connected Meshtastic devices.",
+ "connectionType_ble": "BLE",
+ "connectionType_serial": "Sériový",
+ "connectionType_network": "Síť",
+ "noDevicesTitle": "No devices connected",
+ "noDevicesDescription": "Connect a new device to get started.",
+ "button_newConnection": "New Connection"
+ }
}
diff --git a/packages/web/public/i18n/locales/cs-CZ/dialog.json b/packages/web/public/i18n/locales/cs-CZ/dialog.json
index 6711f3b7..edffa4cc 100644
--- a/packages/web/public/i18n/locales/cs-CZ/dialog.json
+++ b/packages/web/public/i18n/locales/cs-CZ/dialog.json
@@ -1,193 +1,221 @@
{
- "deleteMessages": {
- "description": "This action will clear all message history. This cannot be undone. Are you sure you want to continue?",
- "title": "Clear All Messages"
- },
- "deviceName": {
- "description": "The Device will restart once the config is saved.",
- "longName": "Long Name",
- "shortName": "Short Name",
- "title": "Change Device Name",
- "validation": {
- "longNameMax": "Long name must not be more than 40 characters",
- "shortNameMax": "Short name must not be more than 4 characters",
- "longNameMin": "Long name must have at least 1 character",
- "shortNameMin": "Short name must have at least 1 character"
- }
- },
- "import": {
- "description": "The current LoRa configuration will be overridden.",
- "error": {
- "invalidUrl": "Invalid Meshtastic URL"
- },
- "channelPrefix": "Channel: ",
- "channelSetUrl": "Channel Set/QR Code URL",
- "channels": "Channels:",
- "usePreset": "Use Preset?",
- "title": "Import Channel Set"
- },
- "locationResponse": {
- "title": "Location: {{identifier}}",
- "altitude": "Altitude: ",
- "coordinates": "Coordinates: ",
- "noCoordinates": "No Coordinates"
- },
- "pkiRegenerateDialog": {
- "title": "Regenerate Pre-Shared Key?",
- "description": "Are you sure you want to regenerate the pre-shared key?",
- "regenerate": "Regenerate"
- },
- "newDeviceDialog": {
- "title": "Connect New Device",
- "https": "https",
- "http": "http",
- "tabHttp": "HTTP",
- "tabBluetooth": "Bluetooth",
- "tabSerial": "Sériový",
- "useHttps": "Use HTTPS",
- "connecting": "Connecting...",
- "connect": "Connect",
- "connectionFailedAlert": {
- "title": "Connection Failed",
- "descriptionPrefix": "Could not connect to the device. ",
- "httpsHint": "If using HTTPS, you may need to accept a self-signed certificate first. ",
- "openLinkPrefix": "Please open ",
- "openLinkSuffix": " in a new tab",
- "acceptTlsWarningSuffix": ", accept any TLS warnings if prompted, then try again",
- "learnMoreLink": "Learn more"
- },
- "httpConnection": {
- "label": "IP Address/Hostname",
- "placeholder": "000.000.000.000 / meshtastic.local"
- },
- "serialConnection": {
- "noDevicesPaired": "No devices paired yet.",
- "newDeviceButton": "New device",
- "deviceIdentifier": "# {{index}} - {{vendorId}} - {{productId}}"
- },
- "bluetoothConnection": {
- "noDevicesPaired": "No devices paired yet.",
- "newDeviceButton": "New device",
- "connectionFailed": "Connection failed",
- "deviceDisconnected": "Device disconnected",
- "unknownDevice": "Unknown Device",
- "errorLoadingDevices": "Error loading devices",
- "unknownErrorLoadingDevices": "Unknown error loading devices"
- },
- "validation": {
- "requiresWebBluetooth": "This connection type requires <0>Web Bluetooth0>. Please use a supported browser, like Chrome or Edge.",
- "requiresWebSerial": "This connection type requires <0>Web Serial0>. Please use a supported browser, like Chrome or Edge.",
- "requiresSecureContext": "This application requires a <0>secure context0>. Please connect using HTTPS or localhost.",
- "additionallyRequiresSecureContext": "Additionally, it requires a <0>secure context0>. Please connect using HTTPS or localhost."
- }
- },
- "nodeDetails": {
- "message": "Zpráva",
- "requestPosition": "Request Position",
- "traceRoute": "Trace Route",
- "airTxUtilization": "Air TX utilization",
- "allRawMetrics": "All Raw Metrics:",
- "batteryLevel": "Battery level",
- "channelUtilization": "Channel utilization",
- "details": "Details:",
- "deviceMetrics": "Device Metrics:",
- "hardware": "Hardware: ",
- "lastHeard": "Last Heard: ",
- "nodeHexPrefix": "Node Hex: ",
- "nodeNumber": "Node Number: ",
- "position": "Position:",
- "role": "Role: ",
- "uptime": "Uptime: ",
- "voltage": "Napětí",
- "title": "Node Details for {{identifier}}",
- "ignoreNode": "Ignore node",
- "removeNode": "Remove node",
- "unignoreNode": "Unignore node",
- "security": "Security:",
- "publicKey": "Public Key: ",
- "messageable": "Messageable: ",
- "KeyManuallyVerifiedTrue": "Public Key has been manually verified",
- "KeyManuallyVerifiedFalse": "Public Key is not manually verified"
- },
- "pkiBackup": {
- "loseKeysWarning": "If you lose your keys, you will need to reset your device.",
- "secureBackup": "Its important to backup your public and private keys and store your backup securely!",
- "footer": "=== END OF KEYS ===",
- "header": "=== MESHTASTIC KEYS FOR {{longName}} ({{shortName}}) ===",
- "privateKey": "Private Key:",
- "publicKey": "Public Key:",
- "fileName": "meshtastic_keys_{{longName}}_{{shortName}}.txt",
- "title": "Backup Keys"
- },
- "pkiBackupReminder": {
- "description": "We recommend backing up your key data regularly. Would you like to back up now?",
- "title": "Backup Reminder",
- "remindLaterPrefix": "Remind me in",
- "remindNever": "Never remind me",
- "backupNow": "Back up now"
- },
- "pkiRegenerate": {
- "description": "Are you sure you want to regenerate key pair?",
- "title": "Regenerate Key Pair"
- },
- "qr": {
- "addChannels": "Add Channels",
- "replaceChannels": "Replace Channels",
- "description": "The current LoRa configuration will also be shared.",
- "sharableUrl": "Sharable URL",
- "title": "Generate QR Code"
- },
- "reboot": {
- "title": "Reboot device",
- "description": "Reboot now or schedule a reboot of the connected node. Optionally, you can choose to reboot into OTA (Over-the-Air) mode.",
- "ota": "Reboot into OTA mode",
- "enterDelay": "Enter delay",
- "scheduled": "Reboot has been scheduled",
- "schedule": "Schedule reboot",
- "now": "Reboot now",
- "cancel": "Cancel scheduled reboot"
- },
- "refreshKeys": {
- "description": {
- "acceptNewKeys": "This will remove the node from device and request new keys.",
- "keyMismatchReasonSuffix": ". This is due to the remote node's current public key does not match the previously stored key for this node.",
- "unableToSendDmPrefix": "Your node is unable to send a direct message to node: "
- },
- "acceptNewKeys": "Accept New Keys",
- "title": "Keys Mismatch - {{identifier}}"
- },
- "removeNode": {
- "description": "Are you sure you want to remove this Node?",
- "title": "Remove Node?"
- },
- "shutdown": {
- "title": "Schedule Shutdown",
- "description": "Turn off the connected node after x minutes."
- },
- "traceRoute": {
- "routeToDestination": "Route to destination:",
- "routeBack": "Route back:"
- },
- "tracerouteResponse": {
- "title": "Traceroute: {{identifier}}"
- },
- "unsafeRoles": {
- "confirmUnderstanding": "Yes, I know what I'm doing",
- "conjunction": " and the blog post about ",
- "postamble": " and understand the implications of changing the role.",
- "preamble": "I have read the ",
- "choosingRightDeviceRole": "Choosing The Right Device Role",
- "deviceRoleDocumentation": "Device Role Documentation",
- "title": "Jste si jistý?"
- },
- "managedMode": {
- "confirmUnderstanding": "Yes, I know what I'm doing",
- "title": "Jste si jistý?",
- "description": "Enabling Managed Mode blocks client applications (including the web client) from writing configurations to a radio. Once enabled, radio configurations can only be changed through Remote Admin messages. This setting is not required for remote node administration."
- },
- "clientNotification": {
- "title": "Oznámení klienta",
- "TraceRoute can only be sent once every 30 seconds": "TraceRoute can only be sent once every 30 seconds",
- "Compromised keys were detected and regenerated.": "Compromised keys were detected and regenerated."
- }
+ "deleteMessages": {
+ "description": "This action will clear all message history. This cannot be undone. Are you sure you want to continue?",
+ "title": "Clear All Messages"
+ },
+ "deviceName": {
+ "description": "The Device will restart once the config is saved.",
+ "longName": "Long Name",
+ "shortName": "Short Name",
+ "title": "Change Device Name",
+ "validation": {
+ "longNameMax": "Long name must not be more than 40 characters",
+ "shortNameMax": "Short name must not be more than 4 characters",
+ "longNameMin": "Long name must have at least 1 character",
+ "shortNameMin": "Short name must have at least 1 character"
+ }
+ },
+ "import": {
+ "description": "The current LoRa configuration will be overridden.",
+ "error": {
+ "invalidUrl": "Invalid Meshtastic URL"
+ },
+ "channelPrefix": "Channel: ",
+ "primary": "Primary ",
+ "doNotImport": "No not import",
+ "channelName": "Jméno",
+ "channelSlot": "Slot",
+ "channelSetUrl": "Channel Set/QR Code URL",
+ "useLoraConfig": "Import LoRa Config",
+ "presetDescription": "The current LoRa Config will be replaced.",
+ "title": "Import Channel Set"
+ },
+ "locationResponse": {
+ "title": "Location: {{identifier}}",
+ "altitude": "Altitude: ",
+ "coordinates": "Coordinates: ",
+ "noCoordinates": "No Coordinates"
+ },
+ "pkiRegenerateDialog": {
+ "title": "Regenerate Pre-Shared Key?",
+ "description": "Are you sure you want to regenerate the pre-shared key?",
+ "regenerate": "Regenerate"
+ },
+ "newDeviceDialog": {
+ "title": "Connect New Device",
+ "https": "https",
+ "http": "http",
+ "tabHttp": "HTTP",
+ "tabBluetooth": "Bluetooth",
+ "tabSerial": "Sériový",
+ "useHttps": "Use HTTPS",
+ "connecting": "Connecting...",
+ "connect": "Connect",
+ "connectionFailedAlert": {
+ "title": "Connection Failed",
+ "descriptionPrefix": "Could not connect to the device. ",
+ "httpsHint": "If using HTTPS, you may need to accept a self-signed certificate first. ",
+ "openLinkPrefix": "Please open ",
+ "openLinkSuffix": " in a new tab",
+ "acceptTlsWarningSuffix": ", accept any TLS warnings if prompted, then try again",
+ "learnMoreLink": "Learn more"
+ },
+ "httpConnection": {
+ "label": "IP Address/Hostname",
+ "placeholder": "000.000.000.000 / meshtastic.local"
+ },
+ "serialConnection": {
+ "noDevicesPaired": "No devices paired yet.",
+ "newDeviceButton": "New device",
+ "deviceIdentifier": "# {{index}} - {{vendorId}} - {{productId}}"
+ },
+ "bluetoothConnection": {
+ "noDevicesPaired": "No devices paired yet.",
+ "newDeviceButton": "New device",
+ "connectionFailed": "Connection failed",
+ "deviceDisconnected": "Device disconnected",
+ "unknownDevice": "Unknown Device",
+ "errorLoadingDevices": "Error loading devices",
+ "unknownErrorLoadingDevices": "Unknown error loading devices"
+ },
+ "validation": {
+ "requiresWebBluetooth": "This connection type requires <0>Web Bluetooth0>. Please use a supported browser, like Chrome or Edge.",
+ "requiresWebSerial": "This connection type requires <0>Web Serial0>. Please use a supported browser, like Chrome or Edge.",
+ "requiresSecureContext": "This application requires a <0>secure context0>. Please connect using HTTPS or localhost.",
+ "additionallyRequiresSecureContext": "Additionally, it requires a <0>secure context0>. Please connect using HTTPS or localhost."
+ }
+ },
+ "nodeDetails": {
+ "message": "Zpráva",
+ "requestPosition": "Request Position",
+ "traceRoute": "Trace Route",
+ "airTxUtilization": "Air TX utilization",
+ "allRawMetrics": "All Raw Metrics:",
+ "batteryLevel": "Battery level",
+ "channelUtilization": "Channel utilization",
+ "details": "Details:",
+ "deviceMetrics": "Device Metrics:",
+ "hardware": "Hardware: ",
+ "lastHeard": "Last Heard: ",
+ "nodeHexPrefix": "Node Hex: ",
+ "nodeNumber": "Node Number: ",
+ "position": "Position:",
+ "role": "Role: ",
+ "uptime": "Uptime: ",
+ "voltage": "Napětí",
+ "title": "Node Details for {{identifier}}",
+ "ignoreNode": "Ignore node",
+ "removeNode": "Remove node",
+ "unignoreNode": "Unignore node",
+ "security": "Security:",
+ "publicKey": "Public Key: ",
+ "messageable": "Messageable: ",
+ "KeyManuallyVerifiedTrue": "Public Key has been manually verified",
+ "KeyManuallyVerifiedFalse": "Public Key is not manually verified"
+ },
+ "pkiBackup": {
+ "loseKeysWarning": "If you lose your keys, you will need to reset your device.",
+ "secureBackup": "Its important to backup your public and private keys and store your backup securely!",
+ "footer": "=== END OF KEYS ===",
+ "header": "=== MESHTASTIC KEYS FOR {{longName}} ({{shortName}}) ===",
+ "privateKey": "Private Key:",
+ "publicKey": "Public Key:",
+ "fileName": "meshtastic_keys_{{longName}}_{{shortName}}.txt",
+ "title": "Backup Keys"
+ },
+ "pkiBackupReminder": {
+ "description": "We recommend backing up your key data regularly. Would you like to back up now?",
+ "title": "Backup Reminder",
+ "remindLaterPrefix": "Remind me in",
+ "remindNever": "Never remind me",
+ "backupNow": "Back up now"
+ },
+ "pkiRegenerate": {
+ "description": "Are you sure you want to regenerate key pair?",
+ "title": "Regenerate Key Pair"
+ },
+ "qr": {
+ "addChannels": "Add Channels",
+ "replaceChannels": "Replace Channels",
+ "description": "The current LoRa configuration will also be shared.",
+ "sharableUrl": "Sharable URL",
+ "title": "Generate QR Code"
+ },
+ "reboot": {
+ "title": "Reboot device",
+ "description": "Reboot now or schedule a reboot of the connected node. Optionally, you can choose to reboot into OTA (Over-the-Air) mode.",
+ "ota": "Reboot into OTA mode",
+ "enterDelay": "Enter delay",
+ "scheduled": "Reboot has been scheduled",
+ "schedule": "Schedule reboot",
+ "now": "Reboot now",
+ "cancel": "Cancel scheduled reboot"
+ },
+ "refreshKeys": {
+ "description": {
+ "acceptNewKeys": "This will remove the node from device and request new keys.",
+ "keyMismatchReasonSuffix": ". This is due to the remote node's current public key does not match the previously stored key for this node.",
+ "unableToSendDmPrefix": "Your node is unable to send a direct message to node: "
+ },
+ "acceptNewKeys": "Accept New Keys",
+ "title": "Keys Mismatch - {{identifier}}"
+ },
+ "removeNode": {
+ "description": "Are you sure you want to remove this Node?",
+ "title": "Remove Node?"
+ },
+ "shutdown": {
+ "title": "Schedule Shutdown",
+ "description": "Turn off the connected node after x minutes."
+ },
+ "traceRoute": {
+ "routeToDestination": "Route to destination:",
+ "routeBack": "Route back:"
+ },
+ "tracerouteResponse": {
+ "title": "Traceroute: {{identifier}}"
+ },
+ "unsafeRoles": {
+ "confirmUnderstanding": "Yes, I know what I'm doing",
+ "conjunction": " and the blog post about ",
+ "postamble": " and understand the implications of changing the role.",
+ "preamble": "I have read the ",
+ "choosingRightDeviceRole": "Choosing The Right Device Role",
+ "deviceRoleDocumentation": "Device Role Documentation",
+ "title": "Jste si jistý?"
+ },
+ "managedMode": {
+ "confirmUnderstanding": "Yes, I know what I'm doing",
+ "title": "Jste si jistý?",
+ "description": "Enabling Managed Mode blocks client applications (including the web client) from writing configurations to a radio. Once enabled, radio configurations can only be changed through Remote Admin messages. This setting is not required for remote node administration."
+ },
+ "clientNotification": {
+ "title": "Oznámení klienta",
+ "TraceRoute can only be sent once every 30 seconds": "TraceRoute can only be sent once every 30 seconds",
+ "Compromised keys were detected and regenerated.": "Compromised keys were detected and regenerated."
+ },
+ "resetNodeDb": {
+ "title": "Reset Node Database",
+ "description": "This will clear all nodes from the connected device's node database and clear all message history in the client. This cannot be undone. Are you sure you want to continue?",
+ "confirm": "Reset Node Database",
+ "failedTitle": "There was an error resetting the Node DB. Please try again."
+ },
+ "clearAllStores": {
+ "title": "Clear All Local Storage",
+ "description": "This will clear all locally stored data, including message history and node databases for all previously connected devices. This will require you to reconnect to your node once complete and cannot be undone. Are you sure you want to continue?",
+ "confirm": "Clear all local storage",
+ "failedTitle": "There was an error clearing local storage. Please try again."
+ },
+ "factoryResetDevice": {
+ "title": "Factory Reset Device",
+ "description": "This will factory reset the connected device, erasing all configurations and data on the device as well as all nodes and messages saved in the client. This cannot be undone. Are you sure you want to continue?",
+ "confirm": "Factory Reset Device",
+ "failedTitle": "There was an error performing the factory reset. Please try again."
+ },
+ "factoryResetConfig": {
+ "title": "Factory Reset Config",
+ "description": "This will factory reset the configuration on the connected device, erasing all configurations on the device. This cannot be undone. Are you sure you want to continue?",
+ "confirm": "Factory Reset Config",
+ "failedTitle": "There was an error performing the factory reset. Please try again."
+ }
}
diff --git a/packages/web/public/i18n/locales/cs-CZ/map.json b/packages/web/public/i18n/locales/cs-CZ/map.json
new file mode 100644
index 00000000..231b868f
--- /dev/null
+++ b/packages/web/public/i18n/locales/cs-CZ/map.json
@@ -0,0 +1,38 @@
+{
+ "maplibre": {
+ "GeolocateControl.FindMyLocation": "Find my location",
+ "NavigationControl.ZoomIn": "Zoom in",
+ "NavigationControl.ZoomOut": "Zoom out",
+ "CooperativeGesturesHandler.WindowsHelpText": "Use Ctrl + scroll to zoom the map",
+ "CooperativeGesturesHandler.MacHelpText": "Use ⌘ + scroll to zoom the map",
+ "CooperativeGesturesHandler.MobileHelpText": "Use two fingers to move the map"
+ },
+ "layerTool": {
+ "nodeMarkers": "Show nodes",
+ "directNeighbors": "Show direct connections",
+ "remoteNeighbors": "Show remote connections",
+ "positionPrecision": "Show position precision",
+ "traceroutes": "Show traceroutes",
+ "waypoints": "Show waypoints"
+ },
+ "mapMenu": {
+ "locateAria": "Locate my node",
+ "layersAria": "Change map style"
+ },
+ "waypointDetail": {
+ "edit": "Upravit",
+ "description": "Description:",
+ "createdBy": "Edited by:",
+ "createdDate": "Created:",
+ "updated": "Updated:",
+ "expires": "Expires:",
+ "distance": "Distance:",
+ "bearing": "Absolute bearing:",
+ "lockedTo": "Locked by:",
+ "latitude": "Latitude:",
+ "longitude": "Longitude:"
+ },
+ "myNode": {
+ "tooltip": "This device"
+ }
+}
diff --git a/packages/web/public/i18n/locales/cs-CZ/messages.json b/packages/web/public/i18n/locales/cs-CZ/messages.json
index 58688d9f..e4ddb17d 100644
--- a/packages/web/public/i18n/locales/cs-CZ/messages.json
+++ b/packages/web/public/i18n/locales/cs-CZ/messages.json
@@ -1,39 +1,39 @@
{
- "page": {
- "title": "Messages: {{chatName}}",
- "placeholder": "Enter Message"
- },
- "emptyState": {
- "title": "Select a Chat",
- "text": "No messages yet."
- },
- "selectChatPrompt": {
- "text": "Select a channel or node to start messaging."
- },
- "sendMessage": {
- "placeholder": "Enter your message here...",
- "sendButton": "Odeslat"
- },
- "actionsMenu": {
- "addReactionLabel": "Add Reaction",
- "replyLabel": "Reply"
- },
- "deliveryStatus": {
- "delivered": {
- "label": "Message delivered",
- "displayText": "Message delivered"
- },
- "failed": {
- "label": "Message delivery failed",
- "displayText": "Delivery failed"
- },
- "unknown": {
- "label": "Message status unknown",
- "displayText": "Unknown state"
- },
- "waiting": {
- "label": "Sending message",
- "displayText": "Waiting for delivery"
- }
- }
+ "page": {
+ "title": "Messages: {{chatName}}",
+ "placeholder": "Enter Message"
+ },
+ "emptyState": {
+ "title": "Select a Chat",
+ "text": "No messages yet."
+ },
+ "selectChatPrompt": {
+ "text": "Select a channel or node to start messaging."
+ },
+ "sendMessage": {
+ "placeholder": "Enter your message here...",
+ "sendButton": "Odeslat"
+ },
+ "actionsMenu": {
+ "addReactionLabel": "Add Reaction",
+ "replyLabel": "Reply"
+ },
+ "deliveryStatus": {
+ "delivered": {
+ "label": "Message delivered",
+ "displayText": "Message delivered"
+ },
+ "failed": {
+ "label": "Message delivery failed",
+ "displayText": "Delivery failed"
+ },
+ "unknown": {
+ "label": "Message status unknown",
+ "displayText": "Unknown state"
+ },
+ "waiting": {
+ "label": "Sending message",
+ "displayText": "Waiting for delivery"
+ }
+ }
}
diff --git a/packages/web/public/i18n/locales/cs-CZ/moduleConfig.json b/packages/web/public/i18n/locales/cs-CZ/moduleConfig.json
index be0d4aa7..a8774916 100644
--- a/packages/web/public/i18n/locales/cs-CZ/moduleConfig.json
+++ b/packages/web/public/i18n/locales/cs-CZ/moduleConfig.json
@@ -1,448 +1,448 @@
{
- "page": {
- "tabAmbientLighting": "Ambientní osvětlení",
- "tabAudio": "Zvuk",
- "tabCannedMessage": "Canned",
- "tabDetectionSensor": "Detekční senzor",
- "tabExternalNotification": "Ext Notif",
- "tabMqtt": "MQTT",
- "tabNeighborInfo": "Informace o sousedech",
- "tabPaxcounter": "Paxcounter",
- "tabRangeTest": "Zkouška dosahu",
- "tabSerial": "Sériový",
- "tabStoreAndForward": "S&F",
- "tabTelemetry": "Telemetrie"
- },
- "ambientLighting": {
- "title": "Ambient Lighting Settings",
- "description": "Settings for the Ambient Lighting module",
- "ledState": {
- "label": "LED State",
- "description": "Sets LED to on or off"
- },
- "current": {
- "label": "Proud",
- "description": "Sets the current for the LED output. Default is 10"
- },
- "red": {
- "label": "Červená",
- "description": "Sets the red LED level. Values are 0-255"
- },
- "green": {
- "label": "Zelená",
- "description": "Sets the green LED level. Values are 0-255"
- },
- "blue": {
- "label": "Modrá",
- "description": "Sets the blue LED level. Values are 0-255"
- }
- },
- "audio": {
- "title": "Audio Settings",
- "description": "Settings for the Audio module",
- "codec2Enabled": {
- "label": "Codec 2 Enabled",
- "description": "Enable Codec 2 audio encoding"
- },
- "pttPin": {
- "label": "PTT Pin",
- "description": "GPIO pin to use for PTT"
- },
- "bitrate": {
- "label": "Bitrate",
- "description": "Bitrate to use for audio encoding"
- },
- "i2sWs": {
- "label": "i2S WS",
- "description": "GPIO pin to use for i2S WS"
- },
- "i2sSd": {
- "label": "i2S SD",
- "description": "GPIO pin to use for i2S SD"
- },
- "i2sDin": {
- "label": "i2S DIN",
- "description": "GPIO pin to use for i2S DIN"
- },
- "i2sSck": {
- "label": "i2S SCK",
- "description": "GPIO pin to use for i2S SCK"
- }
- },
- "cannedMessage": {
- "title": "Canned Message Settings",
- "description": "Settings for the Canned Message module",
- "moduleEnabled": {
- "label": "Module Enabled",
- "description": "Enable Canned Message"
- },
- "rotary1Enabled": {
- "label": "Rotary Encoder #1 Enabled",
- "description": "Enable the rotary encoder"
- },
- "inputbrokerPinA": {
- "label": "Encoder Pin A",
- "description": "GPIO Pin Value (1-39) For encoder port A"
- },
- "inputbrokerPinB": {
- "label": "Encoder Pin B",
- "description": "GPIO Pin Value (1-39) For encoder port B"
- },
- "inputbrokerPinPress": {
- "label": "Encoder Pin Press",
- "description": "GPIO Pin Value (1-39) For encoder Press"
- },
- "inputbrokerEventCw": {
- "label": "Clockwise event",
- "description": "Select input event."
- },
- "inputbrokerEventCcw": {
- "label": "Counter Clockwise event",
- "description": "Select input event."
- },
- "inputbrokerEventPress": {
- "label": "Press event",
- "description": "Select input event"
- },
- "updown1Enabled": {
- "label": "Up Down enabled",
- "description": "Enable the up / down encoder"
- },
- "allowInputSource": {
- "label": "Allow Input Source",
- "description": "Select from: '_any', 'rotEnc1', 'upDownEnc1', 'cardkb'"
- },
- "sendBell": {
- "label": "Send Bell",
- "description": "Sends a bell character with each message"
- }
- },
- "detectionSensor": {
- "title": "Detection Sensor Settings",
- "description": "Settings for the Detection Sensor module",
- "enabled": {
- "label": "Povoleno",
- "description": "Enable or disable Detection Sensor Module"
- },
- "minimumBroadcastSecs": {
- "label": "Minimum Broadcast Seconds",
- "description": "The interval in seconds of how often we can send a message to the mesh when a state change is detected"
- },
- "stateBroadcastSecs": {
- "label": "State Broadcast Seconds",
- "description": "The interval in seconds of how often we should send a message to the mesh with the current state regardless of changes"
- },
- "sendBell": {
- "label": "Send Bell",
- "description": "Send ASCII bell with alert message"
- },
- "name": {
- "label": "Friendly Name",
- "description": "Used to format the message sent to mesh, max 20 Characters"
- },
- "monitorPin": {
- "label": "Monitor Pin",
- "description": "The GPIO pin to monitor for state changes"
- },
- "detectionTriggerType": {
- "label": "Detection Triggered Type",
- "description": "The type of trigger event to be used"
- },
- "usePullup": {
- "label": "Use Pullup",
- "description": "Whether or not use INPUT_PULLUP mode for GPIO pin"
- }
- },
- "externalNotification": {
- "title": "External Notification Settings",
- "description": "Configure the external notification module",
- "enabled": {
- "label": "Module Enabled",
- "description": "Enable External Notification"
- },
- "outputMs": {
- "label": "Output MS",
- "description": "Output MS"
- },
- "output": {
- "label": "Output",
- "description": "Output"
- },
- "outputVibra": {
- "label": "Output Vibrate",
- "description": "Output Vibrate"
- },
- "outputBuzzer": {
- "label": "Output Buzzer",
- "description": "Output Buzzer"
- },
- "active": {
- "label": "Active",
- "description": "Active"
- },
- "alertMessage": {
- "label": "Alert Message",
- "description": "Alert Message"
- },
- "alertMessageVibra": {
- "label": "Alert Message Vibrate",
- "description": "Alert Message Vibrate"
- },
- "alertMessageBuzzer": {
- "label": "Alert Message Buzzer",
- "description": "Alert Message Buzzer"
- },
- "alertBell": {
- "label": "Alert Bell",
- "description": "Should an alert be triggered when receiving an incoming bell?"
- },
- "alertBellVibra": {
- "label": "Alert Bell Vibrate",
- "description": "Alert Bell Vibrate"
- },
- "alertBellBuzzer": {
- "label": "Alert Bell Buzzer",
- "description": "Alert Bell Buzzer"
- },
- "usePwm": {
- "label": "Use PWM",
- "description": "Use PWM"
- },
- "nagTimeout": {
- "label": "Nag Timeout",
- "description": "Nag Timeout"
- },
- "useI2sAsBuzzer": {
- "label": "Use I²S Pin as Buzzer",
- "description": "Designate I²S Pin as Buzzer Output"
- }
- },
- "mqtt": {
- "title": "MQTT Settings",
- "description": "Settings for the MQTT module",
- "enabled": {
- "label": "Povoleno",
- "description": "Enable or disable MQTT"
- },
- "address": {
- "label": "MQTT Server Address",
- "description": "MQTT server address to use for default/custom servers"
- },
- "username": {
- "label": "MQTT Username",
- "description": "MQTT username to use for default/custom servers"
- },
- "password": {
- "label": "MQTT Password",
- "description": "MQTT password to use for default/custom servers"
- },
- "encryptionEnabled": {
- "label": "Encryption Enabled",
- "description": "Enable or disable MQTT encryption. Note: All messages are sent to the MQTT broker unencrypted if this option is not enabled, even when your uplink channels have encryption keys set. This includes position data."
- },
- "jsonEnabled": {
- "label": "JSON Enabled",
- "description": "Whether to send/consume JSON packets on MQTT"
- },
- "tlsEnabled": {
- "label": "TLS povoleno",
- "description": "Enable or disable TLS"
- },
- "root": {
- "label": "Kořenové téma",
- "description": "MQTT root topic to use for default/custom servers"
- },
- "proxyToClientEnabled": {
- "label": "MQTT Client Proxy Enabled",
- "description": "Utilizes the network connection to proxy MQTT messages to the client."
- },
- "mapReportingEnabled": {
- "label": "Map Reporting Enabled",
- "description": "Your node will periodically send an unencrypted map report packet to the configured MQTT server, this includes id, short and long name, approximate location, hardware model, role, firmware version, LoRa region, modem preset and primary channel name."
- },
- "mapReportSettings": {
- "publishIntervalSecs": {
- "label": "Map Report Publish Interval (s)",
- "description": "Interval in seconds to publish map reports"
- },
- "positionPrecision": {
- "label": "Approximate Location",
- "description": "Position shared will be accurate within this distance",
- "options": {
- "metric_km23": "Within 23 km",
- "metric_km12": "Within 12 km",
- "metric_km5_8": "Within 5.8 km",
- "metric_km2_9": "Within 2.9 km",
- "metric_km1_5": "Within 1.5 km",
- "metric_m700": "Within 700 m",
- "metric_m350": "Within 350 m",
- "metric_m200": "Within 200 m",
- "metric_m90": "Within 90 m",
- "metric_m50": "Within 50 m",
- "imperial_mi15": "Within 15 miles",
- "imperial_mi7_3": "Within 7.3 miles",
- "imperial_mi3_6": "Within 3.6 miles",
- "imperial_mi1_8": "Within 1.8 miles",
- "imperial_mi0_9": "Within 0.9 miles",
- "imperial_mi0_5": "Within 0.5 miles",
- "imperial_mi0_2": "Within 0.2 miles",
- "imperial_ft600": "Within 600 feet",
- "imperial_ft300": "Within 300 feet",
- "imperial_ft150": "Within 150 feet"
- }
- }
- }
- },
- "neighborInfo": {
- "title": "Neighbor Info Settings",
- "description": "Settings for the Neighbor Info module",
- "enabled": {
- "label": "Povoleno",
- "description": "Enable or disable Neighbor Info Module"
- },
- "updateInterval": {
- "label": "Update Interval",
- "description": "Interval in seconds of how often we should try to send our Neighbor Info to the mesh"
- }
- },
- "paxcounter": {
- "title": "Paxcounter Settings",
- "description": "Settings for the Paxcounter module",
- "enabled": {
- "label": "Module Enabled",
- "description": "Enable Paxcounter"
- },
- "paxcounterUpdateInterval": {
- "label": "Update Interval (seconds)",
- "description": "How long to wait between sending paxcounter packets"
- },
- "wifiThreshold": {
- "label": "WiFi RSSI Threshold",
- "description": "At what WiFi RSSI level should the counter increase. Defaults to -80."
- },
- "bleThreshold": {
- "label": "BLE RSSI Threshold",
- "description": "At what BLE RSSI level should the counter increase. Defaults to -80."
- }
- },
- "rangeTest": {
- "title": "Range Test Settings",
- "description": "Settings for the Range Test module",
- "enabled": {
- "label": "Module Enabled",
- "description": "Enable Range Test"
- },
- "sender": {
- "label": "Message Interval",
- "description": "How long to wait between sending test packets"
- },
- "save": {
- "label": "Save CSV to storage",
- "description": "ESP32 Only"
- }
- },
- "serial": {
- "title": "Serial Settings",
- "description": "Settings for the Serial module",
- "enabled": {
- "label": "Module Enabled",
- "description": "Enable Serial output"
- },
- "echo": {
- "label": "Echo",
- "description": "Any packets you send will be echoed back to your device"
- },
- "rxd": {
- "label": "Receive Pin",
- "description": "Set the GPIO pin to the RXD pin you have set up."
- },
- "txd": {
- "label": "Transmit Pin",
- "description": "Set the GPIO pin to the TXD pin you have set up."
- },
- "baud": {
- "label": "Baud Rate",
- "description": "The serial baud rate"
- },
- "timeout": {
- "label": "Vypršel čas spojení",
- "description": "Seconds to wait before we consider your packet as 'done'"
- },
- "mode": {
- "label": "Mode",
- "description": "Select Mode"
- },
- "overrideConsoleSerialPort": {
- "label": "Override Console Serial Port",
- "description": "If you have a serial port connected to the console, this will override it."
- }
- },
- "storeForward": {
- "title": "Store & Forward Settings",
- "description": "Settings for the Store & Forward module",
- "enabled": {
- "label": "Module Enabled",
- "description": "Enable Store & Forward"
- },
- "heartbeat": {
- "label": "Heartbeat Enabled",
- "description": "Enable Store & Forward heartbeat"
- },
- "records": {
- "label": "Počet záznamů",
- "description": "Number of records to store"
- },
- "historyReturnMax": {
- "label": "History return max",
- "description": "Max number of records to return"
- },
- "historyReturnWindow": {
- "label": "History return window",
- "description": "Return records from this time window (minutes)"
- }
- },
- "telemetry": {
- "title": "Telemetry Settings",
- "description": "Settings for the Telemetry module",
- "deviceUpdateInterval": {
- "label": "Device Metrics",
- "description": "Interval aktualizace metrik zařízení (v sekundách)"
- },
- "environmentUpdateInterval": {
- "label": "Interval aktualizace metrik životního prostředí (v sekundách)",
- "description": ""
- },
- "environmentMeasurementEnabled": {
- "label": "Module Enabled",
- "description": "Enable the Environment Telemetry"
- },
- "environmentScreenEnabled": {
- "label": "Displayed on Screen",
- "description": "Show the Telemetry Module on the OLED"
- },
- "environmentDisplayFahrenheit": {
- "label": "Display Fahrenheit",
- "description": "Display temp in Fahrenheit"
- },
- "airQualityEnabled": {
- "label": "Air Quality Enabled",
- "description": "Enable the Air Quality Telemetry"
- },
- "airQualityInterval": {
- "label": "Air Quality Update Interval",
- "description": "How often to send Air Quality data over the mesh"
- },
- "powerMeasurementEnabled": {
- "label": "Power Measurement Enabled",
- "description": "Enable the Power Measurement Telemetry"
- },
- "powerUpdateInterval": {
- "label": "Power Update Interval",
- "description": "How often to send Power data over the mesh"
- },
- "powerScreenEnabled": {
- "label": "Power Screen Enabled",
- "description": "Enable the Power Telemetry Screen"
- }
- }
+ "page": {
+ "tabAmbientLighting": "Ambientní osvětlení",
+ "tabAudio": "Zvuk",
+ "tabCannedMessage": "Canned",
+ "tabDetectionSensor": "Detekční senzor",
+ "tabExternalNotification": "Ext Notif",
+ "tabMqtt": "MQTT",
+ "tabNeighborInfo": "Informace o sousedech",
+ "tabPaxcounter": "Paxcounter",
+ "tabRangeTest": "Zkouška dosahu",
+ "tabSerial": "Sériový",
+ "tabStoreAndForward": "S&F",
+ "tabTelemetry": "Telemetrie"
+ },
+ "ambientLighting": {
+ "title": "Ambient Lighting Settings",
+ "description": "Settings for the Ambient Lighting module",
+ "ledState": {
+ "label": "LED State",
+ "description": "Sets LED to on or off"
+ },
+ "current": {
+ "label": "Proud",
+ "description": "Sets the current for the LED output. Default is 10"
+ },
+ "red": {
+ "label": "Červená",
+ "description": "Sets the red LED level. Values are 0-255"
+ },
+ "green": {
+ "label": "Zelená",
+ "description": "Sets the green LED level. Values are 0-255"
+ },
+ "blue": {
+ "label": "Modrá",
+ "description": "Sets the blue LED level. Values are 0-255"
+ }
+ },
+ "audio": {
+ "title": "Audio Settings",
+ "description": "Settings for the Audio module",
+ "codec2Enabled": {
+ "label": "Codec 2 Enabled",
+ "description": "Enable Codec 2 audio encoding"
+ },
+ "pttPin": {
+ "label": "PTT Pin",
+ "description": "GPIO pin to use for PTT"
+ },
+ "bitrate": {
+ "label": "Bitrate",
+ "description": "Bitrate to use for audio encoding"
+ },
+ "i2sWs": {
+ "label": "i2S WS",
+ "description": "GPIO pin to use for i2S WS"
+ },
+ "i2sSd": {
+ "label": "i2S SD",
+ "description": "GPIO pin to use for i2S SD"
+ },
+ "i2sDin": {
+ "label": "i2S DIN",
+ "description": "GPIO pin to use for i2S DIN"
+ },
+ "i2sSck": {
+ "label": "i2S SCK",
+ "description": "GPIO pin to use for i2S SCK"
+ }
+ },
+ "cannedMessage": {
+ "title": "Canned Message Settings",
+ "description": "Settings for the Canned Message module",
+ "moduleEnabled": {
+ "label": "Module Enabled",
+ "description": "Enable Canned Message"
+ },
+ "rotary1Enabled": {
+ "label": "Rotary Encoder #1 Enabled",
+ "description": "Enable the rotary encoder"
+ },
+ "inputbrokerPinA": {
+ "label": "Encoder Pin A",
+ "description": "GPIO Pin Value (1-39) For encoder port A"
+ },
+ "inputbrokerPinB": {
+ "label": "Encoder Pin B",
+ "description": "GPIO Pin Value (1-39) For encoder port B"
+ },
+ "inputbrokerPinPress": {
+ "label": "Encoder Pin Press",
+ "description": "GPIO Pin Value (1-39) For encoder Press"
+ },
+ "inputbrokerEventCw": {
+ "label": "Clockwise event",
+ "description": "Select input event."
+ },
+ "inputbrokerEventCcw": {
+ "label": "Counter Clockwise event",
+ "description": "Select input event."
+ },
+ "inputbrokerEventPress": {
+ "label": "Press event",
+ "description": "Select input event"
+ },
+ "updown1Enabled": {
+ "label": "Up Down enabled",
+ "description": "Enable the up / down encoder"
+ },
+ "allowInputSource": {
+ "label": "Allow Input Source",
+ "description": "Select from: '_any', 'rotEnc1', 'upDownEnc1', 'cardkb'"
+ },
+ "sendBell": {
+ "label": "Send Bell",
+ "description": "Sends a bell character with each message"
+ }
+ },
+ "detectionSensor": {
+ "title": "Detection Sensor Settings",
+ "description": "Settings for the Detection Sensor module",
+ "enabled": {
+ "label": "Povoleno",
+ "description": "Enable or disable Detection Sensor Module"
+ },
+ "minimumBroadcastSecs": {
+ "label": "Minimum Broadcast Seconds",
+ "description": "The interval in seconds of how often we can send a message to the mesh when a state change is detected"
+ },
+ "stateBroadcastSecs": {
+ "label": "State Broadcast Seconds",
+ "description": "The interval in seconds of how often we should send a message to the mesh with the current state regardless of changes"
+ },
+ "sendBell": {
+ "label": "Send Bell",
+ "description": "Send ASCII bell with alert message"
+ },
+ "name": {
+ "label": "Friendly Name",
+ "description": "Used to format the message sent to mesh, max 20 Characters"
+ },
+ "monitorPin": {
+ "label": "Monitor Pin",
+ "description": "The GPIO pin to monitor for state changes"
+ },
+ "detectionTriggerType": {
+ "label": "Detection Triggered Type",
+ "description": "The type of trigger event to be used"
+ },
+ "usePullup": {
+ "label": "Use Pullup",
+ "description": "Whether or not use INPUT_PULLUP mode for GPIO pin"
+ }
+ },
+ "externalNotification": {
+ "title": "External Notification Settings",
+ "description": "Configure the external notification module",
+ "enabled": {
+ "label": "Module Enabled",
+ "description": "Enable External Notification"
+ },
+ "outputMs": {
+ "label": "Output MS",
+ "description": "Output MS"
+ },
+ "output": {
+ "label": "Output",
+ "description": "Output"
+ },
+ "outputVibra": {
+ "label": "Output Vibrate",
+ "description": "Output Vibrate"
+ },
+ "outputBuzzer": {
+ "label": "Output Buzzer",
+ "description": "Output Buzzer"
+ },
+ "active": {
+ "label": "Active",
+ "description": "Active"
+ },
+ "alertMessage": {
+ "label": "Alert Message",
+ "description": "Alert Message"
+ },
+ "alertMessageVibra": {
+ "label": "Alert Message Vibrate",
+ "description": "Alert Message Vibrate"
+ },
+ "alertMessageBuzzer": {
+ "label": "Alert Message Buzzer",
+ "description": "Alert Message Buzzer"
+ },
+ "alertBell": {
+ "label": "Alert Bell",
+ "description": "Should an alert be triggered when receiving an incoming bell?"
+ },
+ "alertBellVibra": {
+ "label": "Alert Bell Vibrate",
+ "description": "Alert Bell Vibrate"
+ },
+ "alertBellBuzzer": {
+ "label": "Alert Bell Buzzer",
+ "description": "Alert Bell Buzzer"
+ },
+ "usePwm": {
+ "label": "Use PWM",
+ "description": "Use PWM"
+ },
+ "nagTimeout": {
+ "label": "Nag Timeout",
+ "description": "Nag Timeout"
+ },
+ "useI2sAsBuzzer": {
+ "label": "Use I²S Pin as Buzzer",
+ "description": "Designate I²S Pin as Buzzer Output"
+ }
+ },
+ "mqtt": {
+ "title": "MQTT Settings",
+ "description": "Settings for the MQTT module",
+ "enabled": {
+ "label": "Povoleno",
+ "description": "Enable or disable MQTT"
+ },
+ "address": {
+ "label": "MQTT Server Address",
+ "description": "MQTT server address to use for default/custom servers"
+ },
+ "username": {
+ "label": "MQTT Username",
+ "description": "MQTT username to use for default/custom servers"
+ },
+ "password": {
+ "label": "MQTT Password",
+ "description": "MQTT password to use for default/custom servers"
+ },
+ "encryptionEnabled": {
+ "label": "Encryption Enabled",
+ "description": "Enable or disable MQTT encryption. Note: All messages are sent to the MQTT broker unencrypted if this option is not enabled, even when your uplink channels have encryption keys set. This includes position data."
+ },
+ "jsonEnabled": {
+ "label": "JSON Enabled",
+ "description": "Whether to send/consume JSON packets on MQTT"
+ },
+ "tlsEnabled": {
+ "label": "TLS povoleno",
+ "description": "Enable or disable TLS"
+ },
+ "root": {
+ "label": "Kořenové téma",
+ "description": "MQTT root topic to use for default/custom servers"
+ },
+ "proxyToClientEnabled": {
+ "label": "MQTT Client Proxy Enabled",
+ "description": "Utilizes the network connection to proxy MQTT messages to the client."
+ },
+ "mapReportingEnabled": {
+ "label": "Map Reporting Enabled",
+ "description": "Your node will periodically send an unencrypted map report packet to the configured MQTT server, this includes id, short and long name, approximate location, hardware model, role, firmware version, LoRa region, modem preset and primary channel name."
+ },
+ "mapReportSettings": {
+ "publishIntervalSecs": {
+ "label": "Map Report Publish Interval (s)",
+ "description": "Interval in seconds to publish map reports"
+ },
+ "positionPrecision": {
+ "label": "Approximate Location",
+ "description": "Position shared will be accurate within this distance",
+ "options": {
+ "metric_km23": "Within 23 km",
+ "metric_km12": "Within 12 km",
+ "metric_km5_8": "Within 5.8 km",
+ "metric_km2_9": "Within 2.9 km",
+ "metric_km1_5": "Within 1.5 km",
+ "metric_m700": "Within 700 m",
+ "metric_m350": "Within 350 m",
+ "metric_m200": "Within 200 m",
+ "metric_m90": "Within 90 m",
+ "metric_m50": "Within 50 m",
+ "imperial_mi15": "Within 15 miles",
+ "imperial_mi7_3": "Within 7.3 miles",
+ "imperial_mi3_6": "Within 3.6 miles",
+ "imperial_mi1_8": "Within 1.8 miles",
+ "imperial_mi0_9": "Within 0.9 miles",
+ "imperial_mi0_5": "Within 0.5 miles",
+ "imperial_mi0_2": "Within 0.2 miles",
+ "imperial_ft600": "Within 600 feet",
+ "imperial_ft300": "Within 300 feet",
+ "imperial_ft150": "Within 150 feet"
+ }
+ }
+ }
+ },
+ "neighborInfo": {
+ "title": "Neighbor Info Settings",
+ "description": "Settings for the Neighbor Info module",
+ "enabled": {
+ "label": "Povoleno",
+ "description": "Enable or disable Neighbor Info Module"
+ },
+ "updateInterval": {
+ "label": "Update Interval",
+ "description": "Interval in seconds of how often we should try to send our Neighbor Info to the mesh"
+ }
+ },
+ "paxcounter": {
+ "title": "Paxcounter Settings",
+ "description": "Settings for the Paxcounter module",
+ "enabled": {
+ "label": "Module Enabled",
+ "description": "Enable Paxcounter"
+ },
+ "paxcounterUpdateInterval": {
+ "label": "Update Interval (seconds)",
+ "description": "How long to wait between sending paxcounter packets"
+ },
+ "wifiThreshold": {
+ "label": "WiFi RSSI Threshold",
+ "description": "At what WiFi RSSI level should the counter increase. Defaults to -80."
+ },
+ "bleThreshold": {
+ "label": "BLE RSSI Threshold",
+ "description": "At what BLE RSSI level should the counter increase. Defaults to -80."
+ }
+ },
+ "rangeTest": {
+ "title": "Range Test Settings",
+ "description": "Settings for the Range Test module",
+ "enabled": {
+ "label": "Module Enabled",
+ "description": "Enable Range Test"
+ },
+ "sender": {
+ "label": "Message Interval",
+ "description": "How long to wait between sending test packets"
+ },
+ "save": {
+ "label": "Save CSV to storage",
+ "description": "ESP32 Only"
+ }
+ },
+ "serial": {
+ "title": "Serial Settings",
+ "description": "Settings for the Serial module",
+ "enabled": {
+ "label": "Module Enabled",
+ "description": "Enable Serial output"
+ },
+ "echo": {
+ "label": "Echo",
+ "description": "Any packets you send will be echoed back to your device"
+ },
+ "rxd": {
+ "label": "Receive Pin",
+ "description": "Set the GPIO pin to the RXD pin you have set up."
+ },
+ "txd": {
+ "label": "Transmit Pin",
+ "description": "Set the GPIO pin to the TXD pin you have set up."
+ },
+ "baud": {
+ "label": "Baud Rate",
+ "description": "The serial baud rate"
+ },
+ "timeout": {
+ "label": "Vypršel čas spojení",
+ "description": "Seconds to wait before we consider your packet as 'done'"
+ },
+ "mode": {
+ "label": "Mode",
+ "description": "Select Mode"
+ },
+ "overrideConsoleSerialPort": {
+ "label": "Override Console Serial Port",
+ "description": "If you have a serial port connected to the console, this will override it."
+ }
+ },
+ "storeForward": {
+ "title": "Store & Forward Settings",
+ "description": "Settings for the Store & Forward module",
+ "enabled": {
+ "label": "Module Enabled",
+ "description": "Enable Store & Forward"
+ },
+ "heartbeat": {
+ "label": "Heartbeat Enabled",
+ "description": "Enable Store & Forward heartbeat"
+ },
+ "records": {
+ "label": "Počet záznamů",
+ "description": "Number of records to store"
+ },
+ "historyReturnMax": {
+ "label": "History return max",
+ "description": "Max number of records to return"
+ },
+ "historyReturnWindow": {
+ "label": "History return window",
+ "description": "Return records from this time window (minutes)"
+ }
+ },
+ "telemetry": {
+ "title": "Telemetry Settings",
+ "description": "Settings for the Telemetry module",
+ "deviceUpdateInterval": {
+ "label": "Device Metrics",
+ "description": "Interval aktualizace metrik zařízení (v sekundách)"
+ },
+ "environmentUpdateInterval": {
+ "label": "Interval aktualizace metrik životního prostředí (v sekundách)",
+ "description": ""
+ },
+ "environmentMeasurementEnabled": {
+ "label": "Module Enabled",
+ "description": "Enable the Environment Telemetry"
+ },
+ "environmentScreenEnabled": {
+ "label": "Displayed on Screen",
+ "description": "Show the Telemetry Module on the OLED"
+ },
+ "environmentDisplayFahrenheit": {
+ "label": "Display Fahrenheit",
+ "description": "Display temp in Fahrenheit"
+ },
+ "airQualityEnabled": {
+ "label": "Air Quality Enabled",
+ "description": "Enable the Air Quality Telemetry"
+ },
+ "airQualityInterval": {
+ "label": "Air Quality Update Interval",
+ "description": "How often to send Air Quality data over the mesh"
+ },
+ "powerMeasurementEnabled": {
+ "label": "Power Measurement Enabled",
+ "description": "Enable the Power Measurement Telemetry"
+ },
+ "powerUpdateInterval": {
+ "label": "Power Update Interval",
+ "description": "How often to send Power data over the mesh"
+ },
+ "powerScreenEnabled": {
+ "label": "Power Screen Enabled",
+ "description": "Enable the Power Telemetry Screen"
+ }
+ }
}
diff --git a/packages/web/public/i18n/locales/cs-CZ/nodes.json b/packages/web/public/i18n/locales/cs-CZ/nodes.json
index 53a6d1d2..09c13ef6 100644
--- a/packages/web/public/i18n/locales/cs-CZ/nodes.json
+++ b/packages/web/public/i18n/locales/cs-CZ/nodes.json
@@ -1,63 +1,59 @@
{
- "nodeDetail": {
- "publicKeyEnabled": {
- "label": "Public Key Enabled"
- },
- "noPublicKey": {
- "label": "No Public Key"
- },
- "directMessage": {
- "label": "Direct Message {{shortName}}"
- },
- "favorite": {
- "label": "Oblíbené",
- "tooltip": "Add or remove this node from your favorites"
- },
- "notFavorite": {
- "label": "Not a Favorite"
- },
- "error": {
- "label": "Chyba",
- "text": "An error occurred while fetching node details. Please try again later."
- },
- "status": {
- "heard": "Heard",
- "mqtt": "MQTT"
- },
- "elevation": {
- "label": "Elevation"
- },
- "channelUtil": {
- "label": "Channel Util"
- },
- "airtimeUtil": {
- "label": "Airtime Util"
- }
- },
- "nodesTable": {
- "headings": {
- "longName": "Long Name",
- "connection": "Connection",
- "lastHeard": "Last Heard",
- "encryption": "Encryption",
- "model": "Model",
- "macAddress": "MAC Address"
- },
- "connectionStatus": {
- "direct": "Přímý",
- "away": "away",
- "unknown": "-",
- "viaMqtt": ", via MQTT"
- },
- "lastHeardStatus": {
- "never": "Never"
- }
- },
- "actions": {
- "added": "Added",
- "removed": "Removed",
- "ignoreNode": "Ignore Node",
- "unignoreNode": "Unignore Node",
- "requestPosition": "Request Position"
- }
+ "nodeDetail": {
+ "publicKeyEnabled": {
+ "label": "Public Key Enabled"
+ },
+ "noPublicKey": {
+ "label": "No Public Key"
+ },
+ "directMessage": {
+ "label": "Direct Message {{shortName}}"
+ },
+ "favorite": {
+ "label": "Oblíbené",
+ "tooltip": "Add or remove this node from your favorites"
+ },
+ "notFavorite": {
+ "label": "Not a Favorite"
+ },
+ "error": {
+ "label": "Chyba",
+ "text": "An error occurred while fetching node details. Please try again later."
+ },
+ "status": {
+ "heard": "Heard",
+ "mqtt": "MQTT"
+ },
+ "elevation": {
+ "label": "Elevation"
+ },
+ "channelUtil": {
+ "label": "Channel Util"
+ },
+ "airtimeUtil": {
+ "label": "Airtime Util"
+ }
+ },
+ "nodesTable": {
+ "headings": {
+ "longName": "Long Name",
+ "connection": "Connection",
+ "lastHeard": "Last Heard",
+ "encryption": "Encryption",
+ "model": "Model",
+ "macAddress": "MAC Address"
+ },
+ "connectionStatus": {
+ "direct": "Přímý",
+ "away": "away",
+ "viaMqtt": ", via MQTT"
+ }
+ },
+ "actions": {
+ "added": "Added",
+ "removed": "Removed",
+ "ignoreNode": "Ignore Node",
+ "unignoreNode": "Unignore Node",
+ "requestPosition": "Request Position"
+ }
}
diff --git a/packages/web/public/i18n/locales/cs-CZ/ui.json b/packages/web/public/i18n/locales/cs-CZ/ui.json
index 6386e4ee..a31f2fee 100644
--- a/packages/web/public/i18n/locales/cs-CZ/ui.json
+++ b/packages/web/public/i18n/locales/cs-CZ/ui.json
@@ -1,228 +1,229 @@
{
- "navigation": {
- "title": "Navigation",
- "messages": "Zprávy",
- "map": "Mapa",
- "config": "Config",
- "radioConfig": "Radio Config",
- "moduleConfig": "Module Config",
- "channels": "Kanály",
- "nodes": "Uzly"
- },
- "app": {
- "title": "Meshtastic",
- "logo": "Meshtastic Logo"
- },
- "sidebar": {
- "collapseToggle": {
- "button": {
- "open": "Open sidebar",
- "close": "Close sidebar"
- }
- },
- "deviceInfo": {
- "volts": "{{voltage}} volts",
- "firmware": {
- "title": "Firmware",
- "version": "v{{version}}",
- "buildDate": "Build date: {{date}}"
- },
- "deviceName": {
- "title": "Device Name",
- "changeName": "Change Device Name",
- "placeholder": "Enter device name"
- },
- "editDeviceName": "Edit device name"
- }
- },
- "batteryStatus": {
- "charging": "{{level}}% charging",
- "pluggedIn": "Plugged in",
- "title": "Baterie"
- },
- "search": {
- "nodes": "Search nodes...",
- "channels": "Search channels...",
- "commandPalette": "Search commands..."
- },
- "toast": {
- "positionRequestSent": {
- "title": "Position request sent."
- },
- "requestingPosition": {
- "title": "Requesting position, please wait..."
- },
- "sendingTraceroute": {
- "title": "Sending Traceroute, please wait..."
- },
- "tracerouteSent": {
- "title": "Traceroute sent."
- },
- "savedChannel": {
- "title": "Saved Channel: {{channelName}}"
- },
- "messages": {
- "pkiEncryption": {
- "title": "Chat is using PKI encryption."
- },
- "pskEncryption": {
- "title": "Chat is using PSK encryption."
- }
- },
- "configSaveError": {
- "title": "Error Saving Config",
- "description": "An error occurred while saving the configuration."
- },
- "validationError": {
- "title": "Config Errors Exist",
- "description": "Please fix the configuration errors before saving."
- },
- "saveSuccess": {
- "title": "Saving Config",
- "description": "The configuration change {{case}} has been saved."
- },
- "favoriteNode": {
- "title": "{{action}} {{nodeName}} {{direction}} favorites.",
- "action": {
- "added": "Added",
- "removed": "Removed",
- "to": "to",
- "from": "from"
- }
- },
- "ignoreNode": {
- "title": "{{action}} {{nodeName}} {{direction}} ignore list",
- "action": {
- "added": "Added",
- "removed": "Removed",
- "to": "to",
- "from": "from"
- }
- }
- },
- "notifications": {
- "copied": {
- "label": "Copied!"
- },
- "copyToClipboard": {
- "label": "Copy to clipboard"
- },
- "hidePassword": {
- "label": "Skrýt heslo"
- },
- "showPassword": {
- "label": "Zobrazit heslo"
- },
- "deliveryStatus": {
- "delivered": "Delivered",
- "failed": "Delivery Failed",
- "waiting": "Waiting",
- "unknown": "Unknown"
- }
- },
- "general": {
- "label": "General"
- },
- "hardware": {
- "label": "Hardware"
- },
- "metrics": {
- "label": "Metriky"
- },
- "role": {
- "label": "Role"
- },
- "filter": {
- "label": "Filtr"
- },
- "advanced": {
- "label": "Advanced"
- },
- "clearInput": {
- "label": "Clear input"
- },
- "resetFilters": {
- "label": "Reset Filters"
- },
- "nodeName": {
- "label": "Node name/number",
- "placeholder": "Meshtastic 1234"
- },
- "airtimeUtilization": {
- "label": "Airtime Utilization (%)"
- },
- "batteryLevel": {
- "label": "Battery level (%)",
- "labelText": "Battery level (%): {{value}}"
- },
- "batteryVoltage": {
- "label": "Battery voltage (V)",
- "title": "Napětí"
- },
- "channelUtilization": {
- "label": "Channel Utilization (%)"
- },
- "hops": {
- "direct": "Přímý",
- "label": "Number of hops",
- "text": "Number of hops: {{value}}"
- },
- "lastHeard": {
- "label": "Naposledy slyšen",
- "labelText": "Last heard: {{value}}",
- "nowLabel": "Now"
- },
- "snr": {
- "label": "SNR (db)"
- },
- "favorites": {
- "label": "Favorites"
- },
- "hide": {
- "label": "Hide"
- },
- "showOnly": {
- "label": "Show Only"
- },
- "viaMqtt": {
- "label": "Connected via MQTT"
- },
- "hopsUnknown": {
- "label": "Unknown number of hops"
- },
- "showUnheard": {
- "label": "Never heard"
- },
- "language": {
- "label": "Jazyk",
- "changeLanguage": "Change Language"
- },
- "theme": {
- "dark": "Tmavý",
- "light": "Světlý",
- "system": "Automatic",
- "changeTheme": "Change Color Scheme"
- },
- "errorPage": {
- "title": "This is a little embarrassing...",
- "description1": "We are really sorry but an error occurred in the web client that caused it to crash.
This is not supposed to happen, and we are working hard to fix it.",
- "description2": "The best way to prevent this from happening again to you or anyone else is to report the issue to us.",
- "reportInstructions": "Please include the following information in your report:",
- "reportSteps": {
- "step1": "What you were doing when the error occurred",
- "step2": "What you expected to happen",
- "step3": "What actually happened",
- "step4": "Any other relevant information"
- },
- "reportLink": "You can report the issue to our <0>GitHub0>",
- "dashboardLink": "Return to the <0>dashboard0>",
- "detailsSummary": "Error Details",
- "errorMessageLabel": "Error message:",
- "stackTraceLabel": "Stack trace:",
- "fallbackError": "{{error}}"
- },
- "footer": {
- "text": "Powered by <0>▲ Vercel0> | Meshtastic® is a registered trademark of Meshtastic LLC. | <1>Legal Information1>",
- "commitSha": "Commit SHA: {{sha}}"
- }
+ "navigation": {
+ "title": "Navigation",
+ "messages": "Zprávy",
+ "map": "Mapa",
+ "settings": "Nastavení",
+ "channels": "Kanály",
+ "radioConfig": "Radio Config",
+ "deviceConfig": "Nastavení zařízení",
+ "moduleConfig": "Module Config",
+ "nodes": "Uzly"
+ },
+ "app": {
+ "title": "Meshtastic",
+ "logo": "Meshtastic Logo"
+ },
+ "sidebar": {
+ "collapseToggle": {
+ "button": {
+ "open": "Open sidebar",
+ "close": "Close sidebar"
+ }
+ },
+ "deviceInfo": {
+ "volts": "{{voltage}} volts",
+ "firmware": {
+ "title": "Firmware",
+ "version": "v{{version}}",
+ "buildDate": "Build date: {{date}}"
+ }
+ }
+ },
+ "batteryStatus": {
+ "charging": "{{level}}% charging",
+ "pluggedIn": "Plugged in",
+ "title": "Baterie"
+ },
+ "search": {
+ "nodes": "Search nodes...",
+ "channels": "Search channels...",
+ "commandPalette": "Search commands..."
+ },
+ "toast": {
+ "positionRequestSent": {
+ "title": "Position request sent."
+ },
+ "requestingPosition": {
+ "title": "Requesting position, please wait..."
+ },
+ "sendingTraceroute": {
+ "title": "Sending Traceroute, please wait..."
+ },
+ "tracerouteSent": {
+ "title": "Traceroute sent."
+ },
+ "savedChannel": {
+ "title": "Saved Channel: {{channelName}}"
+ },
+ "messages": {
+ "pkiEncryption": {
+ "title": "Chat is using PKI encryption."
+ },
+ "pskEncryption": {
+ "title": "Chat is using PSK encryption."
+ }
+ },
+ "configSaveError": {
+ "title": "Error Saving Config",
+ "description": "An error occurred while saving the configuration."
+ },
+ "validationError": {
+ "title": "Config Errors Exist",
+ "description": "Please fix the configuration errors before saving."
+ },
+ "saveSuccess": {
+ "title": "Saving Config",
+ "description": "The configuration change {{case}} has been saved."
+ },
+ "saveAllSuccess": {
+ "title": "Saved",
+ "description": "All configuration changes have been saved."
+ },
+ "favoriteNode": {
+ "title": "{{action}} {{nodeName}} {{direction}} favorites.",
+ "action": {
+ "added": "Added",
+ "removed": "Removed",
+ "to": "to",
+ "from": "from"
+ }
+ },
+ "ignoreNode": {
+ "title": "{{action}} {{nodeName}} {{direction}} ignore list",
+ "action": {
+ "added": "Added",
+ "removed": "Removed",
+ "to": "to",
+ "from": "from"
+ }
+ }
+ },
+ "notifications": {
+ "copied": {
+ "label": "Copied!"
+ },
+ "copyToClipboard": {
+ "label": "Copy to clipboard"
+ },
+ "hidePassword": {
+ "label": "Skrýt heslo"
+ },
+ "showPassword": {
+ "label": "Zobrazit heslo"
+ },
+ "deliveryStatus": {
+ "delivered": "Delivered",
+ "failed": "Delivery Failed",
+ "waiting": "Waiting",
+ "unknown": "Unknown"
+ }
+ },
+ "general": {
+ "label": "General"
+ },
+ "hardware": {
+ "label": "Hardware"
+ },
+ "metrics": {
+ "label": "Metriky"
+ },
+ "role": {
+ "label": "Role"
+ },
+ "filter": {
+ "label": "Filtr"
+ },
+ "advanced": {
+ "label": "Advanced"
+ },
+ "clearInput": {
+ "label": "Clear input"
+ },
+ "resetFilters": {
+ "label": "Reset Filters"
+ },
+ "nodeName": {
+ "label": "Node name/number",
+ "placeholder": "Meshtastic 1234"
+ },
+ "airtimeUtilization": {
+ "label": "Airtime Utilization (%)",
+ "short": "Airtime Util. (%)"
+ },
+ "batteryLevel": {
+ "label": "Battery level (%)",
+ "labelText": "Battery level (%): {{value}}"
+ },
+ "batteryVoltage": {
+ "label": "Battery voltage (V)",
+ "title": "Napětí"
+ },
+ "channelUtilization": {
+ "label": "Channel Utilization (%)",
+ "short": "Channel Util. (%)"
+ },
+ "hops": {
+ "direct": "Přímý",
+ "label": "Number of hops",
+ "text": "Number of hops: {{value}}"
+ },
+ "lastHeard": {
+ "label": "Naposledy slyšen",
+ "labelText": "Last heard: {{value}}",
+ "nowLabel": "Now"
+ },
+ "snr": {
+ "label": "SNR (db)"
+ },
+ "favorites": {
+ "label": "Favorites"
+ },
+ "hide": {
+ "label": "Hide"
+ },
+ "showOnly": {
+ "label": "Show Only"
+ },
+ "viaMqtt": {
+ "label": "Connected via MQTT"
+ },
+ "hopsUnknown": {
+ "label": "Unknown number of hops"
+ },
+ "showUnheard": {
+ "label": "Never heard"
+ },
+ "language": {
+ "label": "Jazyk",
+ "changeLanguage": "Change Language"
+ },
+ "theme": {
+ "dark": "Tmavý",
+ "light": "Světlý",
+ "system": "Automatic",
+ "changeTheme": "Change Color Scheme"
+ },
+ "errorPage": {
+ "title": "This is a little embarrassing...",
+ "description1": "We are really sorry but an error occurred in the web client that caused it to crash.
This is not supposed to happen, and we are working hard to fix it.",
+ "description2": "The best way to prevent this from happening again to you or anyone else is to report the issue to us.",
+ "reportInstructions": "Please include the following information in your report:",
+ "reportSteps": {
+ "step1": "What you were doing when the error occurred",
+ "step2": "What you expected to happen",
+ "step3": "What actually happened",
+ "step4": "Any other relevant information"
+ },
+ "reportLink": "You can report the issue to our <0>GitHub0>",
+ "dashboardLink": "Return to the <0>dashboard0>",
+ "detailsSummary": "Error Details",
+ "errorMessageLabel": "Error message:",
+ "stackTraceLabel": "Stack trace:",
+ "fallbackError": "{{error}}"
+ },
+ "footer": {
+ "text": "Powered by <0>▲ Vercel0> | Meshtastic® is a registered trademark of Meshtastic LLC. | <1>Legal Information1>",
+ "commitSha": "Commit SHA: {{sha}}"
+ }
}
diff --git a/packages/web/public/i18n/locales/de-DE/channels.json b/packages/web/public/i18n/locales/de-DE/channels.json
index 170b23a5..1e664d7f 100644
--- a/packages/web/public/i18n/locales/de-DE/channels.json
+++ b/packages/web/public/i18n/locales/de-DE/channels.json
@@ -1,69 +1,71 @@
{
- "page": {
- "sectionLabel": "Kanäle",
- "channelName": "Kanal {{channelName}}",
- "broadcastLabel": "Primär",
- "channelIndex": "Kanal {{index}}"
- },
- "validation": {
- "pskInvalid": "Bitte geben Sie einen gültigen {{bits}} Bit PSK Schlüssel ein."
- },
- "settings": {
- "label": "Kanaleinstellungen",
- "description": "Verschlüsselung, MQTT & sonstige Einstellungen"
- },
- "role": {
- "label": "Rolle",
- "description": "Gerätetelemetrie wird über den PRIMÄR Kanal gesendet. Nur ein PRIMÄR Kanal ist erlaubt.",
- "options": {
- "primary": "PRIMÄR",
- "disabled": "DEAKTIVIERT",
- "secondary": "SEKUNDÄR"
- }
- },
- "psk": {
- "label": "Vorher verteilter Schlüssel",
- "description": "Unterstützte PSK-Längen: 256-Bit, 128-Bit, 8-Bit, leer (0-Bit)",
- "generate": "Erzeugen"
- },
- "name": {
- "label": "Name",
- "description": "Ein eindeutiger Name für den Kanal <12 Bytes. Leer lassen für Standard."
- },
- "uplinkEnabled": {
- "label": "Uplink aktiviert",
- "description": "Nachrichten vom lokalen Netz über MQTT versenden"
- },
- "downlinkEnabled": {
- "label": "Downlink aktiviert",
- "description": "Nachrichten von MQTT im lokalen Netz versenden"
- },
- "positionPrecision": {
- "label": "Standort",
- "description": "Die Genauigkeit des Standorts, die in diesem Kanal geteilt werden soll. Kann deaktiviert werden.",
- "options": {
- "none": "Standort nicht freigeben",
- "precise": "Genauer Standort",
- "metric_km23": "Innerhalb von 23 Kilometern",
- "metric_km12": "Innerhalb von 12 Kilometern",
- "metric_km5_8": "Innerhalb von 5,8 Kilometern",
- "metric_km2_9": "Innerhalb von 2,9 Kilometern",
- "metric_km1_5": "Innerhalb von 1,5 Kilometern",
- "metric_m700": "Innerhalb von 700 Metern",
- "metric_m350": "Innerhalb von 350 Metern",
- "metric_m200": "Innerhalb von 200 Metern",
- "metric_m90": "Innerhalb von 90 Metern",
- "metric_m50": "Innerhalb von 50 Metern",
- "imperial_mi15": "Innerhalb von 15 Meilen",
- "imperial_mi7_3": "Innerhalb von 7,3 Meilen",
- "imperial_mi3_6": "Innerhalb von 3,6 Meilen",
- "imperial_mi1_8": "Innerhalb von 1,8 Meilen",
- "imperial_mi0_9": "Innerhalb von 0,9 Meilen",
- "imperial_mi0_5": "Innerhalb von 0,5 Meilen",
- "imperial_mi0_2": "Innerhalb von 0,2 Meilen",
- "imperial_ft600": "Innerhalb von 600 Fuß",
- "imperial_ft300": "Innerhalb von 300 Fuß",
- "imperial_ft150": "Innerhalb von 150 Fuß"
- }
- }
+ "page": {
+ "sectionLabel": "Kanäle",
+ "channelName": "Kanal {{channelName}}",
+ "broadcastLabel": "Primär",
+ "channelIndex": "Kanal {{index}}",
+ "import": "Importieren",
+ "export": "Exportieren"
+ },
+ "validation": {
+ "pskInvalid": "Bitte geben Sie einen gültigen {{bits}} Bit PSK Schlüssel ein."
+ },
+ "settings": {
+ "label": "Kanaleinstellungen",
+ "description": "Verschlüsselung, MQTT & sonstige Einstellungen"
+ },
+ "role": {
+ "label": "Rolle",
+ "description": "Gerätetelemetrie wird über den PRIMÄR Kanal gesendet. Nur ein PRIMÄR Kanal ist erlaubt.",
+ "options": {
+ "primary": "PRIMÄR",
+ "disabled": "DEAKTIVIERT",
+ "secondary": "SEKUNDÄR"
+ }
+ },
+ "psk": {
+ "label": "Vorher verteilter Schlüssel",
+ "description": "Unterstützte PSK-Längen: 256-Bit, 128-Bit, 8-Bit, leer (0-Bit)",
+ "generate": "Erzeugen"
+ },
+ "name": {
+ "label": "Name",
+ "description": "Ein eindeutiger Name für den Kanal <12 Bytes. Leer lassen für Standard."
+ },
+ "uplinkEnabled": {
+ "label": "Uplink aktiviert",
+ "description": "Nachrichten vom lokalen Netz über MQTT versenden"
+ },
+ "downlinkEnabled": {
+ "label": "Downlink aktiviert",
+ "description": "Nachrichten von MQTT im lokalen Netz versenden"
+ },
+ "positionPrecision": {
+ "label": "Standort",
+ "description": "Die Genauigkeit des Standorts, die in diesem Kanal geteilt werden soll. Kann deaktiviert werden.",
+ "options": {
+ "none": "Standort nicht freigeben",
+ "precise": "Genauer Standort",
+ "metric_km23": "Innerhalb von 23 Kilometern",
+ "metric_km12": "Innerhalb von 12 Kilometern",
+ "metric_km5_8": "Innerhalb von 5,8 Kilometern",
+ "metric_km2_9": "Innerhalb von 2,9 Kilometern",
+ "metric_km1_5": "Innerhalb von 1,5 Kilometern",
+ "metric_m700": "Innerhalb von 700 Metern",
+ "metric_m350": "Innerhalb von 350 Metern",
+ "metric_m200": "Innerhalb von 200 Metern",
+ "metric_m90": "Innerhalb von 90 Metern",
+ "metric_m50": "Innerhalb von 50 Metern",
+ "imperial_mi15": "Innerhalb von 15 Meilen",
+ "imperial_mi7_3": "Innerhalb von 7,3 Meilen",
+ "imperial_mi3_6": "Innerhalb von 3,6 Meilen",
+ "imperial_mi1_8": "Innerhalb von 1,8 Meilen",
+ "imperial_mi0_9": "Innerhalb von 0,9 Meilen",
+ "imperial_mi0_5": "Innerhalb von 0,5 Meilen",
+ "imperial_mi0_2": "Innerhalb von 0,2 Meilen",
+ "imperial_ft600": "Innerhalb von 600 Fuß",
+ "imperial_ft300": "Innerhalb von 300 Fuß",
+ "imperial_ft150": "Innerhalb von 150 Fuß"
+ }
+ }
}
diff --git a/packages/web/public/i18n/locales/de-DE/commandPalette.json b/packages/web/public/i18n/locales/de-DE/commandPalette.json
index 637a01b3..ecc93c48 100644
--- a/packages/web/public/i18n/locales/de-DE/commandPalette.json
+++ b/packages/web/public/i18n/locales/de-DE/commandPalette.json
@@ -15,7 +15,6 @@
"messages": "Nachrichten",
"map": "Karte",
"config": "Einstellungen",
- "channels": "Kanäle",
"nodes": "Knoten"
}
},
@@ -45,7 +44,8 @@
"label": "Debug",
"command": {
"reconfigure": "Neu einrichten",
- "clearAllStoredMessages": "Alle gespeicherten Nachrichten löschen"
+ "clearAllStoredMessages": "Alle gespeicherten Nachrichten löschen",
+ "clearAllStores": "Lösche den gesamten lokalen Speicher"
}
}
}
diff --git a/packages/web/public/i18n/locales/de-DE/common.json b/packages/web/public/i18n/locales/de-DE/common.json
index 272f5652..ec3d84f5 100644
--- a/packages/web/public/i18n/locales/de-DE/common.json
+++ b/packages/web/public/i18n/locales/de-DE/common.json
@@ -1,142 +1,157 @@
{
- "button": {
- "apply": "Anwenden",
- "backupKey": "Schlüssel sichern",
- "cancel": "Abbrechen",
- "clearMessages": "Nachrichten löschen",
- "close": "Schließen",
- "confirm": "Bestätigen",
- "delete": "Löschen",
- "dismiss": "Tastatur ausblenden",
- "download": "Herunterladen",
- "export": "Exportieren",
- "generate": "Erzeugen",
- "regenerate": "Neu erzeugen",
- "import": "Importieren",
- "message": "Nachricht",
- "now": "Jetzt",
- "ok": "Ok",
- "print": "Drucken",
- "remove": "Entfernen",
- "requestNewKeys": "Neue Schlüssel anfordern",
- "requestPosition": "Standort anfordern",
- "reset": "Zurücksetzen",
- "save": "Speichern",
- "scanQr": "QR Code scannen",
- "traceRoute": "Route verfolgen",
- "submit": "Absenden"
- },
- "app": {
- "title": "Meshtastic",
- "fullTitle": "Meshtastic Web-Applikation"
- },
- "loading": "Wird geladen...",
- "unit": {
- "cps": "CPS",
- "dbm": "dBm",
- "hertz": "Hz",
- "hop": {
- "one": "Sprung",
- "plural": "Sprünge"
- },
- "hopsAway": {
- "one": "{{count}} Sprung entfernt",
- "plural": "{{count}} Sprünge entfernt",
- "unknown": "Sprungweite unbekannt"
- },
- "megahertz": "MHz",
- "raw": "Einheitslos",
- "meter": {
- "one": "Meter",
- "plural": "Meter",
- "suffix": "m"
- },
- "minute": {
- "one": "Minute",
- "plural": "Minuten"
- },
- "hour": {
- "one": "Stunde",
- "plural": "Stunden"
- },
- "millisecond": {
- "one": "Millisekunde",
- "plural": "Millisekunden",
- "suffix": "ms"
- },
- "second": {
- "one": "Sekunde",
- "plural": "Sekunden"
- },
- "day": {
- "one": "Tag",
- "plural": "Tage"
- },
- "month": {
- "one": "Monat",
- "plural": "Monate"
- },
- "year": {
- "one": "Jahr",
- "plural": "Jahre"
- },
- "snr": "SNR",
- "volt": {
- "one": "Volt",
- "plural": "Volt",
- "suffix": "V"
- },
- "record": {
- "one": "Datensatz",
- "plural": "Datensätze"
- }
- },
- "security": {
- "0bit": "Leer",
- "8bit": "8 Bit",
- "128bit": "128 Bit",
- "256bit": "256 Bit"
- },
- "unknown": {
- "longName": "Unbekannt",
- "shortName": "UNB",
- "notAvailable": "Keine Angaben",
- "num": "???"
- },
- "nodeUnknownPrefix": "!",
- "unset": "NICHT GESETZT",
- "fallbackName": "Meshtastic {{last4}}",
- "node": "Knoten",
- "formValidation": {
- "unsavedChanges": "Ungespeicherte Änderungen",
- "tooBig": {
- "string": "Zu lang, erwarte maximal {{maximum}} Zeichen.",
- "number": "Zu groß, erwartete eine Zahl kleiner oder gleich {{maximum}}.",
- "bytes": "Zu groß, erwarte maximal {{params.maximum}} Bytes."
- },
- "tooSmall": {
- "string": "Zu kurz, erwartete mindestens {{minimum}} Zeichen.",
- "number": "Zu klein, erwartete eine Zahl größer oder gleich {{minimum}}."
- },
- "invalidFormat": {
- "ipv4": "Ungültiges Format, erwartete eine IPv4 Adresse.",
- "key": "Ungültiges Format, erwartet einen Base64-kodierten vor verteilten Schlüssel (PSK)."
- },
- "invalidType": {
- "number": "Ungültiger Typ, erwartete eine Zahl."
- },
- "pskLength": {
- "0bit": "Der Schlüssel muss leer sein.",
- "8bit": "Der administrative Schlüssel muss ein vor verteilter 8 Bit Schlüssel (PSK) sein.",
- "128bit": "Der administrative Schlüssel muss ein vor verteilter 128 Bit Schlüssel (PSK) sein.",
- "256bit": "Der administrative Schlüssel muss ein vor verteilter 256 Bit Schlüssel (PSK) sein."
- },
- "required": {
- "generic": "Dies ist ein Pflichtfeld.",
- "managed": "Mindestens ein administrativer Schlüssel wird benötigt, um diesen Knoten zu verwalten",
- "key": "Schlüssel erforderlich."
- }
- },
- "yes": "Ja",
- "no": "Nein"
+ "button": {
+ "apply": "Anwenden",
+ "backupKey": "Schlüssel sichern",
+ "cancel": "Abbrechen",
+ "clearMessages": "Nachrichten löschen",
+ "close": "Schließen",
+ "confirm": "Bestätigen",
+ "delete": "Löschen",
+ "dismiss": "Tastatur ausblenden",
+ "download": "Herunterladen",
+ "export": "Exportieren",
+ "generate": "Erzeugen",
+ "regenerate": "Neu erzeugen",
+ "import": "Importieren",
+ "message": "Nachricht",
+ "now": "Jetzt",
+ "ok": "Ok",
+ "print": "Drucken",
+ "remove": "Entfernen",
+ "requestNewKeys": "Neue Schlüssel anfordern",
+ "requestPosition": "Standort anfordern",
+ "reset": "Zurücksetzen",
+ "save": "Speichern",
+ "scanQr": "QR Code scannen",
+ "traceRoute": "Route verfolgen",
+ "submit": "Absenden"
+ },
+ "app": {
+ "title": "Meshtastic",
+ "fullTitle": "Meshtastic Web-Applikation"
+ },
+ "loading": "Wird geladen...",
+ "unit": {
+ "cps": "CPS",
+ "dbm": "dBm",
+ "hertz": "Hz",
+ "hop": {
+ "one": "Sprung",
+ "plural": "Sprünge"
+ },
+ "hopsAway": {
+ "one": "{{count}} Sprung entfernt",
+ "plural": "{{count}} Sprünge entfernt",
+ "unknown": "Sprungweite unbekannt"
+ },
+ "megahertz": "MHz",
+ "raw": "Einheitslos",
+ "meter": {
+ "one": "Meter",
+ "plural": "Meter",
+ "suffix": "m"
+ },
+ "kilometer": {
+ "one": "Kilometer",
+ "plural": "Kilometer",
+ "suffix": "km"
+ },
+ "minute": {
+ "one": "Minute",
+ "plural": "Minuten"
+ },
+ "hour": {
+ "one": "Stunde",
+ "plural": "Stunden"
+ },
+ "millisecond": {
+ "one": "Millisekunde",
+ "plural": "Millisekunden",
+ "suffix": "ms"
+ },
+ "second": {
+ "one": "Sekunde",
+ "plural": "Sekunden"
+ },
+ "day": {
+ "one": "Tag",
+ "plural": "Tage",
+ "today": "Heute",
+ "yesterday": "Gestern"
+ },
+ "month": {
+ "one": "Monat",
+ "plural": "Monate"
+ },
+ "year": {
+ "one": "Jahr",
+ "plural": "Jahre"
+ },
+ "snr": "SNR",
+ "volt": {
+ "one": "Volt",
+ "plural": "Volt",
+ "suffix": "V"
+ },
+ "record": {
+ "one": "Datensatz",
+ "plural": "Datensätze"
+ },
+ "degree": {
+ "one": "Grad",
+ "plural": "Grad",
+ "suffix": "°"
+ }
+ },
+ "security": {
+ "0bit": "Leer",
+ "8bit": "8 Bit",
+ "128bit": "128 Bit",
+ "256bit": "256 Bit"
+ },
+ "unknown": {
+ "longName": "Unbekannt",
+ "shortName": "UNB",
+ "notAvailable": "Keine Angaben",
+ "num": "???"
+ },
+ "nodeUnknownPrefix": "!",
+ "unset": "NICHT GESETZT",
+ "fallbackName": "Meshtastic {{last4}}",
+ "node": "Knoten",
+ "formValidation": {
+ "unsavedChanges": "Ungespeicherte Änderungen",
+ "tooBig": {
+ "string": "Zu lang, erwarte maximal {{maximum}} Zeichen.",
+ "number": "Zu groß, erwartete eine Zahl kleiner oder gleich {{maximum}}.",
+ "bytes": "Zu groß, erwarte maximal {{params.maximum}} Bytes."
+ },
+ "tooSmall": {
+ "string": "Zu kurz, erwartete mindestens {{minimum}} Zeichen.",
+ "number": "Zu klein, erwartete eine Zahl größer oder gleich {{minimum}}."
+ },
+ "invalidFormat": {
+ "ipv4": "Ungültiges Format, erwartete eine IPv4 Adresse.",
+ "key": "Ungültiges Format, erwartet einen Base64-kodierten vor verteilten Schlüssel (PSK)."
+ },
+ "invalidType": {
+ "number": "Ungültiger Typ, erwartete eine Zahl."
+ },
+ "pskLength": {
+ "0bit": "Der Schlüssel muss leer sein.",
+ "8bit": "Der administrative Schlüssel muss ein vor verteilter 8 Bit Schlüssel (PSK) sein.",
+ "128bit": "Der administrative Schlüssel muss ein vor verteilter 128 Bit Schlüssel (PSK) sein.",
+ "256bit": "Der administrative Schlüssel muss ein vor verteilter 256 Bit Schlüssel (PSK) sein."
+ },
+ "required": {
+ "generic": "Dies ist ein Pflichtfeld.",
+ "managed": "Mindestens ein administrativer Schlüssel wird benötigt, um diesen Knoten zu verwalten",
+ "key": "Schlüssel erforderlich."
+ },
+ "invalidOverrideFreq": {
+ "number": "Ungültiges Format, erwartet wurde ein Wert im Bereich 410–930 MHz oder 0 (Standard verwenden)."
+ }
+ },
+ "yes": "Ja",
+ "no": "Nein"
}
diff --git a/packages/web/public/i18n/locales/de-DE/config.json b/packages/web/public/i18n/locales/de-DE/config.json
new file mode 100644
index 00000000..4bc183a0
--- /dev/null
+++ b/packages/web/public/i18n/locales/de-DE/config.json
@@ -0,0 +1,458 @@
+{
+ "page": {
+ "title": "Einstellungen",
+ "tabUser": "Benutzer",
+ "tabChannels": "Kanäle",
+ "tabBluetooth": "Bluetooth",
+ "tabDevice": "Gerät",
+ "tabDisplay": "Display",
+ "tabLora": "LoRa",
+ "tabNetwork": "Netzwerk",
+ "tabPosition": "Standort",
+ "tabPower": "Leistung",
+ "tabSecurity": "Sicherheit"
+ },
+ "sidebar": {
+ "label": "Einstellungen"
+ },
+ "device": {
+ "title": "Geräteeinstellungen",
+ "description": "Einstellungen für dieses Gerät",
+ "buttonPin": {
+ "description": "GPIO für Taste überschreiben",
+ "label": "GPIO Taste"
+ },
+ "buzzerPin": {
+ "description": "GPIO für Summer überschreiben",
+ "label": "GPIO Summer"
+ },
+ "disableTripleClick": {
+ "description": "Dreifachklick deaktivieren",
+ "label": "Dreifachklick deaktivieren"
+ },
+ "doubleTapAsButtonPress": {
+ "description": "Doppeltes Tippen als Taste verwenden",
+ "label": "Doppelklick als Tastendruck"
+ },
+ "ledHeartbeatDisabled": {
+ "description": "Puls LED deaktivieren",
+ "label": "Herzschlag LED deaktivieren"
+ },
+ "nodeInfoBroadcastInterval": {
+ "description": "Häufigkeit der Übertragung von Knoteninformationen",
+ "label": "Knoteninfo Übertragungsintervall"
+ },
+ "posixTimezone": {
+ "description": "Zeichenfolge der POSIX Zeitzone für dieses Gerät",
+ "label": "POSIX Zeitzone"
+ },
+ "rebroadcastMode": {
+ "description": "Wie Weiterleitungen behandelt werden",
+ "label": "Weiterleitungsmodus"
+ },
+ "role": {
+ "description": "In welcher Rolle das Gerät im Netz arbeitet",
+ "label": "Rolle"
+ }
+ },
+ "bluetooth": {
+ "title": "Bluetooth Einstellungen",
+ "description": "Einstellungen für das Bluetooth Modul",
+ "note": "Hinweis: Einige Geräte (ESP32) können nicht gleichzeitig Bluetooth und WLAN verwenden.",
+ "enabled": {
+ "description": "Bluetooth aktivieren oder deaktivieren",
+ "label": "Aktiviert"
+ },
+ "pairingMode": {
+ "description": "PIN Nummer Auswahlverhalten",
+ "label": "Kopplungsmodus"
+ },
+ "pin": {
+ "description": "PIN Nummer zum Verbinden verwenden",
+ "label": "PIN Nummer"
+ }
+ },
+ "display": {
+ "description": "Einstellungen für die Geräteanzeige",
+ "title": "Anzeigeeinstellungen",
+ "headingBold": {
+ "description": "Überschrifttext fett darstellen",
+ "label": "Fette Überschrift"
+ },
+ "carouselDelay": {
+ "description": "Bestimmt wie schnell die Fenster durch gewechselt werden",
+ "label": "Karussellintervall"
+ },
+ "compassNorthTop": {
+ "description": "Norden im Kompass immer oben anzeigen",
+ "label": "Kompass Norden oben"
+ },
+ "displayMode": {
+ "description": "Variante des Anzeigelayout",
+ "label": "Anzeigemodus"
+ },
+ "displayUnits": {
+ "description": "Zeige metrische oder imperiale Einheiten",
+ "label": "Anzeigeeinheiten"
+ },
+ "flipScreen": {
+ "description": "Anzeige um 180 Grad drehen",
+ "label": "Anzeige drehen"
+ },
+ "gpsDisplayUnits": {
+ "description": "Anzeigeformat der Koordinaten",
+ "label": "GPS Anzeigeformat"
+ },
+ "oledType": {
+ "description": "Art des OLED Anzeige, die an dem Gerät angeschlossen ist",
+ "label": "OLED Typ"
+ },
+ "screenTimeout": {
+ "description": "Anzeige nach dieser Zeit automatisch ausschalten",
+ "label": "Anzeigeabschaltung"
+ },
+ "twelveHourClock": {
+ "description": "12-Stunden Format benutzen",
+ "label": "12-Stunden Uhr"
+ },
+ "wakeOnTapOrMotion": {
+ "description": "Gerät durch Tippen oder Bewegung aufwecken",
+ "label": "Aufwachen durch Tippen oder Bewegung"
+ }
+ },
+ "lora": {
+ "title": "Netzeinstellungen",
+ "description": "Einstellungen für das LoRa Netz",
+ "bandwidth": {
+ "description": "Kanalbandbreite in MHz",
+ "label": "Bandbreite"
+ },
+ "boostedRxGain": {
+ "description": "Erhöhte Empfangsverstärkung",
+ "label": "Erhöhte Empfangsverstärkung"
+ },
+ "codingRate": {
+ "description": "Kodierrate",
+ "label": "Fehlerkorrektur"
+ },
+ "frequencyOffset": {
+ "description": "Frequenzversatz zur Kalibrierung von Oszillatorfehlern",
+ "label": "Frequenzversatz"
+ },
+ "frequencySlot": {
+ "description": "LoRa Frequenzschlitz",
+ "label": "Frequenzschlitz"
+ },
+ "hopLimit": {
+ "description": "Maximale Sprungweite",
+ "label": "Sprungweite"
+ },
+ "ignoreMqtt": {
+ "description": "MQTT Nachrichten nicht über das Netz weiterleiten",
+ "label": "MQTT ignorieren"
+ },
+ "modemPreset": {
+ "description": "Modem Voreinstellung die verwendet wird",
+ "label": "Modem Voreinstellungen"
+ },
+ "okToMqtt": {
+ "description": "Wenn auf aktiviert, zeigt diese Einstellung an, dass der Benutzer das Weiterleiten von Nachrichten über MQTT akzeptiert. Wenn deaktiviert, werden entfernte Knoten aufgefordert, Nachrichten nicht über MQTT weiterzuleiten",
+ "label": "OK für MQTT"
+ },
+ "overrideDutyCycle": {
+ "description": "Duty-Cycle überschreiben",
+ "label": "Duty-Cycle überschreiben"
+ },
+ "overrideFrequency": {
+ "description": "Sendefrequenz überschreiben (MHz)",
+ "label": "Sendefrequenz überschreiben"
+ },
+ "region": {
+ "description": "Legt die Region für Ihren Knoten fest",
+ "label": "Region"
+ },
+ "spreadingFactor": {
+ "description": "Anzahl der Symbole zur Kodierung der Nutzdaten",
+ "label": "Spreizfaktor"
+ },
+ "transmitEnabled": {
+ "description": "Sender (TX) des LoRa Funkgerätes aktivieren/deaktivieren",
+ "label": "Senden aktiviert"
+ },
+ "transmitPower": {
+ "description": "Maximale Sendeleistung",
+ "label": "Sendeleistung"
+ },
+ "usePreset": {
+ "description": "Eine der vordefinierten Modem Voreinstellungen verwenden",
+ "label": "Voreinstellung verwenden"
+ },
+ "meshSettings": {
+ "description": "Einstellungen für das LoRa Netz",
+ "label": "Netzeinstellungen"
+ },
+ "waveformSettings": {
+ "description": "Einstellungen für die LoRa Wellenform",
+ "label": "Einstellungen der Wellenform"
+ },
+ "radioSettings": {
+ "label": "Funkeinstellungen",
+ "description": "Einstellungen für das LoRa Funkgerät"
+ }
+ },
+ "network": {
+ "title": "WLAN Einstellungen",
+ "description": "WLAN Funkeinstellungen",
+ "note": "Hinweis: Einige Geräte (ESP32) können nicht gleichzeitig Bluetooth und WLAN verwenden.",
+ "addressMode": {
+ "description": "Auswahl der IP Adressenzuweisung",
+ "label": "IP Adressenmodus"
+ },
+ "dns": {
+ "description": "DNS Server",
+ "label": "DNS"
+ },
+ "ethernetEnabled": {
+ "description": "Aktivieren oder deaktivieren sie den Ethernet Anschluss",
+ "label": "Aktiviert"
+ },
+ "gateway": {
+ "description": "Standard Gateway",
+ "label": "Gateway"
+ },
+ "ip": {
+ "description": "IP Adresse",
+ "label": "IP"
+ },
+ "psk": {
+ "description": "Netzwerkpasswort",
+ "label": "PSK"
+ },
+ "ssid": {
+ "description": "Netzwerkname",
+ "label": "SSID"
+ },
+ "subnet": {
+ "description": "Subnetzmaske",
+ "label": "Subnetz"
+ },
+ "wifiEnabled": {
+ "description": "Aktivieren oder deaktivieren Sie die WLAN Übertragung",
+ "label": "Aktiviert"
+ },
+ "meshViaUdp": {
+ "label": "Netz über UDP"
+ },
+ "ntpServer": {
+ "label": "NTP Server"
+ },
+ "rsyslogServer": {
+ "label": "Rsyslog Server"
+ },
+ "ethernetConfigSettings": {
+ "description": "Einstellung des Ethernet Ports",
+ "label": "Ethernet Einstellung"
+ },
+ "ipConfigSettings": {
+ "description": "Einstellung der IP Adresse",
+ "label": "IP Adresseinstellungen"
+ },
+ "ntpConfigSettings": {
+ "description": "NTP Server Einstellungen",
+ "label": "NTP Einstellungen"
+ },
+ "rsyslogConfigSettings": {
+ "description": "Rsyslog Einstellung",
+ "label": "Rsyslog Einstellung"
+ },
+ "udpConfigSettings": {
+ "description": "UDP über Netz Einstellung",
+ "label": "UDP Konfiguration"
+ }
+ },
+ "position": {
+ "title": "Standorteinstellung",
+ "description": "Einstellungen für das Standortmodul",
+ "broadcastInterval": {
+ "description": "Wie oft Ihr Standort über das Netz gesendet wird",
+ "label": "Übertragungsintervall"
+ },
+ "enablePin": {
+ "description": "Überschreiben des GPIO der das GPS-Modul aktiviert",
+ "label": "GPIO GPS aktivieren"
+ },
+ "fixedPosition": {
+ "description": "GPS Standort nicht senden, sondern manuell angegeben",
+ "label": "Fester Standort"
+ },
+ "gpsMode": {
+ "description": "Einstellung, ob GPS des Geräts aktiviert, deaktiviert oder nicht vorhanden ist",
+ "label": "GPS Modus"
+ },
+ "gpsUpdateInterval": {
+ "description": "Wie oft ein GPS Standort ermittelt werden soll",
+ "label": "GPS Aktualisierungsintervall"
+ },
+ "positionFlags": {
+ "description": "Optionalen, die bei der Zusammenstellung von Standortnachrichten enthalten sein sollen. Je mehr Optionen ausgewählt werden, desto größer wird die Nachricht und die längere Übertragungszeit erhöht das Risiko für einen Nachrichtenverlust.",
+ "label": "Standort Optionen"
+ },
+ "receivePin": {
+ "description": "GPIO Pin für serielles Empfangen (RX) des GPS-Moduls überschreiben",
+ "label": "GPIO Empfangen"
+ },
+ "smartPositionEnabled": {
+ "description": "Standort nur verschicken, wenn eine sinnvolle Standortänderung stattgefunden hat",
+ "label": "Intelligenten Standort aktivieren"
+ },
+ "smartPositionMinDistance": {
+ "description": "Mindestabstand (in Meter), die vor dem Senden einer Standortaktualisierung zurückgelegt werden muss",
+ "label": "Minimale Entfernung für intelligenten Standort"
+ },
+ "smartPositionMinInterval": {
+ "description": "Minimales Intervall (in Sekunden), das vor dem Senden einer Standortaktualisierung vergangen sein muss",
+ "label": "Minimales Intervall für intelligenten Standort"
+ },
+ "transmitPin": {
+ "description": "GPIO Pin für serielles Senden (TX) des GPS-Moduls überschreiben",
+ "label": "GPIO Senden"
+ },
+ "intervalsSettings": {
+ "description": "Wie oft Standortaktualisierungen gesendet werden",
+ "label": "Intervalle"
+ },
+ "flags": {
+ "placeholder": "Standort Optionen auswählen",
+ "altitude": "Höhe",
+ "altitudeGeoidalSeparation": "Geoidale Höhentrennung",
+ "altitudeMsl": "Höhe in Bezug auf Meeresspiegel",
+ "dop": "Dilution of Präzision (DOP) PDOP standardmäßig verwenden",
+ "hdopVdop": "Wenn DOP gesetzt ist, wird HDOP / VDOP anstelle von PDOP verwendet",
+ "numSatellites": "Anzahl Satelliten",
+ "sequenceNumber": "Sequenznummer",
+ "timestamp": "Zeitstempel",
+ "unset": "Nicht konfiguriert",
+ "vehicleHeading": "Fahrzeugsteuerkurs",
+ "vehicleSpeed": "Fahrzeuggeschwindigkeit"
+ }
+ },
+ "power": {
+ "adcMultiplierOverride": {
+ "description": "Zur Optimierung der Genauigkeit bei der Akkuspannungsmessung",
+ "label": "ADC Multiplikationsfaktor"
+ },
+ "ina219Address": {
+ "description": "Adresse des INA219 Stromsensors",
+ "label": "INA219 Adresse"
+ },
+ "lightSleepDuration": {
+ "description": "Wie lange das Gerät im leichten Schlafmodus ist",
+ "label": "Dauer leichter Schlafmodus"
+ },
+ "minimumWakeTime": {
+ "description": "Minimale Zeitspanne für die das Gerät aktiv bleibt, nachdem es eine Nachricht empfangen hat",
+ "label": "Minimale Aufwachzeit"
+ },
+ "noConnectionBluetoothDisabled": {
+ "description": "Wenn das Gerät keine Bluetooth-Verbindung erhält, wird BLE nach dieser Zeit deaktiviert",
+ "label": "Keine Verbindung, Bluetooth deaktiviert"
+ },
+ "powerSavingEnabled": {
+ "description": "Auswählen, wenn aus einer Stromquelle mit niedriger Kapazität (z.B. Solar) betrieben wird, um den Stromverbrauch so weit wie möglich zu minimieren.",
+ "label": "Energiesparmodus aktivieren"
+ },
+ "shutdownOnBatteryDelay": {
+ "description": "Verzögerung bis zum Abschalten der Knoten sich im Akkubetrieb befindet. 0 für unbegrenzt",
+ "label": "Verzögerung Akkuabschaltung"
+ },
+ "superDeepSleepDuration": {
+ "description": "Wie lange das Gerät im supertiefen Schlafmodus ist",
+ "label": "Dauer Supertiefschlaf"
+ },
+ "powerConfigSettings": {
+ "description": "Einstellungen für das Energiemodul",
+ "label": "Energie Einstellungen"
+ },
+ "sleepSettings": {
+ "description": "Einstellungen Ruhezustand für das Energiemodul",
+ "label": "Einstellung Ruhezustand"
+ }
+ },
+ "security": {
+ "description": "Sicherheitseinstellungen",
+ "title": "Sicherheitseinstellungen",
+ "button_backupKey": "Schlüssel sichern",
+ "adminChannelEnabled": {
+ "description": "Erlaubt die Gerätesteuerung über den unsicheren, veralteten administrativen Kanal",
+ "label": "Veraltete Administrierung erlauben"
+ },
+ "enableDebugLogApi": {
+ "description": "Ausgabe von Fehlerprotokollen in Echtzeit über die serielle Schnittstelle, Anzeige und Export von Standort reduzierten Geräteprotokollen über Bluetooth",
+ "label": "Debug-Protokoll API aktivieren"
+ },
+ "managed": {
+ "description": "Wenn aktiviert, können die Geräteeinstellungen nur von einem entfernten Administratorknoten über administrative Nachrichten geändert werden. Aktivieren Sie diese Option nur, wenn mindestens ein geeigneter Administratorknoten eingerichtet wurde, und dessen öffentlicher Schlüssel in einem der obigen Felder gespeichert wurde.\n",
+ "label": "Verwaltet"
+ },
+ "privateKey": {
+ "description": "Wird verwendet, um einen gemeinsamen Schlüssel mit einem entfernten Gerät zu erstellen",
+ "label": "Privater Schlüssel"
+ },
+ "publicKey": {
+ "description": "Wird an andere Knoten im Netz gesendet, damit diese einen gemeinsamen geheimen Schlüssel berechnen können",
+ "label": "Öffentlicher Schlüssel"
+ },
+ "primaryAdminKey": {
+ "description": "Erster öffentlicher Schlüssel, der berechtigt ist, administrative Nachrichten an diesen Knoten zu senden",
+ "label": "Erster Admin-Schlüssel"
+ },
+ "secondaryAdminKey": {
+ "description": "Zweiter öffentlicher Schlüssel, der berechtigt ist, administrative Nachrichten an diesen Knoten zu senden",
+ "label": "Zweiter Admin-Schlüssel"
+ },
+ "serialOutputEnabled": {
+ "description": "Serielle Konsole über die Stream-API",
+ "label": "Serielle Ausgabe aktiviert"
+ },
+ "tertiaryAdminKey": {
+ "description": "Dritter öffentlicher Schlüssel, der berechtigt ist, administrative Nachrichten an diesen Knoten zu senden",
+ "label": "Dritter Admin-Schlüssel"
+ },
+ "adminSettings": {
+ "description": "Administrator Einstellungen",
+ "label": "Administrator Einstellungen"
+ },
+ "loggingSettings": {
+ "description": "Einstellungen für die Protokollierung",
+ "label": "Protokolleinstellungen"
+ }
+ },
+ "user": {
+ "title": "Benutzereinstellungen",
+ "description": "Konfigurieren Sie Ihren Gerätenamen und Identitätseinstellungen",
+ "longName": {
+ "label": "Langer Name",
+ "description": "Ihr vollständiger Anzeigename (1-40 Zeichen)",
+ "validation": {
+ "min": "Langer Name muss mindestens 1 Zeichen lang sein",
+ "max": "Langer Name muss mindestens 40 Zeichen lang sein"
+ }
+ },
+ "shortName": {
+ "label": "Kurzname",
+ "description": "Ihr abgekürzter Name (2-4 Zeichen)",
+ "validation": {
+ "min": "Kurzname muss mindestens 2 Zeichen lang sein",
+ "max": "Kurzname muss mindestens 4 Zeichen lang sein"
+ }
+ },
+ "isUnmessageable": {
+ "label": "Nicht erreichbar",
+ "description": "Wird verwendet, um nicht überwachte Knoten oder Infrastrukturknoten zu identifizieren, sodass Nachrichten nicht an Knoten gesendet werden können, die niemals antworten."
+ },
+ "isLicensed": {
+ "label": "Amateurfunk lizenziert",
+ "description": "Aktivieren Sie diese Option, wenn Sie ein lizenzierter Amateurfunker sind. Durch Aktivieren dieser Option wird die Verschlüsselung deaktiviert und sie ist nicht mit dem standardmäßigen Meshtastic Netzwerk kompatibel."
+ }
+ }
+}
diff --git a/packages/web/public/i18n/locales/de-DE/dashboard.json b/packages/web/public/i18n/locales/de-DE/dashboard.json
index 2ee805ec..5ec2de3d 100644
--- a/packages/web/public/i18n/locales/de-DE/dashboard.json
+++ b/packages/web/public/i18n/locales/de-DE/dashboard.json
@@ -1,12 +1,12 @@
{
- "dashboard": {
- "title": "Verbundene Geräte",
- "description": "Verwalten Sie Ihre verbundenen Meshtastic Geräte.",
- "connectionType_ble": "BLE",
- "connectionType_serial": "Seriell",
- "connectionType_network": "Netzwerk",
- "noDevicesTitle": "Keine Geräte verbunden",
- "noDevicesDescription": "Verbinden Sie ein neues Gerät, um zu beginnen.",
- "button_newConnection": "Neue Verbindung"
- }
+ "dashboard": {
+ "title": "Verbundene Geräte",
+ "description": "Verwalten Sie Ihre verbundenen Meshtastic Geräte.",
+ "connectionType_ble": "BLE",
+ "connectionType_serial": "Seriell",
+ "connectionType_network": "Netzwerk",
+ "noDevicesTitle": "Keine Geräte verbunden",
+ "noDevicesDescription": "Verbinden Sie ein neues Gerät, um zu beginnen.",
+ "button_newConnection": "Neue Verbindung"
+ }
}
diff --git a/packages/web/public/i18n/locales/de-DE/dialog.json b/packages/web/public/i18n/locales/de-DE/dialog.json
index aef1c254..37a8a5be 100644
--- a/packages/web/public/i18n/locales/de-DE/dialog.json
+++ b/packages/web/public/i18n/locales/de-DE/dialog.json
@@ -1,193 +1,221 @@
{
- "deleteMessages": {
- "description": "Diese Aktion wird den Nachrichtenverlauf löschen. Dies kann nicht rückgängig gemacht werden. Sind Sie sicher, dass Sie fortfahren möchten?",
- "title": "Alle Nachrichten löschen"
- },
- "deviceName": {
- "description": "Das Gerät wird neu gestartet, sobald die Einstellung gespeichert ist.",
- "longName": "Langer Name",
- "shortName": "Kurzname",
- "title": "Gerätename ändern",
- "validation": {
- "longNameMax": "Lange Name darf nicht mehr als 40 Zeichen lang sein",
- "shortNameMax": "Kurzname darf nicht mehr als 4 Zeichen lang sein",
- "longNameMin": "Langer Name muss mindestens 1 Zeichen lang sein",
- "shortNameMin": "Kurzname muss mindestens 1 Zeichen lang sein"
- }
- },
- "import": {
- "description": "Die aktuelle LoRa Einstellung wird überschrieben.",
- "error": {
- "invalidUrl": "Ungültige Meshtastic URL"
- },
- "channelPrefix": "Kanal: ",
- "channelSetUrl": "Kanalsammlung / QR-Code URL",
- "channels": "Kanäle:",
- "usePreset": "Voreinstellung verwenden?",
- "title": "Kanalsammlung importieren"
- },
- "locationResponse": {
- "title": "Standort: {{identifier}}",
- "altitude": "Höhe: ",
- "coordinates": "Koordinaten: ",
- "noCoordinates": "Keine Koordinaten"
- },
- "pkiRegenerateDialog": {
- "title": "Vorab verteilten Schlüssel (PSK) neu erstellen?",
- "description": "Sind Sie sicher, dass Sie den vorab verteilten Schlüssel neu erstellen möchten?",
- "regenerate": "Neu erstellen"
- },
- "newDeviceDialog": {
- "title": "Neues Gerät verbinden",
- "https": "https",
- "http": "http",
- "tabHttp": "HTTP",
- "tabBluetooth": "Bluetooth",
- "tabSerial": "Seriell",
- "useHttps": "HTTPS verwenden",
- "connecting": "Wird verbunden...",
- "connect": "Verbindung herstellen",
- "connectionFailedAlert": {
- "title": "Verbindung fehlgeschlagen",
- "descriptionPrefix": "Verbindung zum Gerät fehlgeschlagen. ",
- "httpsHint": "Wenn Sie HTTPS verwenden, müssen Sie möglicherweise zuerst ein selbstsigniertes Zertifikat akzeptieren. ",
- "openLinkPrefix": "Öffnen Sie ",
- "openLinkSuffix": "in einem neuen Tab",
- "acceptTlsWarningSuffix": ", akzeptieren Sie alle TLS-Warnungen, wenn Sie dazu aufgefordert werden, dann versuchen Sie es erneut",
- "learnMoreLink": "Mehr erfahren"
- },
- "httpConnection": {
- "label": "IP Adresse/Hostname",
- "placeholder": "000.000.000.000 / meshtastic.local"
- },
- "serialConnection": {
- "noDevicesPaired": "Noch keine Geräte gekoppelt.",
- "newDeviceButton": "Neues Gerät",
- "deviceIdentifier": "# {{index}} - {{vendorId}} - {{productId}}"
- },
- "bluetoothConnection": {
- "noDevicesPaired": "Noch keine Geräte gekoppelt.",
- "newDeviceButton": "Neues Gerät",
- "connectionFailed": "Verbindung fehlgeschlagen",
- "deviceDisconnected": "Verbindung getrennt",
- "unknownDevice": "Unbekanntes Gerät",
- "errorLoadingDevices": "Fehler beim Laden der Geräte",
- "unknownErrorLoadingDevices": "Unbekannter Fehler beim Laden der Geräte"
- },
- "validation": {
- "requiresWebBluetooth": "Dieser Verbindungstyp erfordert <0>Bluetooth0> im Browser. Bitte verwenden Sie einen unterstützten Browser, wie Chrome oder Edge.",
- "requiresWebSerial": "Dieser Verbindungstyp erfordert <0>Serielle Schnittstelle0> im Browser. Bitte verwenden Sie einen unterstützten Browser, wie Chrome oder Edge.",
- "requiresSecureContext": "Diese Anwendung erfordert einen <0>sicheren Kontext0>. Bitte verbinden Sie sich über HTTPS oder localhost.",
- "additionallyRequiresSecureContext": "Zusätzlich erfordert es einen <0>sicheren Kontext0>. Bitte verbinden Sie sich über HTTPS oder localhost."
- }
- },
- "nodeDetails": {
- "message": "Nachricht",
- "requestPosition": "Standort anfordern",
- "traceRoute": "Route verfolgen",
- "airTxUtilization": "Auslastung Sendezeit",
- "allRawMetrics": "Alle Rohdaten",
- "batteryLevel": "Akkustand",
- "channelUtilization": "Kanalauslastung",
- "details": "Details:",
- "deviceMetrics": "Gerätekennzahlen:",
- "hardware": "Hardware: ",
- "lastHeard": "Zuletzt gehört: ",
- "nodeHexPrefix": "Knoten ID:",
- "nodeNumber": "Knotennummer: ",
- "position": "Standort:",
- "role": "Rolle: ",
- "uptime": "Laufzeit: ",
- "voltage": "Spannung",
- "title": "Knotendetails für {{identifier}}",
- "ignoreNode": "Knoten ignorieren",
- "removeNode": "Knoten entfernen",
- "unignoreNode": "Knoten akzeptieren",
- "security": "Sicherheit:",
- "publicKey": "Öffentlicher Schlüssel:",
- "messageable": "Ansprechbar:",
- "KeyManuallyVerifiedTrue": "Öffentlicher Schlüssel wurde manuell geprüft",
- "KeyManuallyVerifiedFalse": "Öffentlicher Schlüssel ist nicht manuell geprüft"
- },
- "pkiBackup": {
- "loseKeysWarning": "Wenn Sie Ihre Schlüssel verlieren, müssen Sie Ihr Gerät zurücksetzen.",
- "secureBackup": "Es ist wichtig, dass Sie Ihre öffentlichen und privaten Schlüssel sichern und diese sicher speichern!",
- "footer": "=== END OF KEYS ===",
- "header": "=== MESHTASTIC KEYS FOR {{longName}} ({{shortName}}) ===",
- "privateKey": "Privater Schlüssel:",
- "publicKey": "Öffentlicher Schlüssel:",
- "fileName": "meshtastic_keys_{{longName}}_{{shortName}}.txt",
- "title": "Schlüssel sichern"
- },
- "pkiBackupReminder": {
- "description": "Wir empfehlen die regelmäßige Sicherung Ihrer Schlüsseldaten. Möchten Sie jetzt sicheren?",
- "title": "Erinnerungen für Sicherungen",
- "remindLaterPrefix": "Erinnerung in:",
- "remindNever": "Nie erinnern",
- "backupNow": "Jetzt sichern"
- },
- "pkiRegenerate": {
- "description": "Sind Sie sicher, dass Sie Schlüsselpaar neu erstellen möchten?",
- "title": "Schlüsselpaar neu erstellen"
- },
- "qr": {
- "addChannels": "Kanäle hinzufügen",
- "replaceChannels": "Kanäle ersetzen",
- "description": "Die aktuelle LoRa Einstellung wird ebenfalls geteilt.",
- "sharableUrl": "Teilbare URL",
- "title": "QR Code Erzeugen"
- },
- "reboot": {
- "title": "Gerät neustarten",
- "description": "Starten Sie jetzt neu oder planen Sie einen Neustart des verbundenen Knotens. Optional können Sie einen Neustart in den OTA (Over-the-Air) Modus wählen.",
- "ota": "Neustart in den OTA Modus",
- "enterDelay": "Verzögerung eingeben",
- "scheduled": "Neustart wurde geplant",
- "schedule": "Neustart planen",
- "now": "Jetzt neustarten",
- "cancel": "Geplanten Neustart abbrechen"
- },
- "refreshKeys": {
- "description": {
- "acceptNewKeys": "Dies entfernt den Knoten vom Gerät und fordert neue Schlüssel an.",
- "keyMismatchReasonSuffix": ". Dies liegt daran, dass der aktuelle öffentliche Schlüssel des entfernten Knotens nicht mit dem zuvor gespeicherten Schlüssel für diesen Knoten übereinstimmt.",
- "unableToSendDmPrefix": "Ihr Knoten kann keine Direktnachricht an folgenden Knoten senden: "
- },
- "acceptNewKeys": "Neue Schlüssel akzeptieren",
- "title": "Schlüsselfehler - {{identifier}}"
- },
- "removeNode": {
- "description": "Sind Sie sicher, dass Sie diesen Knoten entfernen möchten?",
- "title": "Knoten entfernen?"
- },
- "shutdown": {
- "title": "Herunterfahren planen",
- "description": "Schaltet den verbundenen Knoten nach x Minuten aus."
- },
- "traceRoute": {
- "routeToDestination": "Route zum Ziel:",
- "routeBack": "Route zurück:"
- },
- "tracerouteResponse": {
- "title": "Traceroute: {{identifier}}"
- },
- "unsafeRoles": {
- "confirmUnderstanding": "Ja, ich weiß, was ich tue!",
- "conjunction": " und der Blog-Beitrag über ",
- "postamble": " und verstehen die Auswirkungen einer Veränderung der Rolle.",
- "preamble": "Ich habe die",
- "choosingRightDeviceRole": "Wahl der richtigen Geräterolle",
- "deviceRoleDocumentation": "Dokumentation der Geräterolle",
- "title": "Sind Sie sicher?"
- },
- "managedMode": {
- "confirmUnderstanding": "Ja, ich weiß, was ich tue!",
- "title": "Sind Sie sicher?",
- "description": "Das Aktivieren des verwalteten Modus blockiert das Schreiben der Einstellungen in das Funkgerät durch alle Anwendungen (einschließlich der Webanwendung). Einmal aktiviert, können die Einstellungen nur durch administrative Nachrichten geändert werden. Diese Einstellung ist für die Fernverwaltung von abgesetzten Knoten nicht erforderlich."
- },
- "clientNotification": {
- "title": "Warnmeldung",
- "TraceRoute can only be sent once every 30 seconds": "TraceRoute kann nur einmal alle 30 Sekunden versendet werden.",
- "Compromised keys were detected and regenerated.": "Kompromittierte Schlüssel wurden erkannt und neu generiert."
- }
+ "deleteMessages": {
+ "description": "Diese Aktion wird den Nachrichtenverlauf löschen. Dies kann nicht rückgängig gemacht werden. Sind Sie sicher, dass Sie fortfahren möchten?",
+ "title": "Alle Nachrichten löschen"
+ },
+ "deviceName": {
+ "description": "Das Gerät wird neu gestartet, sobald die Einstellung gespeichert ist.",
+ "longName": "Langer Name",
+ "shortName": "Kurzname",
+ "title": "Gerätename ändern",
+ "validation": {
+ "longNameMax": "Lange Name darf nicht mehr als 40 Zeichen lang sein",
+ "shortNameMax": "Kurzname darf nicht mehr als 4 Zeichen lang sein",
+ "longNameMin": "Langer Name muss mindestens 1 Zeichen lang sein",
+ "shortNameMin": "Kurzname muss mindestens 1 Zeichen lang sein"
+ }
+ },
+ "import": {
+ "description": "Die aktuelle LoRa Einstellung wird überschrieben.",
+ "error": {
+ "invalidUrl": "Ungültige Meshtastic URL"
+ },
+ "channelPrefix": "Kanal: ",
+ "primary": "Primär ",
+ "doNotImport": "Nicht importieren",
+ "channelName": "Name",
+ "channelSlot": "Position",
+ "channelSetUrl": "Kanalsammlung / QR-Code URL",
+ "useLoraConfig": "LoRa Konfiguration importieren",
+ "presetDescription": "Die aktuelle LoRa Konfiguration wird ersetzt.",
+ "title": "Kanalsammlung importieren"
+ },
+ "locationResponse": {
+ "title": "Standort: {{identifier}}",
+ "altitude": "Höhe: ",
+ "coordinates": "Koordinaten: ",
+ "noCoordinates": "Keine Koordinaten"
+ },
+ "pkiRegenerateDialog": {
+ "title": "Vorab verteilten Schlüssel (PSK) neu erstellen?",
+ "description": "Sind Sie sicher, dass Sie den vorab verteilten Schlüssel neu erstellen möchten?",
+ "regenerate": "Neu erstellen"
+ },
+ "newDeviceDialog": {
+ "title": "Neues Gerät verbinden",
+ "https": "https",
+ "http": "http",
+ "tabHttp": "HTTP",
+ "tabBluetooth": "Bluetooth",
+ "tabSerial": "Seriell",
+ "useHttps": "HTTPS verwenden",
+ "connecting": "Wird verbunden...",
+ "connect": "Verbindung herstellen",
+ "connectionFailedAlert": {
+ "title": "Verbindung fehlgeschlagen",
+ "descriptionPrefix": "Verbindung zum Gerät fehlgeschlagen. ",
+ "httpsHint": "Wenn Sie HTTPS verwenden, müssen Sie möglicherweise zuerst ein selbstsigniertes Zertifikat akzeptieren. ",
+ "openLinkPrefix": "Öffnen Sie ",
+ "openLinkSuffix": "in einem neuen Tab",
+ "acceptTlsWarningSuffix": ", akzeptieren Sie alle TLS-Warnungen, wenn Sie dazu aufgefordert werden, dann versuchen Sie es erneut",
+ "learnMoreLink": "Mehr erfahren"
+ },
+ "httpConnection": {
+ "label": "IP Adresse/Hostname",
+ "placeholder": "000.000.000.000 / meshtastic.local"
+ },
+ "serialConnection": {
+ "noDevicesPaired": "Noch keine Geräte gekoppelt.",
+ "newDeviceButton": "Neues Gerät",
+ "deviceIdentifier": "# {{index}} - {{vendorId}} - {{productId}}"
+ },
+ "bluetoothConnection": {
+ "noDevicesPaired": "Noch keine Geräte gekoppelt.",
+ "newDeviceButton": "Neues Gerät",
+ "connectionFailed": "Verbindung fehlgeschlagen",
+ "deviceDisconnected": "Verbindung getrennt",
+ "unknownDevice": "Unbekanntes Gerät",
+ "errorLoadingDevices": "Fehler beim Laden der Geräte",
+ "unknownErrorLoadingDevices": "Unbekannter Fehler beim Laden der Geräte"
+ },
+ "validation": {
+ "requiresWebBluetooth": "Dieser Verbindungstyp erfordert <0>Bluetooth0> im Browser. Bitte verwenden Sie einen unterstützten Browser, wie Chrome oder Edge.",
+ "requiresWebSerial": "Dieser Verbindungstyp erfordert <0>Serielle Schnittstelle0> im Browser. Bitte verwenden Sie einen unterstützten Browser, wie Chrome oder Edge.",
+ "requiresSecureContext": "Diese Anwendung erfordert einen <0>sicheren Kontext0>. Bitte verbinden Sie sich über HTTPS oder localhost.",
+ "additionallyRequiresSecureContext": "Zusätzlich erfordert es einen <0>sicheren Kontext0>. Bitte verbinden Sie sich über HTTPS oder localhost."
+ }
+ },
+ "nodeDetails": {
+ "message": "Nachricht",
+ "requestPosition": "Standort anfordern",
+ "traceRoute": "Route verfolgen",
+ "airTxUtilization": "Auslastung Sendezeit",
+ "allRawMetrics": "Alle Rohdaten",
+ "batteryLevel": "Akkustand",
+ "channelUtilization": "Kanalauslastung",
+ "details": "Details:",
+ "deviceMetrics": "Gerätekennzahlen:",
+ "hardware": "Hardware: ",
+ "lastHeard": "Zuletzt gehört: ",
+ "nodeHexPrefix": "Knoten ID:",
+ "nodeNumber": "Knotennummer: ",
+ "position": "Standort:",
+ "role": "Rolle: ",
+ "uptime": "Laufzeit: ",
+ "voltage": "Spannung",
+ "title": "Knotendetails für {{identifier}}",
+ "ignoreNode": "Knoten ignorieren",
+ "removeNode": "Knoten entfernen",
+ "unignoreNode": "Knoten akzeptieren",
+ "security": "Sicherheit:",
+ "publicKey": "Öffentlicher Schlüssel:",
+ "messageable": "Ansprechbar:",
+ "KeyManuallyVerifiedTrue": "Öffentlicher Schlüssel wurde manuell geprüft",
+ "KeyManuallyVerifiedFalse": "Öffentlicher Schlüssel ist nicht manuell geprüft"
+ },
+ "pkiBackup": {
+ "loseKeysWarning": "Wenn Sie Ihre Schlüssel verlieren, müssen Sie Ihr Gerät zurücksetzen.",
+ "secureBackup": "Es ist wichtig, dass Sie Ihre öffentlichen und privaten Schlüssel sichern und diese sicher speichern!",
+ "footer": "=== END OF KEYS ===",
+ "header": "=== MESHTASTIC KEYS FOR {{longName}} ({{shortName}}) ===",
+ "privateKey": "Privater Schlüssel:",
+ "publicKey": "Öffentlicher Schlüssel:",
+ "fileName": "meshtastic_keys_{{longName}}_{{shortName}}.txt",
+ "title": "Schlüssel sichern"
+ },
+ "pkiBackupReminder": {
+ "description": "Wir empfehlen die regelmäßige Sicherung Ihrer Schlüsseldaten. Möchten Sie jetzt sicheren?",
+ "title": "Erinnerungen für Sicherungen",
+ "remindLaterPrefix": "Erinnerung in:",
+ "remindNever": "Nie erinnern",
+ "backupNow": "Jetzt sichern"
+ },
+ "pkiRegenerate": {
+ "description": "Sind Sie sicher, dass Sie Schlüsselpaar neu erstellen möchten?",
+ "title": "Schlüsselpaar neu erstellen"
+ },
+ "qr": {
+ "addChannels": "Kanäle hinzufügen",
+ "replaceChannels": "Kanäle ersetzen",
+ "description": "Die aktuelle LoRa Einstellung wird ebenfalls geteilt.",
+ "sharableUrl": "Teilbare URL",
+ "title": "QR Code Erzeugen"
+ },
+ "reboot": {
+ "title": "Gerät neustarten",
+ "description": "Starten Sie jetzt neu oder planen Sie einen Neustart des verbundenen Knotens. Optional können Sie einen Neustart in den OTA (Over-the-Air) Modus wählen.",
+ "ota": "Neustart in den OTA Modus",
+ "enterDelay": "Verzögerung eingeben",
+ "scheduled": "Neustart wurde geplant",
+ "schedule": "Neustart planen",
+ "now": "Jetzt neustarten",
+ "cancel": "Geplanten Neustart abbrechen"
+ },
+ "refreshKeys": {
+ "description": {
+ "acceptNewKeys": "Dies entfernt den Knoten vom Gerät und fordert neue Schlüssel an.",
+ "keyMismatchReasonSuffix": ". Dies liegt daran, dass der aktuelle öffentliche Schlüssel des entfernten Knotens nicht mit dem zuvor gespeicherten Schlüssel für diesen Knoten übereinstimmt.",
+ "unableToSendDmPrefix": "Ihr Knoten kann keine Direktnachricht an folgenden Knoten senden: "
+ },
+ "acceptNewKeys": "Neue Schlüssel akzeptieren",
+ "title": "Schlüsselfehler - {{identifier}}"
+ },
+ "removeNode": {
+ "description": "Sind Sie sicher, dass Sie diesen Knoten entfernen möchten?",
+ "title": "Knoten entfernen?"
+ },
+ "shutdown": {
+ "title": "Herunterfahren planen",
+ "description": "Schaltet den verbundenen Knoten nach x Minuten aus."
+ },
+ "traceRoute": {
+ "routeToDestination": "Route zum Ziel:",
+ "routeBack": "Route zurück:"
+ },
+ "tracerouteResponse": {
+ "title": "Traceroute: {{identifier}}"
+ },
+ "unsafeRoles": {
+ "confirmUnderstanding": "Ja, ich weiß, was ich tue!",
+ "conjunction": " und der Blog-Beitrag über ",
+ "postamble": " und verstehen die Auswirkungen einer Veränderung der Rolle.",
+ "preamble": "Ich habe die",
+ "choosingRightDeviceRole": "Wahl der richtigen Geräterolle",
+ "deviceRoleDocumentation": "Dokumentation der Geräterolle",
+ "title": "Sind Sie sicher?"
+ },
+ "managedMode": {
+ "confirmUnderstanding": "Ja, ich weiß, was ich tue!",
+ "title": "Sind Sie sicher?",
+ "description": "Das Aktivieren des verwalteten Modus blockiert das Schreiben der Einstellungen in das Funkgerät durch alle Anwendungen (einschließlich der Webanwendung). Einmal aktiviert, können die Einstellungen nur durch administrative Nachrichten geändert werden. Diese Einstellung ist für die Fernverwaltung von abgesetzten Knoten nicht erforderlich."
+ },
+ "clientNotification": {
+ "title": "Warnmeldung",
+ "TraceRoute can only be sent once every 30 seconds": "TraceRoute kann nur einmal alle 30 Sekunden versendet werden.",
+ "Compromised keys were detected and regenerated.": "Kompromittierte Schlüssel wurden erkannt und neu generiert."
+ },
+ "resetNodeDb": {
+ "title": "Knotendatenbank zurücksetzen",
+ "description": "Dadurch werden alle Knoten aus der Knotendatenbank des verbundenen Geräts und der gesamte Nachrichtenverlauf im Client gelöscht. Dieser Vorgang kann nicht rückgängig gemacht werden. Möchten Sie wirklich fortfahren?",
+ "confirm": "Knotendatenbank zurücksetzen",
+ "failedTitle": "Beim Zurücksetzen der Knoten-Datenbank ist ein Fehler aufgetreten. Bitte versuchen Sie es erneut."
+ },
+ "clearAllStores": {
+ "title": "Lösche den gesamten lokalen Speicher",
+ "description": "Dadurch werden alle lokal gespeicherten Daten gelöscht, einschließlich des Nachrichtenverlaufs und der Knotendatenbanken aller zuvor verbundenen Geräte. Nach Abschluss des Vorgangs müssen Sie die Verbindung zu Ihrem Knoten erneut herstellen. Dieser Vorgang kann nicht rückgängig gemacht werden. Möchten Sie wirklich fortfahren?",
+ "confirm": "Lösche den gesamten lokalen Speicher",
+ "failedTitle": "Beim Löschen des lokalen Speichers ist ein Fehler aufgetreten. Bitte versuchen Sie es erneut."
+ },
+ "factoryResetDevice": {
+ "title": "Gerät auf Werkseinstellungen zurücksetzen",
+ "description": "Dadurch wird das verbundene Gerät auf die Werkseinstellungen zurückgesetzt. Alle Konfigurationen und Daten auf dem Gerät sowie alle im Client gespeicherten Knoten und Nachrichten werden gelöscht. Dieser Vorgang kann nicht rückgängig gemacht werden. Möchten Sie wirklich fortfahren?",
+ "confirm": "Gerät auf Werkseinstellungen zurücksetzen",
+ "failedTitle": "Beim Zurücksetzen auf die Werkseinstellungen ist ein Fehler aufgetreten. Bitte versuchen Sie es erneut."
+ },
+ "factoryResetConfig": {
+ "title": "Auf Werkseinstellungen zurücksetzen",
+ "description": "Dadurch wird die Konfiguration des verbundenen Geräts auf die Werkseinstellungen zurückgesetzt und alle Konfigurationen auf dem Gerät gelöscht. Dieser Vorgang kann nicht rückgängig gemacht werden. Möchten Sie wirklich fortfahren?",
+ "confirm": "Auf Werkseinstellungen zurücksetzen",
+ "failedTitle": "Beim Zurücksetzen auf die Werkseinstellungen ist ein Fehler aufgetreten. Bitte versuchen Sie es erneut."
+ }
}
diff --git a/packages/web/public/i18n/locales/de-DE/map.json b/packages/web/public/i18n/locales/de-DE/map.json
new file mode 100644
index 00000000..12991419
--- /dev/null
+++ b/packages/web/public/i18n/locales/de-DE/map.json
@@ -0,0 +1,38 @@
+{
+ "maplibre": {
+ "GeolocateControl.FindMyLocation": "Meinen Standort ermitteln",
+ "NavigationControl.ZoomIn": "Vergrößern",
+ "NavigationControl.ZoomOut": "Verkleinern",
+ "CooperativeGesturesHandler.WindowsHelpText": "Verwenden Sie STRG + Scrollen zum Zoomen der Karte",
+ "CooperativeGesturesHandler.MacHelpText": "Verwenden Sie ⌘ + Scrollen zum Zoomen der Karte",
+ "CooperativeGesturesHandler.MobileHelpText": "Verwenden Sie zwei Finger, um die Karte zu bewegen."
+ },
+ "layerTool": {
+ "nodeMarkers": "Zeige Knoten",
+ "directNeighbors": "Direkte Verbindungen anzeigen",
+ "remoteNeighbors": "Entfernte Verbindungen anzeigen",
+ "positionPrecision": "Positionsgenauigkeit anzeigen",
+ "traceroutes": "Traceroutes anzeigen",
+ "waypoints": "Wegpunkte anzeigen"
+ },
+ "mapMenu": {
+ "locateAria": "Meinen Knoten suchen",
+ "layersAria": "Kartenformat ändern"
+ },
+ "waypointDetail": {
+ "edit": "Bearbeiten",
+ "description": "Beschreibung:",
+ "createdBy": "Bearbeitet:",
+ "createdDate": "Erstellt:",
+ "updated": "Aktualisiert:",
+ "expires": "Gültig bis:",
+ "distance": "Entfernung:",
+ "bearing": "Absolute Peilung:",
+ "lockedTo": "Gesperrt:",
+ "latitude": "Breitengrad:",
+ "longitude": "Längengrad:"
+ },
+ "myNode": {
+ "tooltip": "Dieses Gerät"
+ }
+}
diff --git a/packages/web/public/i18n/locales/de-DE/messages.json b/packages/web/public/i18n/locales/de-DE/messages.json
index 188071ba..02f1435c 100644
--- a/packages/web/public/i18n/locales/de-DE/messages.json
+++ b/packages/web/public/i18n/locales/de-DE/messages.json
@@ -1,39 +1,39 @@
{
- "page": {
- "title": "Nachrichten: {{chatName}}",
- "placeholder": "Nachricht eingeben"
- },
- "emptyState": {
- "title": "Einen Chat auswählen",
- "text": "Noch keine Nachrichten."
- },
- "selectChatPrompt": {
- "text": "Wählen Sie einen Kanal oder Knoten, um Nachrichten zu schreiben."
- },
- "sendMessage": {
- "placeholder": "Geben Sie hier Ihre Nachricht ein...",
- "sendButton": "Senden"
- },
- "actionsMenu": {
- "addReactionLabel": "Reaktion hinzufügen",
- "replyLabel": "Antworten"
- },
- "deliveryStatus": {
- "delivered": {
- "label": "Nachricht zugestellt",
- "displayText": "Nachricht zugestellt"
- },
- "failed": {
- "label": "Nachrichtenübermittlung fehlgeschlagen",
- "displayText": "Zustellung fehlgeschlagen"
- },
- "unknown": {
- "label": "Nachrichtenstatus unbekannt",
- "displayText": "Unbekannter Status"
- },
- "waiting": {
- "label": "Nachricht wird gesendet",
- "displayText": "Warte auf Zustellung"
- }
- }
+ "page": {
+ "title": "Nachrichten: {{chatName}}",
+ "placeholder": "Nachricht eingeben"
+ },
+ "emptyState": {
+ "title": "Einen Chat auswählen",
+ "text": "Noch keine Nachrichten."
+ },
+ "selectChatPrompt": {
+ "text": "Wählen Sie einen Kanal oder Knoten, um Nachrichten zu schreiben."
+ },
+ "sendMessage": {
+ "placeholder": "Geben Sie hier Ihre Nachricht ein...",
+ "sendButton": "Senden"
+ },
+ "actionsMenu": {
+ "addReactionLabel": "Reaktion hinzufügen",
+ "replyLabel": "Antworten"
+ },
+ "deliveryStatus": {
+ "delivered": {
+ "label": "Nachricht zugestellt",
+ "displayText": "Nachricht zugestellt"
+ },
+ "failed": {
+ "label": "Nachrichtenübermittlung fehlgeschlagen",
+ "displayText": "Zustellung fehlgeschlagen"
+ },
+ "unknown": {
+ "label": "Nachrichtenstatus unbekannt",
+ "displayText": "Unbekannter Status"
+ },
+ "waiting": {
+ "label": "Nachricht wird gesendet",
+ "displayText": "Warte auf Zustellung"
+ }
+ }
}
diff --git a/packages/web/public/i18n/locales/de-DE/moduleConfig.json b/packages/web/public/i18n/locales/de-DE/moduleConfig.json
index d9397d74..76e41cfb 100644
--- a/packages/web/public/i18n/locales/de-DE/moduleConfig.json
+++ b/packages/web/public/i18n/locales/de-DE/moduleConfig.json
@@ -1,448 +1,448 @@
{
- "page": {
- "tabAmbientLighting": "Umgebungslicht",
- "tabAudio": "Audio",
- "tabCannedMessage": "Vordefinierte Nachrichten",
- "tabDetectionSensor": "Erkennungssensor",
- "tabExternalNotification": "Externe Benachrichtigung",
- "tabMqtt": "MQTT",
- "tabNeighborInfo": "Nachbarinformation",
- "tabPaxcounter": "Pax Zähler",
- "tabRangeTest": "Reichweitentest",
- "tabSerial": "Seriell",
- "tabStoreAndForward": "Speichern&Weiterleiten",
- "tabTelemetry": "Telemetrie"
- },
- "ambientLighting": {
- "title": "Einstellung Umgebungsbeleuchtung",
- "description": "Einstellungen für das Modul Umgebungsbeleuchtung",
- "ledState": {
- "label": "LED Status",
- "description": "Setzt die LED auf ein oder aus"
- },
- "current": {
- "label": "Stromstärke",
- "description": "Legt den Strom für den LED Ausgang fest. Standard ist 10"
- },
- "red": {
- "label": "Rot",
- "description": "Legt den roten LED Wert fest. Bereich 0-255"
- },
- "green": {
- "label": "Grün",
- "description": "Legt den grünen LED Wert fest. Bereich 0-255"
- },
- "blue": {
- "label": "Blau",
- "description": "Legt den blauen LED Wert fest. Bereich 0-255"
- }
- },
- "audio": {
- "title": "Audioeinstellungen",
- "description": "Einstellungen für das Audiomodul",
- "codec2Enabled": {
- "label": "Codec 2 aktiviert",
- "description": "Codec 2 Audiokodierung aktivieren"
- },
- "pttPin": {
- "label": "GPIO PTT",
- "description": "Für PTT verwendeter GPIO Pin"
- },
- "bitrate": {
- "label": "Bitrate",
- "description": "Bitrate zur Audiokodierung"
- },
- "i2sWs": {
- "label": "i2S WS",
- "description": "GPIO Pin für i2S WS"
- },
- "i2sSd": {
- "label": "i2S SD",
- "description": "GPIO Pin für i2S SD"
- },
- "i2sDin": {
- "label": "i2S DIN",
- "description": "GPIO Pin für i2S DIN"
- },
- "i2sSck": {
- "label": "i2S SCK",
- "description": "GPIO Pin für i2S SCK"
- }
- },
- "cannedMessage": {
- "title": "Einstellungen für vordefinierte Nachrichten",
- "description": "Einstellungen für das Modul vordefinierte Nachrichten",
- "moduleEnabled": {
- "label": "Modul aktiviert",
- "description": "Vordefinierte Nachrichten aktivieren"
- },
- "rotary1Enabled": {
- "label": "Drehgeber #1 aktiviert",
- "description": "Drehgeber aktivieren"
- },
- "inputbrokerPinA": {
- "label": "Drehgeber Pin A",
- "description": "GPIO Pin Wert (1-39) für Drehgeber Pin A"
- },
- "inputbrokerPinB": {
- "label": "Drehgeber Pin B",
- "description": "GPIO Pin Wert (1-39) für Drehgeber Pin B"
- },
- "inputbrokerPinPress": {
- "label": "Drehgeber Pin Taste",
- "description": "GPIO Pin Wert (1-39) für Drehgeber Pin Taste"
- },
- "inputbrokerEventCw": {
- "label": "Ereignis im Uhrzeigersinn",
- "description": "Eingabeereignis auswählen."
- },
- "inputbrokerEventCcw": {
- "label": "Ereignis gegen Uhrzeigersinn",
- "description": "Eingabeereignis auswählen."
- },
- "inputbrokerEventPress": {
- "label": "Ereignis Tastendruck",
- "description": "Eingabeereignis auswählen."
- },
- "updown1Enabled": {
- "label": "Geber Hoch/Runter aktiviert",
- "description": "Aktiviere Geber Hoch/Runter"
- },
- "allowInputSource": {
- "label": "Eingabequelle zulassen",
- "description": "Wählen Sie aus: '_any', 'rotEnc1', 'upDownEnc1', 'cardkb'"
- },
- "sendBell": {
- "label": "Sende Glocke",
- "description": "Sendet ein Klingelzeichen (Glocke) mit jeder Nachricht"
- }
- },
- "detectionSensor": {
- "title": "Sensoreinstellungen für Erkennung",
- "description": "Einstellungen für das Erkennungssensormodul",
- "enabled": {
- "label": "Aktiviert",
- "description": "Erkennungssensormodul aktivieren oder deaktivieren"
- },
- "minimumBroadcastSecs": {
- "label": "Minimale Übertragungszeit alle Sekunden",
- "description": "Das Intervall in Sekunden, wie oft eine Nachricht an das Netz gesendet wird, wenn eine Statusänderung erkannt wurde"
- },
- "stateBroadcastSecs": {
- "label": "Statusübertragung alle Sekunden",
- "description": "Das Intervall in Sekunden, wie oft eine Nachricht mit dem aktuellen Status an das Netz gesendet wird, unabhängig von Änderungen"
- },
- "sendBell": {
- "label": "Sende Glocke",
- "description": "ASCII-Glocke mit Warnmeldung senden"
- },
- "name": {
- "label": "Anzeigename",
- "description": "Formatierte Nachricht die an das Netz gesendet wird, maximal 20 Zeichen"
- },
- "monitorPin": {
- "label": "GPIO Pin überwachen",
- "description": "Der GPIO Pin zur Überwachung von Statusänderungen"
- },
- "detectionTriggerType": {
- "label": "Auslösetyp der Erkennung",
- "description": "Die Art des zu verwendenden Auslöseereignisses"
- },
- "usePullup": {
- "label": "Pullup verwenden",
- "description": "Gibt an, ob der INPUT_PULLUP Modus für GPIO Pin verwendet wird oder nicht"
- }
- },
- "externalNotification": {
- "title": "Einstellungen für externe Benachrichtigungen",
- "description": "Einstellung für das Modul externe Benachrichtigung",
- "enabled": {
- "label": "Modul aktiviert",
- "description": "Externe Benachrichtigung aktivieren"
- },
- "outputMs": {
- "label": "Ausgabe MS",
- "description": "Ausgabe MS"
- },
- "output": {
- "label": "Ausgabe",
- "description": "Ausgabe"
- },
- "outputVibra": {
- "label": "Ausgabe Vibration",
- "description": "Ausgabe Vibration"
- },
- "outputBuzzer": {
- "label": "Ausgabe Summer",
- "description": "Ausgabe Summer"
- },
- "active": {
- "label": "Aktiv",
- "description": "Aktiv"
- },
- "alertMessage": {
- "label": "Warnmeldung",
- "description": "Warnmeldung"
- },
- "alertMessageVibra": {
- "label": "Vibration bei Warnmeldung",
- "description": "Vibration bei Warnmeldung"
- },
- "alertMessageBuzzer": {
- "label": "Summer bei Warnmeldung",
- "description": "Summer bei Warnmeldung"
- },
- "alertBell": {
- "label": "Warnglocke",
- "description": "Soll beim Empfang eines eingehenden Klingelzeichens (Glocke) eine Warnung ausgelöst werden?"
- },
- "alertBellVibra": {
- "label": "Vibration bei Klingelzeichen",
- "description": "Vibration bei Klingelzeichen"
- },
- "alertBellBuzzer": {
- "label": "Summer bei Klingelzeichen",
- "description": "Summer bei Klingelzeichen"
- },
- "usePwm": {
- "label": "PWM verwenden",
- "description": "PWM verwenden"
- },
- "nagTimeout": {
- "label": "Nervige Verzögerung",
- "description": "Nervige Verzögerung"
- },
- "useI2sAsBuzzer": {
- "label": "I2S GPIO Pin als Summer verwenden",
- "description": "I2S GPIO Pin als Summerausgang definieren"
- }
- },
- "mqtt": {
- "title": "MQTT Einstellungen",
- "description": "Einstellungen für das MQTT Modul",
- "enabled": {
- "label": "Aktiviert",
- "description": "MQTT aktivieren oder deaktivieren"
- },
- "address": {
- "label": "MQTT Server Adresse",
- "description": "MQTT Serveradresse für Standard/benutzerdefinierte Server"
- },
- "username": {
- "label": "MQTT Benutzername",
- "description": "MQTT Benutzername für Standard/benutzerdefinierte Server"
- },
- "password": {
- "label": "MQTT Passwort",
- "description": "MQTT Passwort für Standard/benutzerdefinierte Server"
- },
- "encryptionEnabled": {
- "label": "Verschlüsselung aktiviert",
- "description": "MQTT-Verschlüsselung aktivieren oder deaktivieren. Hinweis: Alle Nachrichten werden unverschlüsselt an den MQTT-Broker gesendet, wenn diese Option nicht aktiviert ist. Unabhängig von der eingestellten Kanalverschlüsselung. Einschließlich der Standortdaten."
- },
- "jsonEnabled": {
- "label": "JSON aktiviert",
- "description": "Gibt an, ob JSON Nachrichten über MQTT gesendet oder empfangen werden sollen"
- },
- "tlsEnabled": {
- "label": "TLS aktiviert",
- "description": "TLS aktivieren oder deaktivieren"
- },
- "root": {
- "label": "Hauptthema",
- "description": "MQTT Hauptthema für Standard/Benutzerdefinierte Server"
- },
- "proxyToClientEnabled": {
- "label": "MQTT Client Proxy aktiviert",
- "description": "Verwendet die Netzwerkverbindung zum Austausch von MQTT Nachrichten mit dem Client."
- },
- "mapReportingEnabled": {
- "label": "Kartenberichte aktiviert",
- "description": "Ihr Knoten sendet in regelmäßigen Abständen eine unverschlüsselte Nachricht mit Kartenbericht an den konfigurierten MQTT-Server. Einschließlich ID, langen und kurzen Namen, ungefährer Standort, Hardwaremodell, Geräterolle, Firmware-Version, LoRa Region, Modem-Voreinstellung und Name des Primärkanal."
- },
- "mapReportSettings": {
- "publishIntervalSecs": {
- "label": "Veröffentlichungsintervall Kartenbericht (s)",
- "description": "Intervall in Sekunden, um Kartenberichte zu veröffentlichen"
- },
- "positionPrecision": {
- "label": "Ungefährer Standort",
- "description": "Der geteilte Standort mit einer Genauigkeit innerhalb dieser Entfernung",
- "options": {
- "metric_km23": "Innerhalb von 23 km",
- "metric_km12": "Innerhalb von 12 km",
- "metric_km5_8": "Innerhalb von 5,8 km",
- "metric_km2_9": "Innerhalb von 2,9 km",
- "metric_km1_5": "Innerhalb von 1,5 km",
- "metric_m700": "Innerhalb von 700 m",
- "metric_m350": "Innerhalb von 350 m",
- "metric_m200": "Innerhalb von 200 m",
- "metric_m90": "Innerhalb von 90 m",
- "metric_m50": "Innerhalb von 50 m",
- "imperial_mi15": "Innerhalb von 15 Meilen",
- "imperial_mi7_3": "Innerhalb von 7,3 Meilen",
- "imperial_mi3_6": "Innerhalb von 3,6 Meilen",
- "imperial_mi1_8": "Innerhalb von 1,8 Meilen",
- "imperial_mi0_9": "Innerhalb von 0,9 Meilen",
- "imperial_mi0_5": "Innerhalb von 0,5 Meilen",
- "imperial_mi0_2": "Innerhalb von 0,2 Meilen",
- "imperial_ft600": "Innerhalb von 600 Fuß",
- "imperial_ft300": "Innerhalb von 300 Fuß",
- "imperial_ft150": "Innerhalb von 150 Fuß"
- }
- }
- }
- },
- "neighborInfo": {
- "title": "Einstellung Nachbarinformation",
- "description": "Einstellungen für das Modul Nachbarinformation",
- "enabled": {
- "label": "Aktiviert",
- "description": "Nachbarinformation Modul aktivieren oder deaktivieren"
- },
- "updateInterval": {
- "label": "Aktualisierungsintervall",
- "description": "Intervall in Sekunden, wie oft die Nachbarinformation an das Netz gesendet wird"
- }
- },
- "paxcounter": {
- "title": "Einstellung für Pax Zähler",
- "description": "Einstellungen für das Modul Pax Zähler",
- "enabled": {
- "label": "Modul aktiviert",
- "description": "Aktiviere Pax Zähler"
- },
- "paxcounterUpdateInterval": {
- "label": "Aktualisierungsintervall (Sekunden)",
- "description": "Wie lange soll zwischen dem Senden von Pax Zählernachrichten gewartet werden"
- },
- "wifiThreshold": {
- "label": "WLAN RSSI Grenzwert",
- "description": "Bei welchem WLAN RSSI Grenzwert sollte der Zähler erhöht werden. Standardwert -80"
- },
- "bleThreshold": {
- "label": "BLE RSSI Grenzwert",
- "description": "Bei welchem BLE RSSI Grenzwert sollte der Zähler erhöht werden. Standardwert -80"
- }
- },
- "rangeTest": {
- "title": "Einstellung Reichweitentest",
- "description": "Einstellungen für das Modul Reichweitentest",
- "enabled": {
- "label": "Modul aktiviert",
- "description": "Reichweitentest aktivieren"
- },
- "sender": {
- "label": "Nachrichtenintervall",
- "description": "Wie lange soll zwischen dem Senden von Testnachrichten gewartet werden"
- },
- "save": {
- "label": "CSV im internen Speicher abspeichern",
- "description": "Nur für ESP32"
- }
- },
- "serial": {
- "title": "Serielle Einstellungen",
- "description": "Einstellungen für das serielle Modul",
- "enabled": {
- "label": "Modul aktiviert",
- "description": "Serielle Ausgabe aktivieren"
- },
- "echo": {
- "label": "Echo",
- "description": "Wenn aktiviert, werden alle Nachrichten, die Sie senden, an Ihr Gerät zurückgesendet"
- },
- "rxd": {
- "label": "GPIO Empfangen",
- "description": "Setzen Sie den GPIO Pin, den Sie eingerichtet haben, als RXD Pin."
- },
- "txd": {
- "label": "GPIO Senden",
- "description": "Setzen Sie den GPIO Pin, den Sie eingerichtet haben, als TXD Pin."
- },
- "baud": {
- "label": "Baudrate",
- "description": "Serielle Baudrate"
- },
- "timeout": {
- "label": "Zeitlimit erreicht",
- "description": "Wartezeit in Sekunden bis eine Nachricht als gesendet angenommen wird"
- },
- "mode": {
- "label": "Betriebsmodus",
- "description": "Modus auswählen"
- },
- "overrideConsoleSerialPort": {
- "label": "Seriellen Port der Konsole überschreiben",
- "description": "Wenn Sie einen seriellen Port an die Konsole angeschlossen haben, wird diese überschrieben."
- }
- },
- "storeForward": {
- "title": "Speichern & Weiterleiten Einstellungen",
- "description": "Einstellungen für das Modul Speichern & Weiterleiten",
- "enabled": {
- "label": "Modul aktiviert",
- "description": "Speichern & Weiterleiten aktivieren"
- },
- "heartbeat": {
- "label": "Herzschlag aktiviert",
- "description": "Herzschlag für Speichern & Weiterleiten aktivieren"
- },
- "records": {
- "label": "Anzahl Einträge",
- "description": "Anzahl der zu speichernden Datensätze"
- },
- "historyReturnMax": {
- "label": "Verlauf Rückgabewert maximal",
- "description": "Maximale Anzahl an zurückzugebenden Datensätzen"
- },
- "historyReturnWindow": {
- "label": "Zeitraum Rückgabewert",
- "description": "Datensätze aus diesem Zeitfenster zurückgeben (Minuten)"
- }
- },
- "telemetry": {
- "title": "Telemetrieeinstellungen",
- "description": "Einstellungen für das Telemetriemodul",
- "deviceUpdateInterval": {
- "label": "Gerätekennzahlen",
- "description": "Aktualisierungsintervall für Gerätekennzahlen (Sekunden)"
- },
- "environmentUpdateInterval": {
- "label": "Aktualisierungsintervall für Umweltdaten (Sekunden)",
- "description": ""
- },
- "environmentMeasurementEnabled": {
- "label": "Modul aktiviert",
- "description": "Aktiviert die Telemetrie für Umweltdaten"
- },
- "environmentScreenEnabled": {
- "label": "OLED Anzeige aktivieren",
- "description": "Zeige das Telemetriemodul auf der OLED Anzeige"
- },
- "environmentDisplayFahrenheit": {
- "label": "Temperatur in Fahrenheit",
- "description": "Temperatur in Fahrenheit anzeigen"
- },
- "airQualityEnabled": {
- "label": "Luftqualität aktiviert",
- "description": "Telemetrie für Luftqualität aktivieren"
- },
- "airQualityInterval": {
- "label": "Aktualisierungsintervall Luftqualität",
- "description": "Wie oft werden Luftqualitätsdaten über das Netz gesendet"
- },
- "powerMeasurementEnabled": {
- "label": "Energiemessung aktiviert",
- "description": "Aktiviere die Telemetrie für die Energiemessung"
- },
- "powerUpdateInterval": {
- "label": "Aktualisierungsintervall Energie",
- "description": "Wie oft werden Energiedaten an das Netz gesendet"
- },
- "powerScreenEnabled": {
- "label": "Energieanzeige aktiviert",
- "description": "Aktiviere die Anzeige für Energietelemetrie"
- }
- }
+ "page": {
+ "tabAmbientLighting": "Umgebungslicht",
+ "tabAudio": "Audio",
+ "tabCannedMessage": "Vordefinierte Nachrichten",
+ "tabDetectionSensor": "Erkennungssensor",
+ "tabExternalNotification": "Externe Benachrichtigung",
+ "tabMqtt": "MQTT",
+ "tabNeighborInfo": "Nachbarinformation",
+ "tabPaxcounter": "Pax Zähler",
+ "tabRangeTest": "Reichweitentest",
+ "tabSerial": "Seriell",
+ "tabStoreAndForward": "Speichern&Weiterleiten",
+ "tabTelemetry": "Telemetrie"
+ },
+ "ambientLighting": {
+ "title": "Einstellung Umgebungsbeleuchtung",
+ "description": "Einstellungen für das Modul Umgebungsbeleuchtung",
+ "ledState": {
+ "label": "LED Status",
+ "description": "Setzt die LED auf ein oder aus"
+ },
+ "current": {
+ "label": "Stromstärke",
+ "description": "Legt den Strom für den LED Ausgang fest. Standard ist 10"
+ },
+ "red": {
+ "label": "Rot",
+ "description": "Legt den roten LED Wert fest. Bereich 0-255"
+ },
+ "green": {
+ "label": "Grün",
+ "description": "Legt den grünen LED Wert fest. Bereich 0-255"
+ },
+ "blue": {
+ "label": "Blau",
+ "description": "Legt den blauen LED Wert fest. Bereich 0-255"
+ }
+ },
+ "audio": {
+ "title": "Audioeinstellungen",
+ "description": "Einstellungen für das Audiomodul",
+ "codec2Enabled": {
+ "label": "Codec 2 aktiviert",
+ "description": "Codec 2 Audiokodierung aktivieren"
+ },
+ "pttPin": {
+ "label": "GPIO PTT",
+ "description": "Für PTT verwendeter GPIO Pin"
+ },
+ "bitrate": {
+ "label": "Bitrate",
+ "description": "Bitrate zur Audiokodierung"
+ },
+ "i2sWs": {
+ "label": "i2S WS",
+ "description": "GPIO Pin für i2S WS"
+ },
+ "i2sSd": {
+ "label": "i2S SD",
+ "description": "GPIO Pin für i2S SD"
+ },
+ "i2sDin": {
+ "label": "i2S DIN",
+ "description": "GPIO Pin für i2S DIN"
+ },
+ "i2sSck": {
+ "label": "i2S SCK",
+ "description": "GPIO Pin für i2S SCK"
+ }
+ },
+ "cannedMessage": {
+ "title": "Einstellungen für vordefinierte Nachrichten",
+ "description": "Einstellungen für das Modul vordefinierte Nachrichten",
+ "moduleEnabled": {
+ "label": "Modul aktiviert",
+ "description": "Vordefinierte Nachrichten aktivieren"
+ },
+ "rotary1Enabled": {
+ "label": "Drehgeber #1 aktiviert",
+ "description": "Drehgeber aktivieren"
+ },
+ "inputbrokerPinA": {
+ "label": "Drehgeber Pin A",
+ "description": "GPIO Pin Wert (1-39) für Drehgeber Pin A"
+ },
+ "inputbrokerPinB": {
+ "label": "Drehgeber Pin B",
+ "description": "GPIO Pin Wert (1-39) für Drehgeber Pin B"
+ },
+ "inputbrokerPinPress": {
+ "label": "Drehgeber Pin Taste",
+ "description": "GPIO Pin Wert (1-39) für Drehgeber Pin Taste"
+ },
+ "inputbrokerEventCw": {
+ "label": "Ereignis im Uhrzeigersinn",
+ "description": "Eingabeereignis auswählen."
+ },
+ "inputbrokerEventCcw": {
+ "label": "Ereignis gegen Uhrzeigersinn",
+ "description": "Eingabeereignis auswählen."
+ },
+ "inputbrokerEventPress": {
+ "label": "Ereignis Tastendruck",
+ "description": "Eingabeereignis auswählen."
+ },
+ "updown1Enabled": {
+ "label": "Geber Hoch/Runter aktiviert",
+ "description": "Aktiviere Geber Hoch/Runter"
+ },
+ "allowInputSource": {
+ "label": "Eingabequelle zulassen",
+ "description": "Wählen Sie aus: '_any', 'rotEnc1', 'upDownEnc1', 'cardkb'"
+ },
+ "sendBell": {
+ "label": "Sende Glocke",
+ "description": "Sendet ein Klingelzeichen (Glocke) mit jeder Nachricht"
+ }
+ },
+ "detectionSensor": {
+ "title": "Sensoreinstellungen für Erkennung",
+ "description": "Einstellungen für das Erkennungssensormodul",
+ "enabled": {
+ "label": "Aktiviert",
+ "description": "Erkennungssensormodul aktivieren oder deaktivieren"
+ },
+ "minimumBroadcastSecs": {
+ "label": "Minimale Übertragungszeit alle Sekunden",
+ "description": "Das Intervall in Sekunden, wie oft eine Nachricht an das Netz gesendet wird, wenn eine Statusänderung erkannt wurde"
+ },
+ "stateBroadcastSecs": {
+ "label": "Statusübertragung alle Sekunden",
+ "description": "Das Intervall in Sekunden, wie oft eine Nachricht mit dem aktuellen Status an das Netz gesendet wird, unabhängig von Änderungen"
+ },
+ "sendBell": {
+ "label": "Sende Glocke",
+ "description": "ASCII-Glocke mit Warnmeldung senden"
+ },
+ "name": {
+ "label": "Anzeigename",
+ "description": "Formatierte Nachricht die an das Netz gesendet wird, maximal 20 Zeichen"
+ },
+ "monitorPin": {
+ "label": "GPIO Pin überwachen",
+ "description": "Der GPIO Pin zur Überwachung von Statusänderungen"
+ },
+ "detectionTriggerType": {
+ "label": "Auslösetyp der Erkennung",
+ "description": "Die Art des zu verwendenden Auslöseereignisses"
+ },
+ "usePullup": {
+ "label": "Pullup verwenden",
+ "description": "Gibt an, ob der INPUT_PULLUP Modus für GPIO Pin verwendet wird oder nicht"
+ }
+ },
+ "externalNotification": {
+ "title": "Einstellungen für externe Benachrichtigungen",
+ "description": "Einstellung für das Modul externe Benachrichtigung",
+ "enabled": {
+ "label": "Modul aktiviert",
+ "description": "Externe Benachrichtigung aktivieren"
+ },
+ "outputMs": {
+ "label": "Ausgabe MS",
+ "description": "Ausgabe MS"
+ },
+ "output": {
+ "label": "Ausgabe",
+ "description": "Ausgabe"
+ },
+ "outputVibra": {
+ "label": "Ausgabe Vibration",
+ "description": "Ausgabe Vibration"
+ },
+ "outputBuzzer": {
+ "label": "Ausgabe Summer",
+ "description": "Ausgabe Summer"
+ },
+ "active": {
+ "label": "Aktiv",
+ "description": "Aktiv"
+ },
+ "alertMessage": {
+ "label": "Warnmeldung",
+ "description": "Warnmeldung"
+ },
+ "alertMessageVibra": {
+ "label": "Vibration bei Warnmeldung",
+ "description": "Vibration bei Warnmeldung"
+ },
+ "alertMessageBuzzer": {
+ "label": "Summer bei Warnmeldung",
+ "description": "Summer bei Warnmeldung"
+ },
+ "alertBell": {
+ "label": "Warnglocke",
+ "description": "Soll beim Empfang eines eingehenden Klingelzeichens (Glocke) eine Warnung ausgelöst werden?"
+ },
+ "alertBellVibra": {
+ "label": "Vibration bei Klingelzeichen",
+ "description": "Vibration bei Klingelzeichen"
+ },
+ "alertBellBuzzer": {
+ "label": "Summer bei Klingelzeichen",
+ "description": "Summer bei Klingelzeichen"
+ },
+ "usePwm": {
+ "label": "PWM verwenden",
+ "description": "PWM verwenden"
+ },
+ "nagTimeout": {
+ "label": "Nervige Verzögerung",
+ "description": "Nervige Verzögerung"
+ },
+ "useI2sAsBuzzer": {
+ "label": "I2S GPIO Pin als Summer verwenden",
+ "description": "I2S GPIO Pin als Summerausgang definieren"
+ }
+ },
+ "mqtt": {
+ "title": "MQTT Einstellungen",
+ "description": "Einstellungen für das MQTT Modul",
+ "enabled": {
+ "label": "Aktiviert",
+ "description": "MQTT aktivieren oder deaktivieren"
+ },
+ "address": {
+ "label": "MQTT Server Adresse",
+ "description": "MQTT Serveradresse für Standard/benutzerdefinierte Server"
+ },
+ "username": {
+ "label": "MQTT Benutzername",
+ "description": "MQTT Benutzername für Standard/benutzerdefinierte Server"
+ },
+ "password": {
+ "label": "MQTT Passwort",
+ "description": "MQTT Passwort für Standard/benutzerdefinierte Server"
+ },
+ "encryptionEnabled": {
+ "label": "Verschlüsselung aktiviert",
+ "description": "MQTT-Verschlüsselung aktivieren oder deaktivieren. Hinweis: Alle Nachrichten werden unverschlüsselt an den MQTT-Broker gesendet, wenn diese Option nicht aktiviert ist. Unabhängig von der eingestellten Kanalverschlüsselung. Einschließlich der Standortdaten."
+ },
+ "jsonEnabled": {
+ "label": "JSON aktiviert",
+ "description": "Gibt an, ob JSON Nachrichten über MQTT gesendet oder empfangen werden sollen"
+ },
+ "tlsEnabled": {
+ "label": "TLS aktiviert",
+ "description": "TLS aktivieren oder deaktivieren"
+ },
+ "root": {
+ "label": "Hauptthema",
+ "description": "MQTT Hauptthema für Standard/Benutzerdefinierte Server"
+ },
+ "proxyToClientEnabled": {
+ "label": "MQTT Client Proxy aktiviert",
+ "description": "Verwendet die Netzwerkverbindung zum Austausch von MQTT Nachrichten mit dem Client."
+ },
+ "mapReportingEnabled": {
+ "label": "Kartenberichte aktiviert",
+ "description": "Ihr Knoten sendet in regelmäßigen Abständen eine unverschlüsselte Nachricht mit Kartenbericht an den konfigurierten MQTT-Server. Einschließlich ID, langen und kurzen Namen, ungefährer Standort, Hardwaremodell, Geräterolle, Firmware-Version, LoRa Region, Modem-Voreinstellung und Name des Primärkanal."
+ },
+ "mapReportSettings": {
+ "publishIntervalSecs": {
+ "label": "Veröffentlichungsintervall Kartenbericht (s)",
+ "description": "Intervall in Sekunden, um Kartenberichte zu veröffentlichen"
+ },
+ "positionPrecision": {
+ "label": "Ungefährer Standort",
+ "description": "Der geteilte Standort mit einer Genauigkeit innerhalb dieser Entfernung",
+ "options": {
+ "metric_km23": "Innerhalb von 23 km",
+ "metric_km12": "Innerhalb von 12 km",
+ "metric_km5_8": "Innerhalb von 5,8 km",
+ "metric_km2_9": "Innerhalb von 2,9 km",
+ "metric_km1_5": "Innerhalb von 1,5 km",
+ "metric_m700": "Innerhalb von 700 m",
+ "metric_m350": "Innerhalb von 350 m",
+ "metric_m200": "Innerhalb von 200 m",
+ "metric_m90": "Innerhalb von 90 m",
+ "metric_m50": "Innerhalb von 50 m",
+ "imperial_mi15": "Innerhalb von 15 Meilen",
+ "imperial_mi7_3": "Innerhalb von 7,3 Meilen",
+ "imperial_mi3_6": "Innerhalb von 3,6 Meilen",
+ "imperial_mi1_8": "Innerhalb von 1,8 Meilen",
+ "imperial_mi0_9": "Innerhalb von 0,9 Meilen",
+ "imperial_mi0_5": "Innerhalb von 0,5 Meilen",
+ "imperial_mi0_2": "Innerhalb von 0,2 Meilen",
+ "imperial_ft600": "Innerhalb von 600 Fuß",
+ "imperial_ft300": "Innerhalb von 300 Fuß",
+ "imperial_ft150": "Innerhalb von 150 Fuß"
+ }
+ }
+ }
+ },
+ "neighborInfo": {
+ "title": "Einstellung Nachbarinformation",
+ "description": "Einstellungen für das Modul Nachbarinformation",
+ "enabled": {
+ "label": "Aktiviert",
+ "description": "Nachbarinformation Modul aktivieren oder deaktivieren"
+ },
+ "updateInterval": {
+ "label": "Aktualisierungsintervall",
+ "description": "Intervall in Sekunden, wie oft die Nachbarinformation an das Netz gesendet wird"
+ }
+ },
+ "paxcounter": {
+ "title": "Einstellung für Pax Zähler",
+ "description": "Einstellungen für das Modul Pax Zähler",
+ "enabled": {
+ "label": "Modul aktiviert",
+ "description": "Aktiviere Pax Zähler"
+ },
+ "paxcounterUpdateInterval": {
+ "label": "Aktualisierungsintervall (Sekunden)",
+ "description": "Wie lange soll zwischen dem Senden von Pax Zählernachrichten gewartet werden"
+ },
+ "wifiThreshold": {
+ "label": "WLAN RSSI Grenzwert",
+ "description": "Bei welchem WLAN RSSI Grenzwert sollte der Zähler erhöht werden. Standardwert -80"
+ },
+ "bleThreshold": {
+ "label": "BLE RSSI Grenzwert",
+ "description": "Bei welchem BLE RSSI Grenzwert sollte der Zähler erhöht werden. Standardwert -80"
+ }
+ },
+ "rangeTest": {
+ "title": "Einstellung Reichweitentest",
+ "description": "Einstellungen für das Modul Reichweitentest",
+ "enabled": {
+ "label": "Modul aktiviert",
+ "description": "Reichweitentest aktivieren"
+ },
+ "sender": {
+ "label": "Nachrichtenintervall",
+ "description": "Wie lange soll zwischen dem Senden von Testnachrichten gewartet werden"
+ },
+ "save": {
+ "label": "CSV im internen Speicher abspeichern",
+ "description": "Nur für ESP32"
+ }
+ },
+ "serial": {
+ "title": "Serielle Einstellungen",
+ "description": "Einstellungen für das serielle Modul",
+ "enabled": {
+ "label": "Modul aktiviert",
+ "description": "Serielle Ausgabe aktivieren"
+ },
+ "echo": {
+ "label": "Echo",
+ "description": "Wenn aktiviert, werden alle Nachrichten, die Sie senden, an Ihr Gerät zurückgesendet"
+ },
+ "rxd": {
+ "label": "GPIO Empfangen",
+ "description": "Setzen Sie den GPIO Pin, den Sie eingerichtet haben, als RXD Pin."
+ },
+ "txd": {
+ "label": "GPIO Senden",
+ "description": "Setzen Sie den GPIO Pin, den Sie eingerichtet haben, als TXD Pin."
+ },
+ "baud": {
+ "label": "Baudrate",
+ "description": "Serielle Baudrate"
+ },
+ "timeout": {
+ "label": "Zeitlimit erreicht",
+ "description": "Wartezeit in Sekunden bis eine Nachricht als gesendet angenommen wird"
+ },
+ "mode": {
+ "label": "Betriebsmodus",
+ "description": "Modus auswählen"
+ },
+ "overrideConsoleSerialPort": {
+ "label": "Seriellen Port der Konsole überschreiben",
+ "description": "Wenn Sie einen seriellen Port an die Konsole angeschlossen haben, wird diese überschrieben."
+ }
+ },
+ "storeForward": {
+ "title": "Speichern & Weiterleiten Einstellungen",
+ "description": "Einstellungen für das Modul Speichern & Weiterleiten",
+ "enabled": {
+ "label": "Modul aktiviert",
+ "description": "Speichern & Weiterleiten aktivieren"
+ },
+ "heartbeat": {
+ "label": "Herzschlag aktiviert",
+ "description": "Herzschlag für Speichern & Weiterleiten aktivieren"
+ },
+ "records": {
+ "label": "Anzahl Einträge",
+ "description": "Anzahl der zu speichernden Datensätze"
+ },
+ "historyReturnMax": {
+ "label": "Verlauf Rückgabewert maximal",
+ "description": "Maximale Anzahl an zurückzugebenden Datensätzen"
+ },
+ "historyReturnWindow": {
+ "label": "Zeitraum Rückgabewert",
+ "description": "Datensätze aus diesem Zeitfenster zurückgeben (Minuten)"
+ }
+ },
+ "telemetry": {
+ "title": "Telemetrieeinstellungen",
+ "description": "Einstellungen für das Telemetriemodul",
+ "deviceUpdateInterval": {
+ "label": "Gerätekennzahlen",
+ "description": "Aktualisierungsintervall für Gerätekennzahlen (Sekunden)"
+ },
+ "environmentUpdateInterval": {
+ "label": "Aktualisierungsintervall für Umweltdaten (Sekunden)",
+ "description": ""
+ },
+ "environmentMeasurementEnabled": {
+ "label": "Modul aktiviert",
+ "description": "Aktiviert die Telemetrie für Umweltdaten"
+ },
+ "environmentScreenEnabled": {
+ "label": "OLED Anzeige aktivieren",
+ "description": "Zeige das Telemetriemodul auf der OLED Anzeige"
+ },
+ "environmentDisplayFahrenheit": {
+ "label": "Temperatur in Fahrenheit",
+ "description": "Temperatur in Fahrenheit anzeigen"
+ },
+ "airQualityEnabled": {
+ "label": "Luftqualität aktiviert",
+ "description": "Telemetrie für Luftqualität aktivieren"
+ },
+ "airQualityInterval": {
+ "label": "Aktualisierungsintervall Luftqualität",
+ "description": "Wie oft werden Luftqualitätsdaten über das Netz gesendet"
+ },
+ "powerMeasurementEnabled": {
+ "label": "Energiemessung aktiviert",
+ "description": "Aktiviere die Telemetrie für die Energiemessung"
+ },
+ "powerUpdateInterval": {
+ "label": "Aktualisierungsintervall Energie",
+ "description": "Wie oft werden Energiedaten an das Netz gesendet"
+ },
+ "powerScreenEnabled": {
+ "label": "Energieanzeige aktiviert",
+ "description": "Aktiviere die Anzeige für Energietelemetrie"
+ }
+ }
}
diff --git a/packages/web/public/i18n/locales/de-DE/nodes.json b/packages/web/public/i18n/locales/de-DE/nodes.json
index 969d6fbe..5995c841 100644
--- a/packages/web/public/i18n/locales/de-DE/nodes.json
+++ b/packages/web/public/i18n/locales/de-DE/nodes.json
@@ -1,63 +1,59 @@
{
- "nodeDetail": {
- "publicKeyEnabled": {
- "label": "Öffentlicher Schlüssel aktiviert"
- },
- "noPublicKey": {
- "label": "Kein öffentlicher Schlüssel"
- },
- "directMessage": {
- "label": "Direktnachricht {{shortName}}"
- },
- "favorite": {
- "label": "Favorit",
- "tooltip": "Diesen Knoten zu Favoriten hinzufügen oder entfernen"
- },
- "notFavorite": {
- "label": "Kein Favorit"
- },
- "error": {
- "label": "Fehler",
- "text": "Beim Abrufen der Knotendetails ist ein Fehler aufgetreten. Bitte versuchen Sie es später erneut."
- },
- "status": {
- "heard": "Gehört",
- "mqtt": "MQTT"
- },
- "elevation": {
- "label": "Höhe"
- },
- "channelUtil": {
- "label": "Kanal-Auslastung"
- },
- "airtimeUtil": {
- "label": "Sendezeit-Auslastung"
- }
- },
- "nodesTable": {
- "headings": {
- "longName": "Langer Name",
- "connection": "Verbindung",
- "lastHeard": "Zuletzt gehört",
- "encryption": "Verschlüsselung",
- "model": "Modell",
- "macAddress": "MAC Adresse"
- },
- "connectionStatus": {
- "direct": "Direkt",
- "away": "entfernt",
- "unknown": "-",
- "viaMqtt": ", über MQTT"
- },
- "lastHeardStatus": {
- "never": "Nie"
- }
- },
- "actions": {
- "added": "Hinzugefügt",
- "removed": "Entfernt",
- "ignoreNode": "Knoten ignorieren",
- "unignoreNode": "Knoten akzeptieren",
- "requestPosition": "Standort anfordern"
- }
+ "nodeDetail": {
+ "publicKeyEnabled": {
+ "label": "Öffentlicher Schlüssel aktiviert"
+ },
+ "noPublicKey": {
+ "label": "Kein öffentlicher Schlüssel"
+ },
+ "directMessage": {
+ "label": "Direktnachricht {{shortName}}"
+ },
+ "favorite": {
+ "label": "Favorit",
+ "tooltip": "Diesen Knoten zu Favoriten hinzufügen oder entfernen"
+ },
+ "notFavorite": {
+ "label": "Kein Favorit"
+ },
+ "error": {
+ "label": "Fehler",
+ "text": "Beim Abrufen der Knotendetails ist ein Fehler aufgetreten. Bitte versuchen Sie es später erneut."
+ },
+ "status": {
+ "heard": "Gehört",
+ "mqtt": "MQTT"
+ },
+ "elevation": {
+ "label": "Höhe"
+ },
+ "channelUtil": {
+ "label": "Kanal-Auslastung"
+ },
+ "airtimeUtil": {
+ "label": "Sendezeit-Auslastung"
+ }
+ },
+ "nodesTable": {
+ "headings": {
+ "longName": "Langer Name",
+ "connection": "Verbindung",
+ "lastHeard": "Zuletzt gehört",
+ "encryption": "Verschlüsselung",
+ "model": "Modell",
+ "macAddress": "MAC Adresse"
+ },
+ "connectionStatus": {
+ "direct": "Direkt",
+ "away": "entfernt",
+ "viaMqtt": ", über MQTT"
+ }
+ },
+ "actions": {
+ "added": "Hinzugefügt",
+ "removed": "Entfernt",
+ "ignoreNode": "Knoten ignorieren",
+ "unignoreNode": "Knoten akzeptieren",
+ "requestPosition": "Standort anfordern"
+ }
}
diff --git a/packages/web/public/i18n/locales/de-DE/ui.json b/packages/web/public/i18n/locales/de-DE/ui.json
index ccd78820..e3ecc73a 100644
--- a/packages/web/public/i18n/locales/de-DE/ui.json
+++ b/packages/web/public/i18n/locales/de-DE/ui.json
@@ -1,228 +1,229 @@
{
- "navigation": {
- "title": "Navigation",
- "messages": "Nachrichten",
- "map": "Karte",
- "config": "Einstellungen",
- "radioConfig": "Funkgerätekonfiguration",
- "moduleConfig": "Moduleinstellungen",
- "channels": "Kanäle",
- "nodes": "Knoten"
- },
- "app": {
- "title": "Meshtastic",
- "logo": "Meshtastic Logo"
- },
- "sidebar": {
- "collapseToggle": {
- "button": {
- "open": "Seitenleiste öffnen",
- "close": "Seitenleiste schließen"
- }
- },
- "deviceInfo": {
- "volts": "{{voltage}} Volt",
- "firmware": {
- "title": "Firmware",
- "version": "v{{version}}",
- "buildDate": "Erstelldatum: {{date}}"
- },
- "deviceName": {
- "title": "Gerätename",
- "changeName": "Gerätenamen ändern",
- "placeholder": "Gerätenamen eingeben"
- },
- "editDeviceName": "Gerätenamen bearbeiten"
- }
- },
- "batteryStatus": {
- "charging": "{{level}}% Ladung",
- "pluggedIn": "Wird geladen",
- "title": "Batterie"
- },
- "search": {
- "nodes": "Knoten suchen...",
- "channels": "Kanäle suchen...",
- "commandPalette": "Befehle suchen..."
- },
- "toast": {
- "positionRequestSent": {
- "title": "Standortanfrage gesendet."
- },
- "requestingPosition": {
- "title": "Standort wird angefordert, bitte warten..."
- },
- "sendingTraceroute": {
- "title": "Sende Traceroute, bitte warten..."
- },
- "tracerouteSent": {
- "title": "Traceroute gesendet."
- },
- "savedChannel": {
- "title": "Gespeicherter Kanal: {{channelName}}"
- },
- "messages": {
- "pkiEncryption": {
- "title": "Der Chat verwendet PKI-Verschlüsselung."
- },
- "pskEncryption": {
- "title": "Chat verwendet PSK-Verschlüsselung."
- }
- },
- "configSaveError": {
- "title": "Fehler beim Speichern von Einstellung",
- "description": "Beim Speichern der Einstellungen ist ein Fehler aufgetreten."
- },
- "validationError": {
- "title": "Einstellungsfehler vorhanden",
- "description": "Bitte korrigieren Sie die Einstellungsfehler vor dem Speichern."
- },
- "saveSuccess": {
- "title": "Einstellungen speichern",
- "description": "Die Einstellungsänderung {{case}} wurde gespeichert."
- },
- "favoriteNode": {
- "title": "{{action}} {{nodeName}} {{direction}} Favoriten.",
- "action": {
- "added": "Hinzugefügt",
- "removed": "Entfernt",
- "to": "bis",
- "from": "von"
- }
- },
- "ignoreNode": {
- "title": "{{action}} {{nodeName}} {{direction}} Ignorierliste",
- "action": {
- "added": "Hinzugefügt",
- "removed": "Entfernt",
- "to": "bis",
- "from": "von"
- }
- }
- },
- "notifications": {
- "copied": {
- "label": "Kopiert!"
- },
- "copyToClipboard": {
- "label": "In die Zwischenablage kopieren"
- },
- "hidePassword": {
- "label": "Passwort verbergen"
- },
- "showPassword": {
- "label": "Passwort anzeigen"
- },
- "deliveryStatus": {
- "delivered": "Zugestellt",
- "failed": "Zustellung fehlgeschlagen",
- "waiting": "Warte...",
- "unknown": "Unbekannt"
- }
- },
- "general": {
- "label": "Allgemein"
- },
- "hardware": {
- "label": "Hardware"
- },
- "metrics": {
- "label": "Messgrößen"
- },
- "role": {
- "label": "Rolle"
- },
- "filter": {
- "label": "Filter"
- },
- "advanced": {
- "label": "Fortgeschritten"
- },
- "clearInput": {
- "label": "Eingabe löschen"
- },
- "resetFilters": {
- "label": "Filter zurücksetzen"
- },
- "nodeName": {
- "label": "Knotenname/-nummer",
- "placeholder": "Meshtastic 1234"
- },
- "airtimeUtilization": {
- "label": "Sendezeit-Auslastung (%)"
- },
- "batteryLevel": {
- "label": "Akkustand (%)",
- "labelText": "Akkustand (%): {{value}}"
- },
- "batteryVoltage": {
- "label": "Batteriespannung (V)",
- "title": "Spannung"
- },
- "channelUtilization": {
- "label": "Kanalauslastung (%)"
- },
- "hops": {
- "direct": "Direkt",
- "label": "Anzahl Hops",
- "text": "Sprungweite: {{value}}"
- },
- "lastHeard": {
- "label": "Zuletzt gehört",
- "labelText": "Zuletzt gehört: {{value}}",
- "nowLabel": "Jetzt"
- },
- "snr": {
- "label": "SNR (dB)"
- },
- "favorites": {
- "label": "Favoriten"
- },
- "hide": {
- "label": "Ausblenden"
- },
- "showOnly": {
- "label": "Zeige nur"
- },
- "viaMqtt": {
- "label": "Über MQTT verbunden"
- },
- "hopsUnknown": {
- "label": "Unbekannte Sprungweite"
- },
- "showUnheard": {
- "label": "Nie gehört"
- },
- "language": {
- "label": "Sprache",
- "changeLanguage": "Sprache ändern"
- },
- "theme": {
- "dark": "Dunkel",
- "light": "Hell",
- "system": "Automatisch",
- "changeTheme": "Farbschema ändern"
- },
- "errorPage": {
- "title": "Das ist ein wenig peinlich...",
- "description1": "Es tut uns wirklich leid, aber im Webclient ist ein Fehler aufgetreten, der es zum Absturz gebracht hat.
Das soll nicht passieren, und wir arbeiten hart daran, es zu beheben.",
- "description2": "Der beste Weg, um zu verhindern, dass sich dies Ihnen oder irgendjemand anderem wiederholt, besteht darin, uns über dieses Problem zu berichten.",
- "reportInstructions": "Bitte fügen Sie folgende Informationen in Ihren Bericht ein:",
- "reportSteps": {
- "step1": "Was haben Sie getan, als der Fehler aufgetreten ist",
- "step2": "Was haben Sie erwartet",
- "step3": "Was tatsächlich passiert ist",
- "step4": "Sonstige relevante Informationen"
- },
- "reportLink": "Sie können das Problem auf unserem <0>GitHub0> melden",
- "dashboardLink": "Zurück zum <0>Dashboard0>",
- "detailsSummary": "Fehlerdetails",
- "errorMessageLabel": "Fehlermeldungen:",
- "stackTraceLabel": "Stapelabzug:",
- "fallbackError": "{{error}}"
- },
- "footer": {
- "text": "Powered by <0>▲ Vercel0> | Meshtastic®️ ist eine eingetragene Marke der Meshtastic LLC. | <1>Rechtliche Informationen1>",
- "commitSha": "Commit SHA: {{sha}}"
- }
+ "navigation": {
+ "title": "Navigation",
+ "messages": "Nachrichten",
+ "map": "Karte",
+ "settings": "Einstellungen",
+ "channels": "Kanäle",
+ "radioConfig": "Funkgerätekonfiguration",
+ "deviceConfig": "Geräteeinstellungen",
+ "moduleConfig": "Moduleinstellungen",
+ "nodes": "Knoten"
+ },
+ "app": {
+ "title": "Meshtastic",
+ "logo": "Meshtastic Logo"
+ },
+ "sidebar": {
+ "collapseToggle": {
+ "button": {
+ "open": "Seitenleiste öffnen",
+ "close": "Seitenleiste schließen"
+ }
+ },
+ "deviceInfo": {
+ "volts": "{{voltage}} Volt",
+ "firmware": {
+ "title": "Firmware",
+ "version": "v{{version}}",
+ "buildDate": "Erstelldatum: {{date}}"
+ }
+ }
+ },
+ "batteryStatus": {
+ "charging": "{{level}}% Ladung",
+ "pluggedIn": "Wird geladen",
+ "title": "Batterie"
+ },
+ "search": {
+ "nodes": "Knoten suchen...",
+ "channels": "Kanäle suchen...",
+ "commandPalette": "Befehle suchen..."
+ },
+ "toast": {
+ "positionRequestSent": {
+ "title": "Standortanfrage gesendet."
+ },
+ "requestingPosition": {
+ "title": "Standort wird angefordert, bitte warten..."
+ },
+ "sendingTraceroute": {
+ "title": "Sende Traceroute, bitte warten..."
+ },
+ "tracerouteSent": {
+ "title": "Traceroute gesendet."
+ },
+ "savedChannel": {
+ "title": "Gespeicherter Kanal: {{channelName}}"
+ },
+ "messages": {
+ "pkiEncryption": {
+ "title": "Der Chat verwendet PKI-Verschlüsselung."
+ },
+ "pskEncryption": {
+ "title": "Chat verwendet PSK-Verschlüsselung."
+ }
+ },
+ "configSaveError": {
+ "title": "Fehler beim Speichern von Einstellung",
+ "description": "Beim Speichern der Einstellungen ist ein Fehler aufgetreten."
+ },
+ "validationError": {
+ "title": "Einstellungsfehler vorhanden",
+ "description": "Bitte korrigieren Sie die Einstellungsfehler vor dem Speichern."
+ },
+ "saveSuccess": {
+ "title": "Einstellungen speichern",
+ "description": "Die Einstellungsänderung {{case}} wurde gespeichert."
+ },
+ "saveAllSuccess": {
+ "title": "Gespeichert",
+ "description": "Alle Einstellungsänderungen wurden gespeichert."
+ },
+ "favoriteNode": {
+ "title": "{{action}} {{nodeName}} {{direction}} Favoriten.",
+ "action": {
+ "added": "Hinzugefügt",
+ "removed": "Entfernt",
+ "to": "bis",
+ "from": "von"
+ }
+ },
+ "ignoreNode": {
+ "title": "{{action}} {{nodeName}} {{direction}} Ignorierliste",
+ "action": {
+ "added": "Hinzugefügt",
+ "removed": "Entfernt",
+ "to": "bis",
+ "from": "von"
+ }
+ }
+ },
+ "notifications": {
+ "copied": {
+ "label": "Kopiert!"
+ },
+ "copyToClipboard": {
+ "label": "In die Zwischenablage kopieren"
+ },
+ "hidePassword": {
+ "label": "Passwort verbergen"
+ },
+ "showPassword": {
+ "label": "Passwort anzeigen"
+ },
+ "deliveryStatus": {
+ "delivered": "Zugestellt",
+ "failed": "Zustellung fehlgeschlagen",
+ "waiting": "Warte...",
+ "unknown": "Unbekannt"
+ }
+ },
+ "general": {
+ "label": "Allgemein"
+ },
+ "hardware": {
+ "label": "Hardware"
+ },
+ "metrics": {
+ "label": "Messgrößen"
+ },
+ "role": {
+ "label": "Rolle"
+ },
+ "filter": {
+ "label": "Filter"
+ },
+ "advanced": {
+ "label": "Fortgeschritten"
+ },
+ "clearInput": {
+ "label": "Eingabe löschen"
+ },
+ "resetFilters": {
+ "label": "Filter zurücksetzen"
+ },
+ "nodeName": {
+ "label": "Knotenname/-nummer",
+ "placeholder": "Meshtastic 1234"
+ },
+ "airtimeUtilization": {
+ "label": "Sendezeit-Auslastung (%)",
+ "short": "Sendezeit-Auslastung. (%)"
+ },
+ "batteryLevel": {
+ "label": "Akkustand (%)",
+ "labelText": "Akkustand (%): {{value}}"
+ },
+ "batteryVoltage": {
+ "label": "Batteriespannung (V)",
+ "title": "Spannung"
+ },
+ "channelUtilization": {
+ "label": "Kanalauslastung (%)",
+ "short": "Kanal-Auslastung. (%)"
+ },
+ "hops": {
+ "direct": "Direkt",
+ "label": "Anzahl Hops",
+ "text": "Sprungweite: {{value}}"
+ },
+ "lastHeard": {
+ "label": "Zuletzt gehört",
+ "labelText": "Zuletzt gehört: {{value}}",
+ "nowLabel": "Jetzt"
+ },
+ "snr": {
+ "label": "SNR (dB)"
+ },
+ "favorites": {
+ "label": "Favoriten"
+ },
+ "hide": {
+ "label": "Ausblenden"
+ },
+ "showOnly": {
+ "label": "Zeige nur"
+ },
+ "viaMqtt": {
+ "label": "Über MQTT verbunden"
+ },
+ "hopsUnknown": {
+ "label": "Unbekannte Sprungweite"
+ },
+ "showUnheard": {
+ "label": "Nie gehört"
+ },
+ "language": {
+ "label": "Sprache",
+ "changeLanguage": "Sprache ändern"
+ },
+ "theme": {
+ "dark": "Dunkel",
+ "light": "Hell",
+ "system": "Automatisch",
+ "changeTheme": "Farbschema ändern"
+ },
+ "errorPage": {
+ "title": "Das ist ein wenig peinlich...",
+ "description1": "Es tut uns wirklich leid, aber im Webclient ist ein Fehler aufgetreten, der es zum Absturz gebracht hat.
Das soll nicht passieren, und wir arbeiten hart daran, es zu beheben.",
+ "description2": "Der beste Weg, um zu verhindern, dass sich dies Ihnen oder irgendjemand anderem wiederholt, besteht darin, uns über dieses Problem zu berichten.",
+ "reportInstructions": "Bitte fügen Sie folgende Informationen in Ihren Bericht ein:",
+ "reportSteps": {
+ "step1": "Was haben Sie getan, als der Fehler aufgetreten ist",
+ "step2": "Was haben Sie erwartet",
+ "step3": "Was tatsächlich passiert ist",
+ "step4": "Sonstige relevante Informationen"
+ },
+ "reportLink": "Sie können das Problem auf unserem <0>GitHub0> melden",
+ "dashboardLink": "Zurück zum <0>Dashboard0>",
+ "detailsSummary": "Fehlerdetails",
+ "errorMessageLabel": "Fehlermeldungen:",
+ "stackTraceLabel": "Stapelabzug:",
+ "fallbackError": "{{error}}"
+ },
+ "footer": {
+ "text": "Powered by <0>▲ Vercel0> | Meshtastic®️ ist eine eingetragene Marke der Meshtastic LLC. | <1>Rechtliche Informationen1>",
+ "commitSha": "Commit SHA: {{sha}}"
+ }
}
diff --git a/packages/web/public/i18n/locales/es-ES/channels.json b/packages/web/public/i18n/locales/es-ES/channels.json
index bd336676..1b531ad2 100644
--- a/packages/web/public/i18n/locales/es-ES/channels.json
+++ b/packages/web/public/i18n/locales/es-ES/channels.json
@@ -1,69 +1,71 @@
{
- "page": {
- "sectionLabel": "Canales",
- "channelName": "Canal: {{channelName}}",
- "broadcastLabel": "Primario",
- "channelIndex": "Cnl {{index}}"
- },
- "validation": {
- "pskInvalid": "Por favor, introduzca un PSK de {{bits}} bit válido."
- },
- "settings": {
- "label": "Ajustes del canal",
- "description": "Criptografía, MQTT y otros ajustes"
- },
- "role": {
- "label": "Rol",
- "description": "La telemetría del dispositivo se envía sobre PRIMARY. Solo se permite un PRIMARIO",
- "options": {
- "primary": "PRIMARIO",
- "disabled": "DESHABILITADO",
- "secondary": "SECUNDARIO"
- }
- },
- "psk": {
- "label": "Clave pre-compartida",
- "description": "Longitudes PSK soportadas: 256-bit, 128-bit, 8-bit, Vacío (0-bit)",
- "generate": "Generar Nombre"
- },
- "name": {
- "label": "Nombre",
- "description": "Un nombre único para el canal <12 bytes, dejar en blanco por defecto"
- },
- "uplinkEnabled": {
- "label": "Subida de Paquetes Permitida",
- "description": "Enviar mensajes de la malla local a MQTT"
- },
- "downlinkEnabled": {
- "label": "Baja de Paquetes Permitida",
- "description": "Enviar mensajes de MQTT a la malla local"
- },
- "positionPrecision": {
- "label": "Ubicación",
- "description": "La precisión de la ubicación a compartir con el canal. Se puede desactivar.",
- "options": {
- "none": "No compartir la ubicación",
- "precise": "Ubicación precisa",
- "metric_km23": "En 23 kilómetros",
- "metric_km12": "En 12 kilómetros",
- "metric_km5_8": "En 5,8 kilómetros",
- "metric_km2_9": "En 2.9 kilómetros",
- "metric_km1_5": "En 1,5 kilómetros",
- "metric_m700": "En 700 metros",
- "metric_m350": "En 350 metros",
- "metric_m200": "En 200 metros",
- "metric_m90": "En 90 metros",
- "metric_m50": "En 50 metros",
- "imperial_mi15": "En 15 millas",
- "imperial_mi7_3": "En 7.3 millas",
- "imperial_mi3_6": "En 3.6 millas",
- "imperial_mi1_8": "En 1.8 millas",
- "imperial_mi0_9": "En 0.9 millas",
- "imperial_mi0_5": "En 0.5 millas",
- "imperial_mi0_2": "En 0.2 millas",
- "imperial_ft600": "En 600 pies",
- "imperial_ft300": "En 300 pies",
- "imperial_ft150": "En 150 pies"
- }
- }
+ "page": {
+ "sectionLabel": "Canales",
+ "channelName": "Canal: {{channelName}}",
+ "broadcastLabel": "Primario",
+ "channelIndex": "Cnl {{index}}",
+ "import": "Importar",
+ "export": "Exportar"
+ },
+ "validation": {
+ "pskInvalid": "Por favor, introduzca un PSK de {{bits}} bit válido."
+ },
+ "settings": {
+ "label": "Ajustes del canal",
+ "description": "Criptografía, MQTT y otros ajustes"
+ },
+ "role": {
+ "label": "Rol",
+ "description": "La telemetría del dispositivo se envía sobre PRIMARY. Solo se permite un PRIMARIO",
+ "options": {
+ "primary": "PRIMARIO",
+ "disabled": "DESHABILITADO",
+ "secondary": "SECUNDARIO"
+ }
+ },
+ "psk": {
+ "label": "Clave pre-compartida",
+ "description": "Longitudes PSK soportadas: 256-bit, 128-bit, 8-bit, Vacío (0-bit)",
+ "generate": "Generar Nombre"
+ },
+ "name": {
+ "label": "Nombre",
+ "description": "Un nombre único para el canal <12 bytes, dejar en blanco por defecto"
+ },
+ "uplinkEnabled": {
+ "label": "Subida de Paquetes Permitida",
+ "description": "Enviar mensajes de la malla local a MQTT"
+ },
+ "downlinkEnabled": {
+ "label": "Baja de Paquetes Permitida",
+ "description": "Enviar mensajes de MQTT a la malla local"
+ },
+ "positionPrecision": {
+ "label": "Ubicación",
+ "description": "La precisión de la ubicación a compartir con el canal. Se puede desactivar.",
+ "options": {
+ "none": "No compartir la ubicación",
+ "precise": "Ubicación precisa",
+ "metric_km23": "En 23 kilómetros",
+ "metric_km12": "En 12 kilómetros",
+ "metric_km5_8": "En 5,8 kilómetros",
+ "metric_km2_9": "En 2.9 kilómetros",
+ "metric_km1_5": "En 1,5 kilómetros",
+ "metric_m700": "En 700 metros",
+ "metric_m350": "En 350 metros",
+ "metric_m200": "En 200 metros",
+ "metric_m90": "En 90 metros",
+ "metric_m50": "En 50 metros",
+ "imperial_mi15": "En 15 millas",
+ "imperial_mi7_3": "En 7.3 millas",
+ "imperial_mi3_6": "En 3.6 millas",
+ "imperial_mi1_8": "En 1.8 millas",
+ "imperial_mi0_9": "En 0.9 millas",
+ "imperial_mi0_5": "En 0.5 millas",
+ "imperial_mi0_2": "En 0.2 millas",
+ "imperial_ft600": "En 600 pies",
+ "imperial_ft300": "En 300 pies",
+ "imperial_ft150": "En 150 pies"
+ }
+ }
}
diff --git a/packages/web/public/i18n/locales/es-ES/commandPalette.json b/packages/web/public/i18n/locales/es-ES/commandPalette.json
index dc3b9c0c..50d7813a 100644
--- a/packages/web/public/i18n/locales/es-ES/commandPalette.json
+++ b/packages/web/public/i18n/locales/es-ES/commandPalette.json
@@ -15,7 +15,6 @@
"messages": "Mensajes",
"map": "Mapa",
"config": "Configuración",
- "channels": "Canales",
"nodes": "Nodos"
}
},
@@ -45,7 +44,8 @@
"label": "Depuración",
"command": {
"reconfigure": "Volver a configurar",
- "clearAllStoredMessages": "Borrar mensajes guardados"
+ "clearAllStoredMessages": "Borrar mensajes guardados",
+ "clearAllStores": "Clear All Local Storage"
}
}
}
diff --git a/packages/web/public/i18n/locales/es-ES/common.json b/packages/web/public/i18n/locales/es-ES/common.json
index f9c86c94..0b8d04c0 100644
--- a/packages/web/public/i18n/locales/es-ES/common.json
+++ b/packages/web/public/i18n/locales/es-ES/common.json
@@ -1,142 +1,157 @@
{
- "button": {
- "apply": "Aplique",
- "backupKey": "Clave de la copia de seguridad",
- "cancel": "Cancelar",
- "clearMessages": "Borrar mensajes",
- "close": "Cerrar",
- "confirm": "Confirmar",
- "delete": "Eliminar",
- "dismiss": "Descartar",
- "download": "Descarga",
- "export": "Exportar",
- "generate": "Generar",
- "regenerate": "Regenerar",
- "import": "Importar",
- "message": "Mensaje",
- "now": "Ahora",
- "ok": "Vale",
- "print": "Imprimir",
- "remove": "Quitar",
- "requestNewKeys": "Solicitar nuevas claves",
- "requestPosition": "Solicitar ubicación",
- "reset": "Reiniciar",
- "save": "Guardar",
- "scanQr": "Escanear el código QR",
- "traceRoute": "Trazar ruta",
- "submit": "Enviar"
- },
- "app": {
- "title": "Meshtastic",
- "fullTitle": "Cliente Web Meshtastic"
- },
- "loading": "Cargando...",
- "unit": {
- "cps": "CPS",
- "dbm": "dBm",
- "hertz": "Hz",
- "hop": {
- "one": "Salto",
- "plural": "Saltos"
- },
- "hopsAway": {
- "one": "{{count}} salto lejos",
- "plural": "{{count}} saltos lejos",
- "unknown": "Saltos desconocidos"
- },
- "megahertz": "MHz",
- "raw": "bruto",
- "meter": {
- "one": "Metro",
- "plural": "Metros",
- "suffix": "m"
- },
- "minute": {
- "one": "Minuto",
- "plural": "Minutos"
- },
- "hour": {
- "one": "Hora",
- "plural": "Horas"
- },
- "millisecond": {
- "one": "Milisegundo",
- "plural": "Milisegundos",
- "suffix": " ms"
- },
- "second": {
- "one": "Segundo",
- "plural": "Segundos"
- },
- "day": {
- "one": "Día",
- "plural": "Días"
- },
- "month": {
- "one": "Mes",
- "plural": "Meses"
- },
- "year": {
- "one": "Año",
- "plural": "Años"
- },
- "snr": "SNR",
- "volt": {
- "one": "Voltio",
- "plural": "Voltios",
- "suffix": "V"
- },
- "record": {
- "one": "Registros",
- "plural": "Registros"
- }
- },
- "security": {
- "0bit": "Vacío",
- "8bit": "8 bits",
- "128bit": "128 bits",
- "256bit": "256 bits"
- },
- "unknown": {
- "longName": "Desconocido",
- "shortName": "UNK",
- "notAvailable": "N/A",
- "num": "??"
- },
- "nodeUnknownPrefix": "!",
- "unset": "No Configurado",
- "fallbackName": "Meshtastic {{last4}}",
- "node": "Nodo",
- "formValidation": {
- "unsavedChanges": "Cambios no guardados",
- "tooBig": {
- "string": "Demasiado largo, se esperaba menos o igual a {{maximum}} caracteres.",
- "number": "Demasiado grande, se esperaba un número menor que o igual a {{maximum}}.",
- "bytes": "Demasiado grande, se esperaba menos o igual a los bytes {{params.maximum}}."
- },
- "tooSmall": {
- "string": "Demasiado corto, se esperaba más o igual a {{minimum}}. carácteres.",
- "number": "Demasiado pequeño, esperaba un número mayor o igual a {{minimum}}."
- },
- "invalidFormat": {
- "ipv4": "Formato no válido, se esperaba una dirección IPv4.",
- "key": "Formato no válido, se esperaba una clave pre-compartida codificada en Base64 (PSK)."
- },
- "invalidType": {
- "number": "Carácter no válido, se espera un número."
- },
- "pskLength": {
- "0bit": "Es necesario que la clave esté vacía.",
- "8bit": "Se requiere que la clave sea una clave pre-compartida de 8 bits (PSK).",
- "128bit": "Se requiere que la clave sea una clave pre-compartida de 128 bits (PSK).",
- "256bit": "Se requiere que la clave sea una clave pre-compartida de 256 bits (PSK)."
- },
- "required": {
- "generic": "Este campo es obligatorio.",
- "managed": "Se solicita al menos una clave de administración si se administra el nodo.",
- "key": "Se requiere clave."
- }
- },
- "yes": "Sí",
- "no": "No"
+ "button": {
+ "apply": "Aplique",
+ "backupKey": "Clave de la copia de seguridad",
+ "cancel": "Cancelar",
+ "clearMessages": "Borrar mensajes",
+ "close": "Cerrar",
+ "confirm": "Confirmar",
+ "delete": "Eliminar",
+ "dismiss": "Descartar",
+ "download": "Descarga",
+ "export": "Exportar",
+ "generate": "Generar",
+ "regenerate": "Regenerar",
+ "import": "Importar",
+ "message": "Mensaje",
+ "now": "Ahora",
+ "ok": "Vale",
+ "print": "Imprimir",
+ "remove": "Quitar",
+ "requestNewKeys": "Solicitar nuevas claves",
+ "requestPosition": "Solicitar ubicación",
+ "reset": "Reiniciar",
+ "save": "Guardar",
+ "scanQr": "Escanear el código QR",
+ "traceRoute": "Trazar ruta",
+ "submit": "Enviar"
+ },
+ "app": {
+ "title": "Meshtastic",
+ "fullTitle": "Cliente Web Meshtastic"
+ },
+ "loading": "Cargando...",
+ "unit": {
+ "cps": "CPS",
+ "dbm": "dBm",
+ "hertz": "Hz",
+ "hop": {
+ "one": "Salto",
+ "plural": "Saltos"
+ },
+ "hopsAway": {
+ "one": "{{count}} salto lejos",
+ "plural": "{{count}} saltos lejos",
+ "unknown": "Saltos desconocidos"
+ },
+ "megahertz": "MHz",
+ "raw": "bruto",
+ "meter": {
+ "one": "Metro",
+ "plural": "Metros",
+ "suffix": "m"
+ },
+ "kilometer": {
+ "one": "Kilometer",
+ "plural": "Kilometers",
+ "suffix": "km"
+ },
+ "minute": {
+ "one": "Minuto",
+ "plural": "Minutos"
+ },
+ "hour": {
+ "one": "Hora",
+ "plural": "Horas"
+ },
+ "millisecond": {
+ "one": "Milisegundo",
+ "plural": "Milisegundos",
+ "suffix": " ms"
+ },
+ "second": {
+ "one": "Segundo",
+ "plural": "Segundos"
+ },
+ "day": {
+ "one": "Día",
+ "plural": "Días",
+ "today": "Today",
+ "yesterday": "Yesterday"
+ },
+ "month": {
+ "one": "Mes",
+ "plural": "Meses"
+ },
+ "year": {
+ "one": "Año",
+ "plural": "Años"
+ },
+ "snr": "SNR",
+ "volt": {
+ "one": "Voltio",
+ "plural": "Voltios",
+ "suffix": "V"
+ },
+ "record": {
+ "one": "Registros",
+ "plural": "Registros"
+ },
+ "degree": {
+ "one": "Degree",
+ "plural": "Degrees",
+ "suffix": "°"
+ }
+ },
+ "security": {
+ "0bit": "Vacío",
+ "8bit": "8 bits",
+ "128bit": "128 bits",
+ "256bit": "256 bits"
+ },
+ "unknown": {
+ "longName": "Desconocido",
+ "shortName": "UNK",
+ "notAvailable": "N/A",
+ "num": "??"
+ },
+ "nodeUnknownPrefix": "!",
+ "unset": "No Configurado",
+ "fallbackName": "Meshtastic {{last4}}",
+ "node": "Nodo",
+ "formValidation": {
+ "unsavedChanges": "Cambios no guardados",
+ "tooBig": {
+ "string": "Demasiado largo, se esperaba menos o igual a {{maximum}} caracteres.",
+ "number": "Demasiado grande, se esperaba un número menor que o igual a {{maximum}}.",
+ "bytes": "Demasiado grande, se esperaba menos o igual a los bytes {{params.maximum}}."
+ },
+ "tooSmall": {
+ "string": "Demasiado corto, se esperaba más o igual a {{minimum}}. carácteres.",
+ "number": "Demasiado pequeño, esperaba un número mayor o igual a {{minimum}}."
+ },
+ "invalidFormat": {
+ "ipv4": "Formato no válido, se esperaba una dirección IPv4.",
+ "key": "Formato no válido, se esperaba una clave pre-compartida codificada en Base64 (PSK)."
+ },
+ "invalidType": {
+ "number": "Carácter no válido, se espera un número."
+ },
+ "pskLength": {
+ "0bit": "Es necesario que la clave esté vacía.",
+ "8bit": "Se requiere que la clave sea una clave pre-compartida de 8 bits (PSK).",
+ "128bit": "Se requiere que la clave sea una clave pre-compartida de 128 bits (PSK).",
+ "256bit": "Se requiere que la clave sea una clave pre-compartida de 256 bits (PSK)."
+ },
+ "required": {
+ "generic": "Este campo es obligatorio.",
+ "managed": "Se solicita al menos una clave de administración si se administra el nodo.",
+ "key": "Se requiere clave."
+ },
+ "invalidOverrideFreq": {
+ "number": "Invalid format, expected a value in the range 410-930 MHz or 0 (use default)."
+ }
+ },
+ "yes": "Sí",
+ "no": "No"
}
diff --git a/packages/web/public/i18n/locales/es-ES/config.json b/packages/web/public/i18n/locales/es-ES/config.json
new file mode 100644
index 00000000..c84bba87
--- /dev/null
+++ b/packages/web/public/i18n/locales/es-ES/config.json
@@ -0,0 +1,458 @@
+{
+ "page": {
+ "title": "Ajustes",
+ "tabUser": "Usuario",
+ "tabChannels": "Canales",
+ "tabBluetooth": "Bluetooth",
+ "tabDevice": "Dispositivo",
+ "tabDisplay": "Pantalla",
+ "tabLora": "LoRa",
+ "tabNetwork": "Conexión Red",
+ "tabPosition": "Posición",
+ "tabPower": "Consumo",
+ "tabSecurity": "Seguridad"
+ },
+ "sidebar": {
+ "label": "Configuración"
+ },
+ "device": {
+ "title": "Ajustes del dispositivo",
+ "description": "Ajustes del dispositivo",
+ "buttonPin": {
+ "description": "Sobrescribir pin de botón",
+ "label": "Pin del botón"
+ },
+ "buzzerPin": {
+ "description": "Sobrescribir pin del zumbador",
+ "label": "Pin del zumbador"
+ },
+ "disableTripleClick": {
+ "description": "Deshabilitar clic triple",
+ "label": "Deshabilitar clic triple"
+ },
+ "doubleTapAsButtonPress": {
+ "description": "Tratar doble toque como botón presionado",
+ "label": "Doble toque como botón presionado"
+ },
+ "ledHeartbeatDisabled": {
+ "description": "Deshabilitar parpadeo del LED predeterminado",
+ "label": "Deshabilitar LED de estado"
+ },
+ "nodeInfoBroadcastInterval": {
+ "description": "Cada cuanto se transmite la información del nodo",
+ "label": "Intervalo de transmisión de información del nodo"
+ },
+ "posixTimezone": {
+ "description": "La zona horaria para el dispositivo en formato de cadena POSIX",
+ "label": "Zona horaria POSIX"
+ },
+ "rebroadcastMode": {
+ "description": "Cómo manejar la retransmisión",
+ "label": "Modo de retransmisión"
+ },
+ "role": {
+ "description": "Qué role realiza el dispositivo en la malla",
+ "label": "Rol"
+ }
+ },
+ "bluetooth": {
+ "title": "Ajustes de Bluetooth",
+ "description": "Ajustes del módulo de Bluetooth",
+ "note": "Nota: Algunos dispositivos (ESP32) no pueden usar Bluetooth y Wifi al mismo tiempo.",
+ "enabled": {
+ "description": "Habilitar o deshabilitar Bluetooth",
+ "label": "Habilitado"
+ },
+ "pairingMode": {
+ "description": "Selección del comportamiento del Pin.",
+ "label": "Modo de emparejamiento"
+ },
+ "pin": {
+ "description": "Pin a usar al emparejar",
+ "label": "Pin"
+ }
+ },
+ "display": {
+ "description": "Ajustes de la pantalla del dispositivo",
+ "title": "Ajustes de pantalla",
+ "headingBold": {
+ "description": "Negrita en el texto del encabezado",
+ "label": "Encabezado en negrita"
+ },
+ "carouselDelay": {
+ "description": "Que tan rápido cambiar entre pantallas",
+ "label": "Retraso del carrusel"
+ },
+ "compassNorthTop": {
+ "description": "Fijar el norte en la parte superior de la brújula",
+ "label": "Norte arriba de la brújula"
+ },
+ "displayMode": {
+ "description": "Variante del diseño de la pantalla",
+ "label": "Modo de visualización"
+ },
+ "displayUnits": {
+ "description": "Mostrar unidades de medidas métricas o imperiales",
+ "label": "Unidades de medidas"
+ },
+ "flipScreen": {
+ "description": "Rotar pantalla 180 grados",
+ "label": "Rotar pantalla"
+ },
+ "gpsDisplayUnits": {
+ "description": "Formato de visualización de las coordenadas",
+ "label": "Unidades de visualización del GPS"
+ },
+ "oledType": {
+ "description": "Tipo de pantalla OLED conectada al dispositivo",
+ "label": "Tipo de OLED"
+ },
+ "screenTimeout": {
+ "description": "Apagar la pantalla después de este tiempo",
+ "label": "Tiempo de espera de la pantalla"
+ },
+ "twelveHourClock": {
+ "description": "Usar reloj con formato de 12 horas",
+ "label": "Reloj de 12 horas"
+ },
+ "wakeOnTapOrMotion": {
+ "description": "Despertar dispositivo al tocar o mover",
+ "label": "Despertar al mover o tocar"
+ }
+ },
+ "lora": {
+ "title": "Ajustes de la Red",
+ "description": "Opciones de la malla LoRa",
+ "bandwidth": {
+ "description": "Ancho de banda de canal en MHz",
+ "label": "Ancho de Banda"
+ },
+ "boostedRxGain": {
+ "description": "Aumentada la ganancia RX",
+ "label": "Aumentada la ganancia RX"
+ },
+ "codingRate": {
+ "description": "El denominador de la tasa de codificación",
+ "label": "Tasa de codificación"
+ },
+ "frequencyOffset": {
+ "description": "Desplazamiento de frecuencia para corregir los errores de calibración del cristal",
+ "label": "Desplazamiento de la Frecuencia"
+ },
+ "frequencySlot": {
+ "description": "Número de canal de frecuencia LoRa",
+ "label": "Slot de frecuencia"
+ },
+ "hopLimit": {
+ "description": "Número máximo de saltos",
+ "label": "Límite de Saltos"
+ },
+ "ignoreMqtt": {
+ "description": "No reenviar mensajes MQTT sobre la malla",
+ "label": "Ignorar Paquetes MQTT"
+ },
+ "modemPreset": {
+ "description": "Modem predefinido para usar",
+ "label": "Modem predefinido"
+ },
+ "okToMqtt": {
+ "description": "Cuando se establece en true, esta configuración indica que el usuario aprueba el paquete para ser subido a MQTT. Si se establece a false, los nodos remotos son solicitados no reenviar paquetes a MQTT",
+ "label": "Permitir Subir Paquetes al MQTT"
+ },
+ "overrideDutyCycle": {
+ "description": "Sobreescribir el Tiempo de Trabajo",
+ "label": "Sobreescribir el Tiempo de Trabajo"
+ },
+ "overrideFrequency": {
+ "description": "Reemplazar frecuencia",
+ "label": "Reemplazar frecuencia"
+ },
+ "region": {
+ "description": "Establece la región para su nodo",
+ "label": "Región"
+ },
+ "spreadingFactor": {
+ "description": "Indica el número de chirps por símbolo",
+ "label": "Factor de dispersión"
+ },
+ "transmitEnabled": {
+ "description": "Activar/Desactivar transmisión (TX) desde la radio LoRa",
+ "label": "Transmisión Activa"
+ },
+ "transmitPower": {
+ "description": "Máxima potencia de transmisión",
+ "label": "Potencia de transmisión"
+ },
+ "usePreset": {
+ "description": "Utilice uno de los ajustes predefinidos del módem",
+ "label": "Usar predefinido"
+ },
+ "meshSettings": {
+ "description": "Opciones de la malla LoRa",
+ "label": "Ajustes de la Red"
+ },
+ "waveformSettings": {
+ "description": "Configuración de la forma de onda LoRa",
+ "label": "Ajustes de forma de onda"
+ },
+ "radioSettings": {
+ "label": "Ajustes de radio",
+ "description": "Configuración para LoRa radio"
+ }
+ },
+ "network": {
+ "title": "Configuración WiFi",
+ "description": "Configuración de radio WiFi",
+ "note": "Nota: Algunos dispositivos (ESP32) no pueden usar Bluetooth y Wifi al mismo tiempo.",
+ "addressMode": {
+ "description": "Selección de asignación de dirección",
+ "label": "Modo de dirección"
+ },
+ "dns": {
+ "description": "Servidor DNS",
+ "label": "DNS"
+ },
+ "ethernetEnabled": {
+ "description": "Activar o desactivar el puerto Ethernet",
+ "label": "Habilitado"
+ },
+ "gateway": {
+ "description": "Puerta de Entrada Predeterminada",
+ "label": "Puerta enlace"
+ },
+ "ip": {
+ "description": "Dirección IP",
+ "label": "IP"
+ },
+ "psk": {
+ "description": "Contraseña de red",
+ "label": "PSK (Contraseña)"
+ },
+ "ssid": {
+ "description": "Nombre de red",
+ "label": "SSID (Nombre la Red)"
+ },
+ "subnet": {
+ "description": "Máscara de subred",
+ "label": "Subred"
+ },
+ "wifiEnabled": {
+ "description": "Activar o desactivar la radio WiFi",
+ "label": "Habilitado"
+ },
+ "meshViaUdp": {
+ "label": "Malla via UDP"
+ },
+ "ntpServer": {
+ "label": "Servidor NTP"
+ },
+ "rsyslogServer": {
+ "label": "Servidor Rsyslog"
+ },
+ "ethernetConfigSettings": {
+ "description": "Configuración del puerto Ethernet",
+ "label": "Configuración Ethernet"
+ },
+ "ipConfigSettings": {
+ "description": "Configuración de IP",
+ "label": "Configuración de IP"
+ },
+ "ntpConfigSettings": {
+ "description": "Configuración NTP",
+ "label": "Configuración NTP"
+ },
+ "rsyslogConfigSettings": {
+ "description": "Configuración Rsyslog",
+ "label": "Configuración Rsyslog"
+ },
+ "udpConfigSettings": {
+ "description": "Configuración de UDP sobre Malla",
+ "label": "Configuración UDP"
+ }
+ },
+ "position": {
+ "title": "Ajustes de posición",
+ "description": "Configuración del módulo de posición",
+ "broadcastInterval": {
+ "description": "Con qué frecuencia se envía tu posición sobre la malla",
+ "label": "Intervalo de transmisión"
+ },
+ "enablePin": {
+ "description": "Módulo GPS activar anulación de pin",
+ "label": "Activar pin"
+ },
+ "fixedPosition": {
+ "description": "No informar de la posición del GPS, pero una especificada manualmente",
+ "label": "Posición Fijada"
+ },
+ "gpsMode": {
+ "description": "Configurar si el dispositivo GPS está activado, desactivado o no está presente",
+ "label": "Modo del GPS"
+ },
+ "gpsUpdateInterval": {
+ "description": "Con qué frecuencia debe adquirirse una posición GPS",
+ "label": "Intervalo de actualización GPS"
+ },
+ "positionFlags": {
+ "description": "Campos opcionales para incluir al ensamblar mensajes de posición. Cuantos más campos se seleccionen, más grande será el mensaje que llevará a un mayor uso del tiempo de aire y un mayor riesgo de pérdida de paquetes.",
+ "label": "Marcas de posición"
+ },
+ "receivePin": {
+ "description": "Módulo RX del GPS ignorar Pin",
+ "label": "Recibir Pin"
+ },
+ "smartPositionEnabled": {
+ "description": "Sólo enviar posición cuando haya habido un cambio significativo en la ubicación",
+ "label": "Habilitar posición inteligente"
+ },
+ "smartPositionMinDistance": {
+ "description": "Distancia mínima (en metros) que debe ser recorrida antes de que se envíe una actualización de posición",
+ "label": "Distancia mínima de posición inteligente"
+ },
+ "smartPositionMinInterval": {
+ "description": "Intervalo mínimo (en s.) que debe pasar antes de enviar una actualización de posición",
+ "label": "Intervalo Mínimo de Posición Inteligente"
+ },
+ "transmitPin": {
+ "description": "Módulo TX del GPS ignorar Pin",
+ "label": "Transmitir Pin"
+ },
+ "intervalsSettings": {
+ "description": "Con qué frecuencia enviar actualizaciones de posición",
+ "label": "Intervalos"
+ },
+ "flags": {
+ "placeholder": "Seleccionar marcadores de posición...",
+ "altitude": "Altitud",
+ "altitudeGeoidalSeparation": "Separación Geoidal de Altitud",
+ "altitudeMsl": "Altitud es Nivel Medio del Mar",
+ "dop": "Dilución de precisión (DOP) PDOP usada por defecto",
+ "hdopVdop": "Si DOP está definido, usar valores HDOP / VDOP en lugar de PDOP",
+ "numSatellites": "Cantidad de satélites",
+ "sequenceNumber": "Número de secuencia",
+ "timestamp": "Fecha",
+ "unset": "Sin configurar",
+ "vehicleHeading": "Rumbo del vehículo",
+ "vehicleSpeed": "Velocidad de vehículo"
+ }
+ },
+ "power": {
+ "adcMultiplierOverride": {
+ "description": "Utilizado para ajustar la lectura del voltaje de la batería",
+ "label": "Ratio de sobrescritura del multiplicador ADC"
+ },
+ "ina219Address": {
+ "description": "Dirección del monitor de la batería INA219",
+ "label": "Dirección INA219"
+ },
+ "lightSleepDuration": {
+ "description": "How long the device will be in light sleep for",
+ "label": "Duración de la "
+ },
+ "minimumWakeTime": {
+ "description": "Cantidad mínima de tiempo que el dispositivo permanecerá despierto después de recibir un paquete",
+ "label": "Tiempo mínimo activo"
+ },
+ "noConnectionBluetoothDisabled": {
+ "description": "Si el dispositivo no recibe una conexión Bluetooth, la radio BLE se desactivará después de este tiempo",
+ "label": "No hay conexión Bluetooth desactivado"
+ },
+ "powerSavingEnabled": {
+ "description": "Seleccione si está alimentado de una fuente de corriente de poca potencia (es decir, solar), para minimizar el consumo de energía tanto como sea posible.",
+ "label": "Activar el modo ahorro de energía"
+ },
+ "shutdownOnBatteryDelay": {
+ "description": "Apagar automáticamente el nodo después de este largo durante la batería, 0 para indefinido",
+ "label": "Apagado en retraso de batería"
+ },
+ "superDeepSleepDuration": {
+ "description": "Cuánto tiempo durará el dispositivo en suspensión profunda",
+ "label": "Duración de suspensión superprofunda"
+ },
+ "powerConfigSettings": {
+ "description": "Configuración del módulo de alimentación",
+ "label": "Configuración de elecenergía "
+ },
+ "sleepSettings": {
+ "description": "Configuración de suspensión para el módulo de alimentación",
+ "label": "Ajustes de suspensión"
+ }
+ },
+ "security": {
+ "description": "Ajustes para la configuración de seguridad",
+ "title": "Configuraciones de Seguridad",
+ "button_backupKey": "Clave de la copia de seguridad",
+ "adminChannelEnabled": {
+ "description": "Permitir el control del dispositivo entrante mediante el canal inseguro de administración legado",
+ "label": "Permitir Administrador Legado"
+ },
+ "enableDebugLogApi": {
+ "description": "Output live debug logging over serial, view and export position-redacted device logs over Bluetooth",
+ "label": "Habilitar API de registro de depuración"
+ },
+ "managed": {
+ "description": "If enabled, device configuration options are only able to be changed remotely by a Remote Admin node via admin messages. Do not enable this option unless at least one suitable Remote Admin node has been setup, and the public key is stored in one of the fields above.",
+ "label": "Administrado"
+ },
+ "privateKey": {
+ "description": "Utilizado para crear una clave compartida con un dispositivo remoto",
+ "label": "Clave privada"
+ },
+ "publicKey": {
+ "description": "Sent out to other nodes on the mesh to allow them to compute a shared secret key",
+ "label": "Clave Pública"
+ },
+ "primaryAdminKey": {
+ "description": "The primary public key authorized to send admin messages to this node",
+ "label": "Clave principal de administrador"
+ },
+ "secondaryAdminKey": {
+ "description": "The secondary public key authorized to send admin messages to this node",
+ "label": "Secondary Admin Key"
+ },
+ "serialOutputEnabled": {
+ "description": "Serial Console over the Stream API",
+ "label": "Salida Serial Activada"
+ },
+ "tertiaryAdminKey": {
+ "description": "The tertiary public key authorized to send admin messages to this node",
+ "label": "Tertiary Admin Key"
+ },
+ "adminSettings": {
+ "description": "Opciones para administradores",
+ "label": "Ajustes de administrador"
+ },
+ "loggingSettings": {
+ "description": "Settings for Logging",
+ "label": "Logging Settings"
+ }
+ },
+ "user": {
+ "title": "User Settings",
+ "description": "Configure your device name and identity settings",
+ "longName": {
+ "label": "Nombre largo",
+ "description": "Your full display name (1-40 characters)",
+ "validation": {
+ "min": "Long name must be at least 1 character",
+ "max": "Long name must be at most 40 characters"
+ }
+ },
+ "shortName": {
+ "label": "Nombre Corto",
+ "description": "Your abbreviated name (2-4 characters)",
+ "validation": {
+ "min": "Short name must be at least 2 characters",
+ "max": "Short name must be at most 4 characters"
+ }
+ },
+ "isUnmessageable": {
+ "label": "No se puede enviar mensajes",
+ "description": "Used to identify unmonitored or infrastructure nodes so that messaging is not available to nodes that will never respond."
+ },
+ "isLicensed": {
+ "label": "Licencia de radioaficionado (no necesaria)",
+ "description": "Enable if you are a licensed amateur radio operator, enabling this option disables encryption and is not compatible with the default Meshtastic network."
+ }
+ }
+}
diff --git a/packages/web/public/i18n/locales/es-ES/dashboard.json b/packages/web/public/i18n/locales/es-ES/dashboard.json
index 74aaebf6..c285b488 100644
--- a/packages/web/public/i18n/locales/es-ES/dashboard.json
+++ b/packages/web/public/i18n/locales/es-ES/dashboard.json
@@ -1,12 +1,12 @@
{
- "dashboard": {
- "title": "Dispositivos conectados",
- "description": "Administra tus dispositivos Meshtastic conectados.",
- "connectionType_ble": "BLE",
- "connectionType_serial": "Conexión Serial",
- "connectionType_network": "Conexión Red",
- "noDevicesTitle": "No hay dispositivos conectados",
- "noDevicesDescription": "Conecta un nuevo dispositivo para empezar.",
- "button_newConnection": "Conexión Nueva"
- }
+ "dashboard": {
+ "title": "Dispositivos conectados",
+ "description": "Administra tus dispositivos Meshtastic conectados.",
+ "connectionType_ble": "BLE",
+ "connectionType_serial": "Conexión Serial",
+ "connectionType_network": "Conexión Red",
+ "noDevicesTitle": "No hay dispositivos conectados",
+ "noDevicesDescription": "Conecta un nuevo dispositivo para empezar.",
+ "button_newConnection": "Conexión Nueva"
+ }
}
diff --git a/packages/web/public/i18n/locales/es-ES/dialog.json b/packages/web/public/i18n/locales/es-ES/dialog.json
index b7bf6acd..323d2f19 100644
--- a/packages/web/public/i18n/locales/es-ES/dialog.json
+++ b/packages/web/public/i18n/locales/es-ES/dialog.json
@@ -1,193 +1,221 @@
{
- "deleteMessages": {
- "description": "This action will clear all message history. This cannot be undone. Are you sure you want to continue?",
- "title": "Borrar todos los mensajes"
- },
- "deviceName": {
- "description": "El dispositivo se reiniciará una vez que se guarde la configuración.",
- "longName": "Nombre largo",
- "shortName": "Nombre Corto",
- "title": "Cambiar nombre del dispositivo",
- "validation": {
- "longNameMax": "El nombre largo no debe tener más de 40 caracteres",
- "shortNameMax": "El nombre corto no debe tener más de 4 caracteres",
- "longNameMin": "El nombre largo debe tener al menos 1 carácter",
- "shortNameMin": "El nombre corto debe tener al menos 1 carácter"
- }
- },
- "import": {
- "description": "Se anulará la configuración actual de LoRa.",
- "error": {
- "invalidUrl": "URL Meshtastic no válida"
- },
- "channelPrefix": "Channel: ",
- "channelSetUrl": "Fijar canal/código QR URL",
- "channels": "Channels:",
- "usePreset": "Use Preset?",
- "title": "Import Channel Set"
- },
- "locationResponse": {
- "title": "Location: {{identifier}}",
- "altitude": "Altitude: ",
- "coordinates": "Coordinates: ",
- "noCoordinates": "No Coordinates"
- },
- "pkiRegenerateDialog": {
- "title": "Regenerate Pre-Shared Key?",
- "description": "Are you sure you want to regenerate the pre-shared key?",
- "regenerate": "Regenerate"
- },
- "newDeviceDialog": {
- "title": "Connect New Device",
- "https": "https",
- "http": "http",
- "tabHttp": "HTTP",
- "tabBluetooth": "Bluetooth",
- "tabSerial": "Conexión Serial",
- "useHttps": "Use HTTPS",
- "connecting": "Connecting...",
- "connect": "Conectar",
- "connectionFailedAlert": {
- "title": "Connection Failed",
- "descriptionPrefix": "Could not connect to the device. ",
- "httpsHint": "If using HTTPS, you may need to accept a self-signed certificate first. ",
- "openLinkPrefix": "Please open ",
- "openLinkSuffix": " in a new tab",
- "acceptTlsWarningSuffix": ", accept any TLS warnings if prompted, then try again",
- "learnMoreLink": "Learn more"
- },
- "httpConnection": {
- "label": "IP Address/Hostname",
- "placeholder": "000.000.000.000 / meshtastic.local"
- },
- "serialConnection": {
- "noDevicesPaired": "No devices paired yet.",
- "newDeviceButton": "New device",
- "deviceIdentifier": "# {{index}} - {{vendorId}} - {{productId}}"
- },
- "bluetoothConnection": {
- "noDevicesPaired": "No devices paired yet.",
- "newDeviceButton": "New device",
- "connectionFailed": "Connection failed",
- "deviceDisconnected": "Device disconnected",
- "unknownDevice": "Unknown Device",
- "errorLoadingDevices": "Error loading devices",
- "unknownErrorLoadingDevices": "Unknown error loading devices"
- },
- "validation": {
- "requiresWebBluetooth": "This connection type requires <0>Web Bluetooth0>. Please use a supported browser, like Chrome or Edge.",
- "requiresWebSerial": "This connection type requires <0>Web Serial0>. Please use a supported browser, like Chrome or Edge.",
- "requiresSecureContext": "This application requires a <0>secure context0>. Please connect using HTTPS or localhost.",
- "additionallyRequiresSecureContext": "Additionally, it requires a <0>secure context0>. Please connect using HTTPS or localhost."
- }
- },
- "nodeDetails": {
- "message": "Mensaje",
- "requestPosition": "Request Position",
- "traceRoute": "Trace Route",
- "airTxUtilization": "Air TX utilization",
- "allRawMetrics": "All Raw Metrics:",
- "batteryLevel": "Battery level",
- "channelUtilization": "Channel utilization",
- "details": "Details:",
- "deviceMetrics": "Device Metrics:",
- "hardware": "Hardware: ",
- "lastHeard": "Last Heard: ",
- "nodeHexPrefix": "Node Hex: ",
- "nodeNumber": "Node Number: ",
- "position": "Position:",
- "role": "Role: ",
- "uptime": "Uptime: ",
- "voltage": "Tensión",
- "title": "Node Details for {{identifier}}",
- "ignoreNode": "Ignore node",
- "removeNode": "Remove node",
- "unignoreNode": "Unignore node",
- "security": "Security:",
- "publicKey": "Public Key: ",
- "messageable": "Messageable: ",
- "KeyManuallyVerifiedTrue": "Public Key has been manually verified",
- "KeyManuallyVerifiedFalse": "Public Key is not manually verified"
- },
- "pkiBackup": {
- "loseKeysWarning": "If you lose your keys, you will need to reset your device.",
- "secureBackup": "Its important to backup your public and private keys and store your backup securely!",
- "footer": "=== END OF KEYS ===",
- "header": "=== MESHTASTIC KEYS FOR {{longName}} ({{shortName}}) ===",
- "privateKey": "Private Key:",
- "publicKey": "Public Key:",
- "fileName": "meshtastic_keys_{{longName}}_{{shortName}}.txt",
- "title": "Backup Keys"
- },
- "pkiBackupReminder": {
- "description": "We recommend backing up your key data regularly. Would you like to back up now?",
- "title": "Backup Reminder",
- "remindLaterPrefix": "Remind me in",
- "remindNever": "Never remind me",
- "backupNow": "Back up now"
- },
- "pkiRegenerate": {
- "description": "Are you sure you want to regenerate key pair?",
- "title": "Regenerate Key Pair"
- },
- "qr": {
- "addChannels": "Add Channels",
- "replaceChannels": "Replace Channels",
- "description": "The current LoRa configuration will also be shared.",
- "sharableUrl": "Sharable URL",
- "title": "Generate QR Code"
- },
- "reboot": {
- "title": "Reboot device",
- "description": "Reboot now or schedule a reboot of the connected node. Optionally, you can choose to reboot into OTA (Over-the-Air) mode.",
- "ota": "Reboot into OTA mode",
- "enterDelay": "Enter delay",
- "scheduled": "Reboot has been scheduled",
- "schedule": "Schedule reboot",
- "now": "Reboot now",
- "cancel": "Cancel scheduled reboot"
- },
- "refreshKeys": {
- "description": {
- "acceptNewKeys": "This will remove the node from device and request new keys.",
- "keyMismatchReasonSuffix": ". This is due to the remote node's current public key does not match the previously stored key for this node.",
- "unableToSendDmPrefix": "Your node is unable to send a direct message to node: "
- },
- "acceptNewKeys": "Accept New Keys",
- "title": "Keys Mismatch - {{identifier}}"
- },
- "removeNode": {
- "description": "Are you sure you want to remove this Node?",
- "title": "Remove Node?"
- },
- "shutdown": {
- "title": "Schedule Shutdown",
- "description": "Turn off the connected node after x minutes."
- },
- "traceRoute": {
- "routeToDestination": "Route to destination:",
- "routeBack": "Route back:"
- },
- "tracerouteResponse": {
- "title": "Traceroute: {{identifier}}"
- },
- "unsafeRoles": {
- "confirmUnderstanding": "Yes, I know what I'm doing",
- "conjunction": " and the blog post about ",
- "postamble": " and understand the implications of changing the role.",
- "preamble": "I have read the ",
- "choosingRightDeviceRole": "Choosing The Right Device Role",
- "deviceRoleDocumentation": "Device Role Documentation",
- "title": "¿Estás seguro?"
- },
- "managedMode": {
- "confirmUnderstanding": "Yes, I know what I'm doing",
- "title": "¿Estás seguro?",
- "description": "Enabling Managed Mode blocks client applications (including the web client) from writing configurations to a radio. Once enabled, radio configurations can only be changed through Remote Admin messages. This setting is not required for remote node administration."
- },
- "clientNotification": {
- "title": "Client Notification",
- "TraceRoute can only be sent once every 30 seconds": "TraceRoute can only be sent once every 30 seconds",
- "Compromised keys were detected and regenerated.": "Compromised keys were detected and regenerated."
- }
+ "deleteMessages": {
+ "description": "This action will clear all message history. This cannot be undone. Are you sure you want to continue?",
+ "title": "Borrar todos los mensajes"
+ },
+ "deviceName": {
+ "description": "El dispositivo se reiniciará una vez que se guarde la configuración.",
+ "longName": "Nombre largo",
+ "shortName": "Nombre Corto",
+ "title": "Cambiar nombre del dispositivo",
+ "validation": {
+ "longNameMax": "El nombre largo no debe tener más de 40 caracteres",
+ "shortNameMax": "El nombre corto no debe tener más de 4 caracteres",
+ "longNameMin": "El nombre largo debe tener al menos 1 carácter",
+ "shortNameMin": "El nombre corto debe tener al menos 1 carácter"
+ }
+ },
+ "import": {
+ "description": "Se anulará la configuración actual de LoRa.",
+ "error": {
+ "invalidUrl": "URL Meshtastic no válida"
+ },
+ "channelPrefix": "Channel: ",
+ "primary": "Primary ",
+ "doNotImport": "No not import",
+ "channelName": "Nombre",
+ "channelSlot": "Ranura",
+ "channelSetUrl": "Fijar canal/código QR URL",
+ "useLoraConfig": "Import LoRa Config",
+ "presetDescription": "The current LoRa Config will be replaced.",
+ "title": "Import Channel Set"
+ },
+ "locationResponse": {
+ "title": "Location: {{identifier}}",
+ "altitude": "Altitude: ",
+ "coordinates": "Coordinates: ",
+ "noCoordinates": "No Coordinates"
+ },
+ "pkiRegenerateDialog": {
+ "title": "Regenerate Pre-Shared Key?",
+ "description": "Are you sure you want to regenerate the pre-shared key?",
+ "regenerate": "Regenerate"
+ },
+ "newDeviceDialog": {
+ "title": "Connect New Device",
+ "https": "https",
+ "http": "http",
+ "tabHttp": "HTTP",
+ "tabBluetooth": "Bluetooth",
+ "tabSerial": "Conexión Serial",
+ "useHttps": "Use HTTPS",
+ "connecting": "Connecting...",
+ "connect": "Conectar",
+ "connectionFailedAlert": {
+ "title": "Connection Failed",
+ "descriptionPrefix": "Could not connect to the device. ",
+ "httpsHint": "If using HTTPS, you may need to accept a self-signed certificate first. ",
+ "openLinkPrefix": "Please open ",
+ "openLinkSuffix": " in a new tab",
+ "acceptTlsWarningSuffix": ", accept any TLS warnings if prompted, then try again",
+ "learnMoreLink": "Learn more"
+ },
+ "httpConnection": {
+ "label": "IP Address/Hostname",
+ "placeholder": "000.000.000.000 / meshtastic.local"
+ },
+ "serialConnection": {
+ "noDevicesPaired": "No devices paired yet.",
+ "newDeviceButton": "New device",
+ "deviceIdentifier": "# {{index}} - {{vendorId}} - {{productId}}"
+ },
+ "bluetoothConnection": {
+ "noDevicesPaired": "No devices paired yet.",
+ "newDeviceButton": "New device",
+ "connectionFailed": "Connection failed",
+ "deviceDisconnected": "Device disconnected",
+ "unknownDevice": "Unknown Device",
+ "errorLoadingDevices": "Error loading devices",
+ "unknownErrorLoadingDevices": "Unknown error loading devices"
+ },
+ "validation": {
+ "requiresWebBluetooth": "This connection type requires <0>Web Bluetooth0>. Please use a supported browser, like Chrome or Edge.",
+ "requiresWebSerial": "This connection type requires <0>Web Serial0>. Please use a supported browser, like Chrome or Edge.",
+ "requiresSecureContext": "This application requires a <0>secure context0>. Please connect using HTTPS or localhost.",
+ "additionallyRequiresSecureContext": "Additionally, it requires a <0>secure context0>. Please connect using HTTPS or localhost."
+ }
+ },
+ "nodeDetails": {
+ "message": "Mensaje",
+ "requestPosition": "Request Position",
+ "traceRoute": "Trace Route",
+ "airTxUtilization": "Air TX utilization",
+ "allRawMetrics": "All Raw Metrics:",
+ "batteryLevel": "Battery level",
+ "channelUtilization": "Channel utilization",
+ "details": "Details:",
+ "deviceMetrics": "Device Metrics:",
+ "hardware": "Hardware: ",
+ "lastHeard": "Last Heard: ",
+ "nodeHexPrefix": "Node Hex: ",
+ "nodeNumber": "Node Number: ",
+ "position": "Position:",
+ "role": "Role: ",
+ "uptime": "Uptime: ",
+ "voltage": "Tensión",
+ "title": "Node Details for {{identifier}}",
+ "ignoreNode": "Ignore node",
+ "removeNode": "Remove node",
+ "unignoreNode": "Unignore node",
+ "security": "Security:",
+ "publicKey": "Public Key: ",
+ "messageable": "Messageable: ",
+ "KeyManuallyVerifiedTrue": "Public Key has been manually verified",
+ "KeyManuallyVerifiedFalse": "Public Key is not manually verified"
+ },
+ "pkiBackup": {
+ "loseKeysWarning": "If you lose your keys, you will need to reset your device.",
+ "secureBackup": "Its important to backup your public and private keys and store your backup securely!",
+ "footer": "=== END OF KEYS ===",
+ "header": "=== MESHTASTIC KEYS FOR {{longName}} ({{shortName}}) ===",
+ "privateKey": "Private Key:",
+ "publicKey": "Public Key:",
+ "fileName": "meshtastic_keys_{{longName}}_{{shortName}}.txt",
+ "title": "Backup Keys"
+ },
+ "pkiBackupReminder": {
+ "description": "We recommend backing up your key data regularly. Would you like to back up now?",
+ "title": "Backup Reminder",
+ "remindLaterPrefix": "Remind me in",
+ "remindNever": "Never remind me",
+ "backupNow": "Back up now"
+ },
+ "pkiRegenerate": {
+ "description": "Are you sure you want to regenerate key pair?",
+ "title": "Regenerate Key Pair"
+ },
+ "qr": {
+ "addChannels": "Add Channels",
+ "replaceChannels": "Replace Channels",
+ "description": "The current LoRa configuration will also be shared.",
+ "sharableUrl": "Sharable URL",
+ "title": "Generate QR Code"
+ },
+ "reboot": {
+ "title": "Reboot device",
+ "description": "Reboot now or schedule a reboot of the connected node. Optionally, you can choose to reboot into OTA (Over-the-Air) mode.",
+ "ota": "Reboot into OTA mode",
+ "enterDelay": "Enter delay",
+ "scheduled": "Reboot has been scheduled",
+ "schedule": "Schedule reboot",
+ "now": "Reboot now",
+ "cancel": "Cancel scheduled reboot"
+ },
+ "refreshKeys": {
+ "description": {
+ "acceptNewKeys": "This will remove the node from device and request new keys.",
+ "keyMismatchReasonSuffix": ". This is due to the remote node's current public key does not match the previously stored key for this node.",
+ "unableToSendDmPrefix": "Your node is unable to send a direct message to node: "
+ },
+ "acceptNewKeys": "Accept New Keys",
+ "title": "Keys Mismatch - {{identifier}}"
+ },
+ "removeNode": {
+ "description": "Are you sure you want to remove this Node?",
+ "title": "Remove Node?"
+ },
+ "shutdown": {
+ "title": "Schedule Shutdown",
+ "description": "Turn off the connected node after x minutes."
+ },
+ "traceRoute": {
+ "routeToDestination": "Route to destination:",
+ "routeBack": "Route back:"
+ },
+ "tracerouteResponse": {
+ "title": "Traceroute: {{identifier}}"
+ },
+ "unsafeRoles": {
+ "confirmUnderstanding": "Yes, I know what I'm doing",
+ "conjunction": " and the blog post about ",
+ "postamble": " and understand the implications of changing the role.",
+ "preamble": "I have read the ",
+ "choosingRightDeviceRole": "Choosing The Right Device Role",
+ "deviceRoleDocumentation": "Device Role Documentation",
+ "title": "¿Estás seguro?"
+ },
+ "managedMode": {
+ "confirmUnderstanding": "Yes, I know what I'm doing",
+ "title": "¿Estás seguro?",
+ "description": "Enabling Managed Mode blocks client applications (including the web client) from writing configurations to a radio. Once enabled, radio configurations can only be changed through Remote Admin messages. This setting is not required for remote node administration."
+ },
+ "clientNotification": {
+ "title": "Client Notification",
+ "TraceRoute can only be sent once every 30 seconds": "TraceRoute can only be sent once every 30 seconds",
+ "Compromised keys were detected and regenerated.": "Compromised keys were detected and regenerated."
+ },
+ "resetNodeDb": {
+ "title": "Reset Node Database",
+ "description": "This will clear all nodes from the connected device's node database and clear all message history in the client. This cannot be undone. Are you sure you want to continue?",
+ "confirm": "Reset Node Database",
+ "failedTitle": "There was an error resetting the Node DB. Please try again."
+ },
+ "clearAllStores": {
+ "title": "Clear All Local Storage",
+ "description": "This will clear all locally stored data, including message history and node databases for all previously connected devices. This will require you to reconnect to your node once complete and cannot be undone. Are you sure you want to continue?",
+ "confirm": "Clear all local storage",
+ "failedTitle": "There was an error clearing local storage. Please try again."
+ },
+ "factoryResetDevice": {
+ "title": "Reiniciar dispositivo de fábrica",
+ "description": "This will factory reset the connected device, erasing all configurations and data on the device as well as all nodes and messages saved in the client. This cannot be undone. Are you sure you want to continue?",
+ "confirm": "Reiniciar dispositivo de fábrica",
+ "failedTitle": "There was an error performing the factory reset. Please try again."
+ },
+ "factoryResetConfig": {
+ "title": "Configuración de reinicio de fábrica",
+ "description": "This will factory reset the configuration on the connected device, erasing all configurations on the device. This cannot be undone. Are you sure you want to continue?",
+ "confirm": "Configuración de reinicio de fábrica",
+ "failedTitle": "There was an error performing the factory reset. Please try again."
+ }
}
diff --git a/packages/web/public/i18n/locales/es-ES/map.json b/packages/web/public/i18n/locales/es-ES/map.json
new file mode 100644
index 00000000..fc2b7c4f
--- /dev/null
+++ b/packages/web/public/i18n/locales/es-ES/map.json
@@ -0,0 +1,38 @@
+{
+ "maplibre": {
+ "GeolocateControl.FindMyLocation": "Find my location",
+ "NavigationControl.ZoomIn": "Zoom in",
+ "NavigationControl.ZoomOut": "Zoom out",
+ "CooperativeGesturesHandler.WindowsHelpText": "Use Ctrl + scroll to zoom the map",
+ "CooperativeGesturesHandler.MacHelpText": "Use ⌘ + scroll to zoom the map",
+ "CooperativeGesturesHandler.MobileHelpText": "Use two fingers to move the map"
+ },
+ "layerTool": {
+ "nodeMarkers": "Show nodes",
+ "directNeighbors": "Show direct connections",
+ "remoteNeighbors": "Show remote connections",
+ "positionPrecision": "Show position precision",
+ "traceroutes": "Show traceroutes",
+ "waypoints": "Show waypoints"
+ },
+ "mapMenu": {
+ "locateAria": "Locate my node",
+ "layersAria": "Change map style"
+ },
+ "waypointDetail": {
+ "edit": "Editar",
+ "description": "Description:",
+ "createdBy": "Edited by:",
+ "createdDate": "Created:",
+ "updated": "Updated:",
+ "expires": "Expires:",
+ "distance": "Distance:",
+ "bearing": "Absolute bearing:",
+ "lockedTo": "Locked by:",
+ "latitude": "Latitude:",
+ "longitude": "Longitude:"
+ },
+ "myNode": {
+ "tooltip": "This device"
+ }
+}
diff --git a/packages/web/public/i18n/locales/es-ES/messages.json b/packages/web/public/i18n/locales/es-ES/messages.json
index 71238ea1..c4c622f1 100644
--- a/packages/web/public/i18n/locales/es-ES/messages.json
+++ b/packages/web/public/i18n/locales/es-ES/messages.json
@@ -1,39 +1,39 @@
{
- "page": {
- "title": "Messages: {{chatName}}",
- "placeholder": "Enter Message"
- },
- "emptyState": {
- "title": "Select a Chat",
- "text": "No messages yet."
- },
- "selectChatPrompt": {
- "text": "Select a channel or node to start messaging."
- },
- "sendMessage": {
- "placeholder": "Enter your message here...",
- "sendButton": "Enviar"
- },
- "actionsMenu": {
- "addReactionLabel": "Add Reaction",
- "replyLabel": "Respuesta"
- },
- "deliveryStatus": {
- "delivered": {
- "label": "Message delivered",
- "displayText": "Message delivered"
- },
- "failed": {
- "label": "Message delivery failed",
- "displayText": "Delivery failed"
- },
- "unknown": {
- "label": "Message status unknown",
- "displayText": "Unknown state"
- },
- "waiting": {
- "label": "Sending message",
- "displayText": "Waiting for delivery"
- }
- }
+ "page": {
+ "title": "Messages: {{chatName}}",
+ "placeholder": "Enter Message"
+ },
+ "emptyState": {
+ "title": "Select a Chat",
+ "text": "No messages yet."
+ },
+ "selectChatPrompt": {
+ "text": "Select a channel or node to start messaging."
+ },
+ "sendMessage": {
+ "placeholder": "Enter your message here...",
+ "sendButton": "Enviar"
+ },
+ "actionsMenu": {
+ "addReactionLabel": "Add Reaction",
+ "replyLabel": "Respuesta"
+ },
+ "deliveryStatus": {
+ "delivered": {
+ "label": "Message delivered",
+ "displayText": "Message delivered"
+ },
+ "failed": {
+ "label": "Message delivery failed",
+ "displayText": "Delivery failed"
+ },
+ "unknown": {
+ "label": "Message status unknown",
+ "displayText": "Unknown state"
+ },
+ "waiting": {
+ "label": "Sending message",
+ "displayText": "Waiting for delivery"
+ }
+ }
}
diff --git a/packages/web/public/i18n/locales/es-ES/moduleConfig.json b/packages/web/public/i18n/locales/es-ES/moduleConfig.json
index dcc0e547..35edc901 100644
--- a/packages/web/public/i18n/locales/es-ES/moduleConfig.json
+++ b/packages/web/public/i18n/locales/es-ES/moduleConfig.json
@@ -1,448 +1,448 @@
{
- "page": {
- "tabAmbientLighting": "Luz Ambiental",
- "tabAudio": "Audio",
- "tabCannedMessage": "Canned",
- "tabDetectionSensor": "Sensor de Presencia",
- "tabExternalNotification": "Ext Notif",
- "tabMqtt": "MQTT",
- "tabNeighborInfo": "Información de Vecinos",
- "tabPaxcounter": "Contador de Paquetes",
- "tabRangeTest": "Test de Alcance",
- "tabSerial": "Conexión Serial",
- "tabStoreAndForward": "S&F",
- "tabTelemetry": "Telemetría"
- },
- "ambientLighting": {
- "title": "Ambient Lighting Settings",
- "description": "Settings for the Ambient Lighting module",
- "ledState": {
- "label": "LED State",
- "description": "Sets LED to on or off"
- },
- "current": {
- "label": "Intensidad",
- "description": "Sets the current for the LED output. Default is 10"
- },
- "red": {
- "label": "Rojo",
- "description": "Sets the red LED level. Values are 0-255"
- },
- "green": {
- "label": "Verde",
- "description": "Sets the green LED level. Values are 0-255"
- },
- "blue": {
- "label": "Azul",
- "description": "Sets the blue LED level. Values are 0-255"
- }
- },
- "audio": {
- "title": "Audio Settings",
- "description": "Settings for the Audio module",
- "codec2Enabled": {
- "label": "Codec 2 Enabled",
- "description": "Enable Codec 2 audio encoding"
- },
- "pttPin": {
- "label": "PTT Pin",
- "description": "GPIO pin to use for PTT"
- },
- "bitrate": {
- "label": "Bitrate",
- "description": "Bitrate to use for audio encoding"
- },
- "i2sWs": {
- "label": "i2S WS",
- "description": "GPIO pin to use for i2S WS"
- },
- "i2sSd": {
- "label": "i2S SD",
- "description": "GPIO pin to use for i2S SD"
- },
- "i2sDin": {
- "label": "i2S DIN",
- "description": "GPIO pin to use for i2S DIN"
- },
- "i2sSck": {
- "label": "i2S SCK",
- "description": "GPIO pin to use for i2S SCK"
- }
- },
- "cannedMessage": {
- "title": "Canned Message Settings",
- "description": "Settings for the Canned Message module",
- "moduleEnabled": {
- "label": "Module Enabled",
- "description": "Enable Canned Message"
- },
- "rotary1Enabled": {
- "label": "Rotary Encoder #1 Enabled",
- "description": "Enable the rotary encoder"
- },
- "inputbrokerPinA": {
- "label": "Encoder Pin A",
- "description": "GPIO Pin Value (1-39) For encoder port A"
- },
- "inputbrokerPinB": {
- "label": "Encoder Pin B",
- "description": "GPIO Pin Value (1-39) For encoder port B"
- },
- "inputbrokerPinPress": {
- "label": "Encoder Pin Press",
- "description": "GPIO Pin Value (1-39) For encoder Press"
- },
- "inputbrokerEventCw": {
- "label": "Clockwise event",
- "description": "Select input event."
- },
- "inputbrokerEventCcw": {
- "label": "Counter Clockwise event",
- "description": "Select input event."
- },
- "inputbrokerEventPress": {
- "label": "Press event",
- "description": "Select input event"
- },
- "updown1Enabled": {
- "label": "Up Down enabled",
- "description": "Enable the up / down encoder"
- },
- "allowInputSource": {
- "label": "Allow Input Source",
- "description": "Select from: '_any', 'rotEnc1', 'upDownEnc1', 'cardkb'"
- },
- "sendBell": {
- "label": "Send Bell",
- "description": "Sends a bell character with each message"
- }
- },
- "detectionSensor": {
- "title": "Detection Sensor Settings",
- "description": "Settings for the Detection Sensor module",
- "enabled": {
- "label": "Habilitado",
- "description": "Enable or disable Detection Sensor Module"
- },
- "minimumBroadcastSecs": {
- "label": "Minimum Broadcast Seconds",
- "description": "The interval in seconds of how often we can send a message to the mesh when a state change is detected"
- },
- "stateBroadcastSecs": {
- "label": "State Broadcast Seconds",
- "description": "The interval in seconds of how often we should send a message to the mesh with the current state regardless of changes"
- },
- "sendBell": {
- "label": "Send Bell",
- "description": "Send ASCII bell with alert message"
- },
- "name": {
- "label": "Friendly Name",
- "description": "Used to format the message sent to mesh, max 20 Characters"
- },
- "monitorPin": {
- "label": "Monitor Pin",
- "description": "The GPIO pin to monitor for state changes"
- },
- "detectionTriggerType": {
- "label": "Detection Triggered Type",
- "description": "The type of trigger event to be used"
- },
- "usePullup": {
- "label": "Use Pullup",
- "description": "Whether or not use INPUT_PULLUP mode for GPIO pin"
- }
- },
- "externalNotification": {
- "title": "External Notification Settings",
- "description": "Configure the external notification module",
- "enabled": {
- "label": "Module Enabled",
- "description": "Enable External Notification"
- },
- "outputMs": {
- "label": "Output MS",
- "description": "Output MS"
- },
- "output": {
- "label": "Output",
- "description": "Output"
- },
- "outputVibra": {
- "label": "Output Vibrate",
- "description": "Output Vibrate"
- },
- "outputBuzzer": {
- "label": "Output Buzzer",
- "description": "Output Buzzer"
- },
- "active": {
- "label": "Active",
- "description": "Active"
- },
- "alertMessage": {
- "label": "Alert Message",
- "description": "Alert Message"
- },
- "alertMessageVibra": {
- "label": "Alert Message Vibrate",
- "description": "Alert Message Vibrate"
- },
- "alertMessageBuzzer": {
- "label": "Alert Message Buzzer",
- "description": "Alert Message Buzzer"
- },
- "alertBell": {
- "label": "Alert Bell",
- "description": "Should an alert be triggered when receiving an incoming bell?"
- },
- "alertBellVibra": {
- "label": "Alert Bell Vibrate",
- "description": "Alert Bell Vibrate"
- },
- "alertBellBuzzer": {
- "label": "Alert Bell Buzzer",
- "description": "Alert Bell Buzzer"
- },
- "usePwm": {
- "label": "Use PWM",
- "description": "Use PWM"
- },
- "nagTimeout": {
- "label": "Nag Timeout",
- "description": "Nag Timeout"
- },
- "useI2sAsBuzzer": {
- "label": "Use I²S Pin as Buzzer",
- "description": "Designate I²S Pin as Buzzer Output"
- }
- },
- "mqtt": {
- "title": "MQTT Settings",
- "description": "Settings for the MQTT module",
- "enabled": {
- "label": "Habilitado",
- "description": "Enable or disable MQTT"
- },
- "address": {
- "label": "MQTT Server Address",
- "description": "MQTT server address to use for default/custom servers"
- },
- "username": {
- "label": "MQTT Username",
- "description": "MQTT username to use for default/custom servers"
- },
- "password": {
- "label": "MQTT Password",
- "description": "MQTT password to use for default/custom servers"
- },
- "encryptionEnabled": {
- "label": "Encryption Enabled",
- "description": "Enable or disable MQTT encryption. Note: All messages are sent to the MQTT broker unencrypted if this option is not enabled, even when your uplink channels have encryption keys set. This includes position data."
- },
- "jsonEnabled": {
- "label": "JSON Enabled",
- "description": "Whether to send/consume JSON packets on MQTT"
- },
- "tlsEnabled": {
- "label": "TLS Enabled",
- "description": "Enable or disable TLS"
- },
- "root": {
- "label": "Root topic",
- "description": "MQTT root topic to use for default/custom servers"
- },
- "proxyToClientEnabled": {
- "label": "MQTT Client Proxy Enabled",
- "description": "Utilizes the network connection to proxy MQTT messages to the client."
- },
- "mapReportingEnabled": {
- "label": "Map Reporting Enabled",
- "description": "Your node will periodically send an unencrypted map report packet to the configured MQTT server, this includes id, short and long name, approximate location, hardware model, role, firmware version, LoRa region, modem preset and primary channel name."
- },
- "mapReportSettings": {
- "publishIntervalSecs": {
- "label": "Map Report Publish Interval (s)",
- "description": "Interval in seconds to publish map reports"
- },
- "positionPrecision": {
- "label": "Approximate Location",
- "description": "Position shared will be accurate within this distance",
- "options": {
- "metric_km23": "Within 23 km",
- "metric_km12": "Within 12 km",
- "metric_km5_8": "Within 5.8 km",
- "metric_km2_9": "Within 2.9 km",
- "metric_km1_5": "Within 1.5 km",
- "metric_m700": "Within 700 m",
- "metric_m350": "Within 350 m",
- "metric_m200": "Within 200 m",
- "metric_m90": "Within 90 m",
- "metric_m50": "Within 50 m",
- "imperial_mi15": "Within 15 miles",
- "imperial_mi7_3": "Within 7.3 miles",
- "imperial_mi3_6": "Within 3.6 miles",
- "imperial_mi1_8": "Within 1.8 miles",
- "imperial_mi0_9": "Within 0.9 miles",
- "imperial_mi0_5": "Within 0.5 miles",
- "imperial_mi0_2": "Within 0.2 miles",
- "imperial_ft600": "Within 600 feet",
- "imperial_ft300": "Within 300 feet",
- "imperial_ft150": "Within 150 feet"
- }
- }
- }
- },
- "neighborInfo": {
- "title": "Neighbor Info Settings",
- "description": "Settings for the Neighbor Info module",
- "enabled": {
- "label": "Habilitado",
- "description": "Enable or disable Neighbor Info Module"
- },
- "updateInterval": {
- "label": "Update Interval",
- "description": "Interval in seconds of how often we should try to send our Neighbor Info to the mesh"
- }
- },
- "paxcounter": {
- "title": "Paxcounter Settings",
- "description": "Settings for the Paxcounter module",
- "enabled": {
- "label": "Module Enabled",
- "description": "Enable Paxcounter"
- },
- "paxcounterUpdateInterval": {
- "label": "Update Interval (seconds)",
- "description": "How long to wait between sending paxcounter packets"
- },
- "wifiThreshold": {
- "label": "WiFi RSSI Threshold",
- "description": "At what WiFi RSSI level should the counter increase. Defaults to -80."
- },
- "bleThreshold": {
- "label": "BLE RSSI Threshold",
- "description": "At what BLE RSSI level should the counter increase. Defaults to -80."
- }
- },
- "rangeTest": {
- "title": "Range Test Settings",
- "description": "Settings for the Range Test module",
- "enabled": {
- "label": "Module Enabled",
- "description": "Enable Range Test"
- },
- "sender": {
- "label": "Message Interval",
- "description": "How long to wait between sending test packets"
- },
- "save": {
- "label": "Save CSV to storage",
- "description": "ESP32 Only"
- }
- },
- "serial": {
- "title": "Serial Settings",
- "description": "Settings for the Serial module",
- "enabled": {
- "label": "Module Enabled",
- "description": "Enable Serial output"
- },
- "echo": {
- "label": "Echo",
- "description": "Any packets you send will be echoed back to your device"
- },
- "rxd": {
- "label": "Receive Pin",
- "description": "Set the GPIO pin to the RXD pin you have set up."
- },
- "txd": {
- "label": "Transmit Pin",
- "description": "Set the GPIO pin to the TXD pin you have set up."
- },
- "baud": {
- "label": "Baud Rate",
- "description": "The serial baud rate"
- },
- "timeout": {
- "label": "Tiempo agotado",
- "description": "Seconds to wait before we consider your packet as 'done'"
- },
- "mode": {
- "label": "Mode",
- "description": "Select Mode"
- },
- "overrideConsoleSerialPort": {
- "label": "Override Console Serial Port",
- "description": "If you have a serial port connected to the console, this will override it."
- }
- },
- "storeForward": {
- "title": "Store & Forward Settings",
- "description": "Settings for the Store & Forward module",
- "enabled": {
- "label": "Module Enabled",
- "description": "Enable Store & Forward"
- },
- "heartbeat": {
- "label": "Heartbeat Enabled",
- "description": "Enable Store & Forward heartbeat"
- },
- "records": {
- "label": "Número de registros",
- "description": "Number of records to store"
- },
- "historyReturnMax": {
- "label": "Historial máximo devuelto",
- "description": "Max number of records to return"
- },
- "historyReturnWindow": {
- "label": "History return window",
- "description": "Devolver registros de esta ventana de tiempo (minutos)"
- }
- },
- "telemetry": {
- "title": "Telemetry Settings",
- "description": "Settings for the Telemetry module",
- "deviceUpdateInterval": {
- "label": "Device Metrics",
- "description": "Periodo entre las actualizaciones de las medidas del dispositivo (segundos) "
- },
- "environmentUpdateInterval": {
- "label": "Periodo de refresco para las medidas del entorno",
- "description": ""
- },
- "environmentMeasurementEnabled": {
- "label": "Module Enabled",
- "description": "Enable the Environment Telemetry"
- },
- "environmentScreenEnabled": {
- "label": "Displayed on Screen",
- "description": "Show the Telemetry Module on the OLED"
- },
- "environmentDisplayFahrenheit": {
- "label": "Display Fahrenheit",
- "description": "Display temp in Fahrenheit"
- },
- "airQualityEnabled": {
- "label": "Air Quality Enabled",
- "description": "Enable the Air Quality Telemetry"
- },
- "airQualityInterval": {
- "label": "Air Quality Update Interval",
- "description": "How often to send Air Quality data over the mesh"
- },
- "powerMeasurementEnabled": {
- "label": "Power Measurement Enabled",
- "description": "Enable the Power Measurement Telemetry"
- },
- "powerUpdateInterval": {
- "label": "Power Update Interval",
- "description": "How often to send Power data over the mesh"
- },
- "powerScreenEnabled": {
- "label": "Power Screen Enabled",
- "description": "Enable the Power Telemetry Screen"
- }
- }
+ "page": {
+ "tabAmbientLighting": "Luz Ambiental",
+ "tabAudio": "Audio",
+ "tabCannedMessage": "Canned",
+ "tabDetectionSensor": "Sensor de Presencia",
+ "tabExternalNotification": "Ext Notif",
+ "tabMqtt": "MQTT",
+ "tabNeighborInfo": "Información de Vecinos",
+ "tabPaxcounter": "Contador de Paquetes",
+ "tabRangeTest": "Test de Alcance",
+ "tabSerial": "Conexión Serial",
+ "tabStoreAndForward": "S&F",
+ "tabTelemetry": "Telemetría"
+ },
+ "ambientLighting": {
+ "title": "Ambient Lighting Settings",
+ "description": "Settings for the Ambient Lighting module",
+ "ledState": {
+ "label": "LED State",
+ "description": "Sets LED to on or off"
+ },
+ "current": {
+ "label": "Intensidad",
+ "description": "Sets the current for the LED output. Default is 10"
+ },
+ "red": {
+ "label": "Rojo",
+ "description": "Sets the red LED level. Values are 0-255"
+ },
+ "green": {
+ "label": "Verde",
+ "description": "Sets the green LED level. Values are 0-255"
+ },
+ "blue": {
+ "label": "Azul",
+ "description": "Sets the blue LED level. Values are 0-255"
+ }
+ },
+ "audio": {
+ "title": "Audio Settings",
+ "description": "Settings for the Audio module",
+ "codec2Enabled": {
+ "label": "Codec 2 Enabled",
+ "description": "Enable Codec 2 audio encoding"
+ },
+ "pttPin": {
+ "label": "PTT Pin",
+ "description": "GPIO pin to use for PTT"
+ },
+ "bitrate": {
+ "label": "Bitrate",
+ "description": "Bitrate to use for audio encoding"
+ },
+ "i2sWs": {
+ "label": "i2S WS",
+ "description": "GPIO pin to use for i2S WS"
+ },
+ "i2sSd": {
+ "label": "i2S SD",
+ "description": "GPIO pin to use for i2S SD"
+ },
+ "i2sDin": {
+ "label": "i2S DIN",
+ "description": "GPIO pin to use for i2S DIN"
+ },
+ "i2sSck": {
+ "label": "i2S SCK",
+ "description": "GPIO pin to use for i2S SCK"
+ }
+ },
+ "cannedMessage": {
+ "title": "Canned Message Settings",
+ "description": "Settings for the Canned Message module",
+ "moduleEnabled": {
+ "label": "Module Enabled",
+ "description": "Enable Canned Message"
+ },
+ "rotary1Enabled": {
+ "label": "Rotary Encoder #1 Enabled",
+ "description": "Enable the rotary encoder"
+ },
+ "inputbrokerPinA": {
+ "label": "Encoder Pin A",
+ "description": "GPIO Pin Value (1-39) For encoder port A"
+ },
+ "inputbrokerPinB": {
+ "label": "Encoder Pin B",
+ "description": "GPIO Pin Value (1-39) For encoder port B"
+ },
+ "inputbrokerPinPress": {
+ "label": "Encoder Pin Press",
+ "description": "GPIO Pin Value (1-39) For encoder Press"
+ },
+ "inputbrokerEventCw": {
+ "label": "Clockwise event",
+ "description": "Select input event."
+ },
+ "inputbrokerEventCcw": {
+ "label": "Counter Clockwise event",
+ "description": "Select input event."
+ },
+ "inputbrokerEventPress": {
+ "label": "Press event",
+ "description": "Select input event"
+ },
+ "updown1Enabled": {
+ "label": "Up Down enabled",
+ "description": "Enable the up / down encoder"
+ },
+ "allowInputSource": {
+ "label": "Allow Input Source",
+ "description": "Select from: '_any', 'rotEnc1', 'upDownEnc1', 'cardkb'"
+ },
+ "sendBell": {
+ "label": "Send Bell",
+ "description": "Sends a bell character with each message"
+ }
+ },
+ "detectionSensor": {
+ "title": "Detection Sensor Settings",
+ "description": "Settings for the Detection Sensor module",
+ "enabled": {
+ "label": "Habilitado",
+ "description": "Enable or disable Detection Sensor Module"
+ },
+ "minimumBroadcastSecs": {
+ "label": "Minimum Broadcast Seconds",
+ "description": "The interval in seconds of how often we can send a message to the mesh when a state change is detected"
+ },
+ "stateBroadcastSecs": {
+ "label": "State Broadcast Seconds",
+ "description": "The interval in seconds of how often we should send a message to the mesh with the current state regardless of changes"
+ },
+ "sendBell": {
+ "label": "Send Bell",
+ "description": "Send ASCII bell with alert message"
+ },
+ "name": {
+ "label": "Friendly Name",
+ "description": "Used to format the message sent to mesh, max 20 Characters"
+ },
+ "monitorPin": {
+ "label": "Monitor Pin",
+ "description": "The GPIO pin to monitor for state changes"
+ },
+ "detectionTriggerType": {
+ "label": "Detection Triggered Type",
+ "description": "The type of trigger event to be used"
+ },
+ "usePullup": {
+ "label": "Use Pullup",
+ "description": "Whether or not use INPUT_PULLUP mode for GPIO pin"
+ }
+ },
+ "externalNotification": {
+ "title": "External Notification Settings",
+ "description": "Configure the external notification module",
+ "enabled": {
+ "label": "Module Enabled",
+ "description": "Enable External Notification"
+ },
+ "outputMs": {
+ "label": "Output MS",
+ "description": "Output MS"
+ },
+ "output": {
+ "label": "Output",
+ "description": "Output"
+ },
+ "outputVibra": {
+ "label": "Output Vibrate",
+ "description": "Output Vibrate"
+ },
+ "outputBuzzer": {
+ "label": "Output Buzzer",
+ "description": "Output Buzzer"
+ },
+ "active": {
+ "label": "Active",
+ "description": "Active"
+ },
+ "alertMessage": {
+ "label": "Alert Message",
+ "description": "Alert Message"
+ },
+ "alertMessageVibra": {
+ "label": "Alert Message Vibrate",
+ "description": "Alert Message Vibrate"
+ },
+ "alertMessageBuzzer": {
+ "label": "Alert Message Buzzer",
+ "description": "Alert Message Buzzer"
+ },
+ "alertBell": {
+ "label": "Alert Bell",
+ "description": "Should an alert be triggered when receiving an incoming bell?"
+ },
+ "alertBellVibra": {
+ "label": "Alert Bell Vibrate",
+ "description": "Alert Bell Vibrate"
+ },
+ "alertBellBuzzer": {
+ "label": "Alert Bell Buzzer",
+ "description": "Alert Bell Buzzer"
+ },
+ "usePwm": {
+ "label": "Use PWM",
+ "description": "Use PWM"
+ },
+ "nagTimeout": {
+ "label": "Nag Timeout",
+ "description": "Nag Timeout"
+ },
+ "useI2sAsBuzzer": {
+ "label": "Use I²S Pin as Buzzer",
+ "description": "Designate I²S Pin as Buzzer Output"
+ }
+ },
+ "mqtt": {
+ "title": "MQTT Settings",
+ "description": "Settings for the MQTT module",
+ "enabled": {
+ "label": "Habilitado",
+ "description": "Enable or disable MQTT"
+ },
+ "address": {
+ "label": "MQTT Server Address",
+ "description": "MQTT server address to use for default/custom servers"
+ },
+ "username": {
+ "label": "MQTT Username",
+ "description": "MQTT username to use for default/custom servers"
+ },
+ "password": {
+ "label": "MQTT Password",
+ "description": "MQTT password to use for default/custom servers"
+ },
+ "encryptionEnabled": {
+ "label": "Encryption Enabled",
+ "description": "Enable or disable MQTT encryption. Note: All messages are sent to the MQTT broker unencrypted if this option is not enabled, even when your uplink channels have encryption keys set. This includes position data."
+ },
+ "jsonEnabled": {
+ "label": "JSON Enabled",
+ "description": "Whether to send/consume JSON packets on MQTT"
+ },
+ "tlsEnabled": {
+ "label": "TLS Enabled",
+ "description": "Enable or disable TLS"
+ },
+ "root": {
+ "label": "Root topic",
+ "description": "MQTT root topic to use for default/custom servers"
+ },
+ "proxyToClientEnabled": {
+ "label": "MQTT Client Proxy Enabled",
+ "description": "Utilizes the network connection to proxy MQTT messages to the client."
+ },
+ "mapReportingEnabled": {
+ "label": "Map Reporting Enabled",
+ "description": "Your node will periodically send an unencrypted map report packet to the configured MQTT server, this includes id, short and long name, approximate location, hardware model, role, firmware version, LoRa region, modem preset and primary channel name."
+ },
+ "mapReportSettings": {
+ "publishIntervalSecs": {
+ "label": "Map Report Publish Interval (s)",
+ "description": "Interval in seconds to publish map reports"
+ },
+ "positionPrecision": {
+ "label": "Approximate Location",
+ "description": "Position shared will be accurate within this distance",
+ "options": {
+ "metric_km23": "Within 23 km",
+ "metric_km12": "Within 12 km",
+ "metric_km5_8": "Within 5.8 km",
+ "metric_km2_9": "Within 2.9 km",
+ "metric_km1_5": "Within 1.5 km",
+ "metric_m700": "Within 700 m",
+ "metric_m350": "Within 350 m",
+ "metric_m200": "Within 200 m",
+ "metric_m90": "Within 90 m",
+ "metric_m50": "Within 50 m",
+ "imperial_mi15": "Within 15 miles",
+ "imperial_mi7_3": "Within 7.3 miles",
+ "imperial_mi3_6": "Within 3.6 miles",
+ "imperial_mi1_8": "Within 1.8 miles",
+ "imperial_mi0_9": "Within 0.9 miles",
+ "imperial_mi0_5": "Within 0.5 miles",
+ "imperial_mi0_2": "Within 0.2 miles",
+ "imperial_ft600": "Within 600 feet",
+ "imperial_ft300": "Within 300 feet",
+ "imperial_ft150": "Within 150 feet"
+ }
+ }
+ }
+ },
+ "neighborInfo": {
+ "title": "Neighbor Info Settings",
+ "description": "Settings for the Neighbor Info module",
+ "enabled": {
+ "label": "Habilitado",
+ "description": "Enable or disable Neighbor Info Module"
+ },
+ "updateInterval": {
+ "label": "Update Interval",
+ "description": "Interval in seconds of how often we should try to send our Neighbor Info to the mesh"
+ }
+ },
+ "paxcounter": {
+ "title": "Paxcounter Settings",
+ "description": "Settings for the Paxcounter module",
+ "enabled": {
+ "label": "Module Enabled",
+ "description": "Enable Paxcounter"
+ },
+ "paxcounterUpdateInterval": {
+ "label": "Update Interval (seconds)",
+ "description": "How long to wait between sending paxcounter packets"
+ },
+ "wifiThreshold": {
+ "label": "WiFi RSSI Threshold",
+ "description": "At what WiFi RSSI level should the counter increase. Defaults to -80."
+ },
+ "bleThreshold": {
+ "label": "BLE RSSI Threshold",
+ "description": "At what BLE RSSI level should the counter increase. Defaults to -80."
+ }
+ },
+ "rangeTest": {
+ "title": "Range Test Settings",
+ "description": "Settings for the Range Test module",
+ "enabled": {
+ "label": "Module Enabled",
+ "description": "Enable Range Test"
+ },
+ "sender": {
+ "label": "Message Interval",
+ "description": "How long to wait between sending test packets"
+ },
+ "save": {
+ "label": "Save CSV to storage",
+ "description": "ESP32 Only"
+ }
+ },
+ "serial": {
+ "title": "Serial Settings",
+ "description": "Settings for the Serial module",
+ "enabled": {
+ "label": "Module Enabled",
+ "description": "Enable Serial output"
+ },
+ "echo": {
+ "label": "Echo",
+ "description": "Any packets you send will be echoed back to your device"
+ },
+ "rxd": {
+ "label": "Receive Pin",
+ "description": "Set the GPIO pin to the RXD pin you have set up."
+ },
+ "txd": {
+ "label": "Transmit Pin",
+ "description": "Set the GPIO pin to the TXD pin you have set up."
+ },
+ "baud": {
+ "label": "Baud Rate",
+ "description": "The serial baud rate"
+ },
+ "timeout": {
+ "label": "Tiempo agotado",
+ "description": "Seconds to wait before we consider your packet as 'done'"
+ },
+ "mode": {
+ "label": "Mode",
+ "description": "Select Mode"
+ },
+ "overrideConsoleSerialPort": {
+ "label": "Override Console Serial Port",
+ "description": "If you have a serial port connected to the console, this will override it."
+ }
+ },
+ "storeForward": {
+ "title": "Store & Forward Settings",
+ "description": "Settings for the Store & Forward module",
+ "enabled": {
+ "label": "Module Enabled",
+ "description": "Enable Store & Forward"
+ },
+ "heartbeat": {
+ "label": "Heartbeat Enabled",
+ "description": "Enable Store & Forward heartbeat"
+ },
+ "records": {
+ "label": "Número de registros",
+ "description": "Number of records to store"
+ },
+ "historyReturnMax": {
+ "label": "Historial máximo devuelto",
+ "description": "Max number of records to return"
+ },
+ "historyReturnWindow": {
+ "label": "History return window",
+ "description": "Devolver registros de esta ventana de tiempo (minutos)"
+ }
+ },
+ "telemetry": {
+ "title": "Telemetry Settings",
+ "description": "Settings for the Telemetry module",
+ "deviceUpdateInterval": {
+ "label": "Device Metrics",
+ "description": "Periodo entre las actualizaciones de las medidas del dispositivo (segundos) "
+ },
+ "environmentUpdateInterval": {
+ "label": "Periodo de refresco para las medidas del entorno",
+ "description": ""
+ },
+ "environmentMeasurementEnabled": {
+ "label": "Module Enabled",
+ "description": "Enable the Environment Telemetry"
+ },
+ "environmentScreenEnabled": {
+ "label": "Displayed on Screen",
+ "description": "Show the Telemetry Module on the OLED"
+ },
+ "environmentDisplayFahrenheit": {
+ "label": "Display Fahrenheit",
+ "description": "Display temp in Fahrenheit"
+ },
+ "airQualityEnabled": {
+ "label": "Air Quality Enabled",
+ "description": "Enable the Air Quality Telemetry"
+ },
+ "airQualityInterval": {
+ "label": "Air Quality Update Interval",
+ "description": "How often to send Air Quality data over the mesh"
+ },
+ "powerMeasurementEnabled": {
+ "label": "Power Measurement Enabled",
+ "description": "Enable the Power Measurement Telemetry"
+ },
+ "powerUpdateInterval": {
+ "label": "Power Update Interval",
+ "description": "How often to send Power data over the mesh"
+ },
+ "powerScreenEnabled": {
+ "label": "Power Screen Enabled",
+ "description": "Enable the Power Telemetry Screen"
+ }
+ }
}
diff --git a/packages/web/public/i18n/locales/es-ES/nodes.json b/packages/web/public/i18n/locales/es-ES/nodes.json
index 81caebf1..196d65d3 100644
--- a/packages/web/public/i18n/locales/es-ES/nodes.json
+++ b/packages/web/public/i18n/locales/es-ES/nodes.json
@@ -1,63 +1,59 @@
{
- "nodeDetail": {
- "publicKeyEnabled": {
- "label": "Public Key Enabled"
- },
- "noPublicKey": {
- "label": "No Public Key"
- },
- "directMessage": {
- "label": "Direct Message {{shortName}}"
- },
- "favorite": {
- "label": "Favorito",
- "tooltip": "Add or remove this node from your favorites"
- },
- "notFavorite": {
- "label": "Not a Favorite"
- },
- "error": {
- "label": "Error",
- "text": "An error occurred while fetching node details. Please try again later."
- },
- "status": {
- "heard": "Heard",
- "mqtt": "MQTT"
- },
- "elevation": {
- "label": "Elevation"
- },
- "channelUtil": {
- "label": "Channel Util"
- },
- "airtimeUtil": {
- "label": "Airtime Util"
- }
- },
- "nodesTable": {
- "headings": {
- "longName": "Long Name",
- "connection": "Connection",
- "lastHeard": "Last Heard",
- "encryption": "Encryption",
- "model": "Model",
- "macAddress": "MAC Address"
- },
- "connectionStatus": {
- "direct": "Directo",
- "away": "away",
- "unknown": "-",
- "viaMqtt": ", via MQTT"
- },
- "lastHeardStatus": {
- "never": "Never"
- }
- },
- "actions": {
- "added": "Added",
- "removed": "Removed",
- "ignoreNode": "Ignore Node",
- "unignoreNode": "Unignore Node",
- "requestPosition": "Request Position"
- }
+ "nodeDetail": {
+ "publicKeyEnabled": {
+ "label": "Public Key Enabled"
+ },
+ "noPublicKey": {
+ "label": "No Public Key"
+ },
+ "directMessage": {
+ "label": "Direct Message {{shortName}}"
+ },
+ "favorite": {
+ "label": "Favorito",
+ "tooltip": "Add or remove this node from your favorites"
+ },
+ "notFavorite": {
+ "label": "Not a Favorite"
+ },
+ "error": {
+ "label": "Error",
+ "text": "An error occurred while fetching node details. Please try again later."
+ },
+ "status": {
+ "heard": "Heard",
+ "mqtt": "MQTT"
+ },
+ "elevation": {
+ "label": "Elevation"
+ },
+ "channelUtil": {
+ "label": "Channel Util"
+ },
+ "airtimeUtil": {
+ "label": "Airtime Util"
+ }
+ },
+ "nodesTable": {
+ "headings": {
+ "longName": "Long Name",
+ "connection": "Connection",
+ "lastHeard": "Last Heard",
+ "encryption": "Encryption",
+ "model": "Model",
+ "macAddress": "MAC Address"
+ },
+ "connectionStatus": {
+ "direct": "Directo",
+ "away": "away",
+ "viaMqtt": ", via MQTT"
+ }
+ },
+ "actions": {
+ "added": "Added",
+ "removed": "Removed",
+ "ignoreNode": "Ignore Node",
+ "unignoreNode": "Unignore Node",
+ "requestPosition": "Request Position"
+ }
}
diff --git a/packages/web/public/i18n/locales/es-ES/ui.json b/packages/web/public/i18n/locales/es-ES/ui.json
index e7a1b959..f84ce68b 100644
--- a/packages/web/public/i18n/locales/es-ES/ui.json
+++ b/packages/web/public/i18n/locales/es-ES/ui.json
@@ -1,228 +1,229 @@
{
- "navigation": {
- "title": "Navigation",
- "messages": "Mensajes",
- "map": "Mapa",
- "config": "Config",
- "radioConfig": "Radio Config",
- "moduleConfig": "Module Config",
- "channels": "Canales",
- "nodes": "Nodos"
- },
- "app": {
- "title": "Meshtastic",
- "logo": "Meshtastic Logo"
- },
- "sidebar": {
- "collapseToggle": {
- "button": {
- "open": "Open sidebar",
- "close": "Close sidebar"
- }
- },
- "deviceInfo": {
- "volts": "{{voltage}} volts",
- "firmware": {
- "title": "Software",
- "version": "v{{version}}",
- "buildDate": "Build date: {{date}}"
- },
- "deviceName": {
- "title": "Device Name",
- "changeName": "Change Device Name",
- "placeholder": "Enter device name"
- },
- "editDeviceName": "Edit device name"
- }
- },
- "batteryStatus": {
- "charging": "{{level}}% charging",
- "pluggedIn": "Plugged in",
- "title": "Batería"
- },
- "search": {
- "nodes": "Search nodes...",
- "channels": "Search channels...",
- "commandPalette": "Search commands..."
- },
- "toast": {
- "positionRequestSent": {
- "title": "Position request sent."
- },
- "requestingPosition": {
- "title": "Requesting position, please wait..."
- },
- "sendingTraceroute": {
- "title": "Sending Traceroute, please wait..."
- },
- "tracerouteSent": {
- "title": "Traceroute sent."
- },
- "savedChannel": {
- "title": "Saved Channel: {{channelName}}"
- },
- "messages": {
- "pkiEncryption": {
- "title": "Chat is using PKI encryption."
- },
- "pskEncryption": {
- "title": "Chat is using PSK encryption."
- }
- },
- "configSaveError": {
- "title": "Error Saving Config",
- "description": "An error occurred while saving the configuration."
- },
- "validationError": {
- "title": "Config Errors Exist",
- "description": "Please fix the configuration errors before saving."
- },
- "saveSuccess": {
- "title": "Saving Config",
- "description": "The configuration change {{case}} has been saved."
- },
- "favoriteNode": {
- "title": "{{action}} {{nodeName}} {{direction}} favorites.",
- "action": {
- "added": "Added",
- "removed": "Removed",
- "to": "to",
- "from": "from"
- }
- },
- "ignoreNode": {
- "title": "{{action}} {{nodeName}} {{direction}} ignore list",
- "action": {
- "added": "Added",
- "removed": "Removed",
- "to": "to",
- "from": "from"
- }
- }
- },
- "notifications": {
- "copied": {
- "label": "Copied!"
- },
- "copyToClipboard": {
- "label": "Copy to clipboard"
- },
- "hidePassword": {
- "label": "Ocultar contraseña"
- },
- "showPassword": {
- "label": "Mostrar contraseña"
- },
- "deliveryStatus": {
- "delivered": "Delivered",
- "failed": "Delivery Failed",
- "waiting": "Waiting",
- "unknown": "Unknown"
- }
- },
- "general": {
- "label": "General"
- },
- "hardware": {
- "label": "Hardware"
- },
- "metrics": {
- "label": "Metrics"
- },
- "role": {
- "label": "Rol"
- },
- "filter": {
- "label": "Filtro"
- },
- "advanced": {
- "label": "Advanced"
- },
- "clearInput": {
- "label": "Clear input"
- },
- "resetFilters": {
- "label": "Reset Filters"
- },
- "nodeName": {
- "label": "Node name/number",
- "placeholder": "Meshtastic 1234"
- },
- "airtimeUtilization": {
- "label": "Airtime Utilization (%)"
- },
- "batteryLevel": {
- "label": "Battery level (%)",
- "labelText": "Battery level (%): {{value}}"
- },
- "batteryVoltage": {
- "label": "Battery voltage (V)",
- "title": "Tensión"
- },
- "channelUtilization": {
- "label": "Channel Utilization (%)"
- },
- "hops": {
- "direct": "Directo",
- "label": "Number of hops",
- "text": "Number of hops: {{value}}"
- },
- "lastHeard": {
- "label": "Última escucha",
- "labelText": "Last heard: {{value}}",
- "nowLabel": "Now"
- },
- "snr": {
- "label": "SNR (db)"
- },
- "favorites": {
- "label": "Favorites"
- },
- "hide": {
- "label": "Hide"
- },
- "showOnly": {
- "label": "Show Only"
- },
- "viaMqtt": {
- "label": "Connected via MQTT"
- },
- "hopsUnknown": {
- "label": "Unknown number of hops"
- },
- "showUnheard": {
- "label": "Never heard"
- },
- "language": {
- "label": "Idioma",
- "changeLanguage": "Change Language"
- },
- "theme": {
- "dark": "Oscuro",
- "light": "Claro",
- "system": "Automatic",
- "changeTheme": "Change Color Scheme"
- },
- "errorPage": {
- "title": "This is a little embarrassing...",
- "description1": "We are really sorry but an error occurred in the web client that caused it to crash.
This is not supposed to happen, and we are working hard to fix it.",
- "description2": "The best way to prevent this from happening again to you or anyone else is to report the issue to us.",
- "reportInstructions": "Please include the following information in your report:",
- "reportSteps": {
- "step1": "What you were doing when the error occurred",
- "step2": "What you expected to happen",
- "step3": "What actually happened",
- "step4": "Any other relevant information"
- },
- "reportLink": "You can report the issue to our <0>GitHub0>",
- "dashboardLink": "Return to the <0>dashboard0>",
- "detailsSummary": "Error Details",
- "errorMessageLabel": "Error message:",
- "stackTraceLabel": "Stack trace:",
- "fallbackError": "{{error}}"
- },
- "footer": {
- "text": "Powered by <0>▲ Vercel0> | Meshtastic® is a registered trademark of Meshtastic LLC. | <1>Legal Information1>",
- "commitSha": "Commit SHA: {{sha}}"
- }
+ "navigation": {
+ "title": "Navigation",
+ "messages": "Mensajes",
+ "map": "Mapa",
+ "settings": "Ajustes",
+ "channels": "Canales",
+ "radioConfig": "Radio Config",
+ "deviceConfig": "Configuración del dispositivo",
+ "moduleConfig": "Module Config",
+ "nodes": "Nodos"
+ },
+ "app": {
+ "title": "Meshtastic",
+ "logo": "Meshtastic Logo"
+ },
+ "sidebar": {
+ "collapseToggle": {
+ "button": {
+ "open": "Open sidebar",
+ "close": "Close sidebar"
+ }
+ },
+ "deviceInfo": {
+ "volts": "{{voltage}} volts",
+ "firmware": {
+ "title": "Software",
+ "version": "v{{version}}",
+ "buildDate": "Build date: {{date}}"
+ }
+ }
+ },
+ "batteryStatus": {
+ "charging": "{{level}}% charging",
+ "pluggedIn": "Plugged in",
+ "title": "Batería"
+ },
+ "search": {
+ "nodes": "Search nodes...",
+ "channels": "Search channels...",
+ "commandPalette": "Search commands..."
+ },
+ "toast": {
+ "positionRequestSent": {
+ "title": "Position request sent."
+ },
+ "requestingPosition": {
+ "title": "Requesting position, please wait..."
+ },
+ "sendingTraceroute": {
+ "title": "Sending Traceroute, please wait..."
+ },
+ "tracerouteSent": {
+ "title": "Traceroute sent."
+ },
+ "savedChannel": {
+ "title": "Saved Channel: {{channelName}}"
+ },
+ "messages": {
+ "pkiEncryption": {
+ "title": "Chat is using PKI encryption."
+ },
+ "pskEncryption": {
+ "title": "Chat is using PSK encryption."
+ }
+ },
+ "configSaveError": {
+ "title": "Error Saving Config",
+ "description": "An error occurred while saving the configuration."
+ },
+ "validationError": {
+ "title": "Config Errors Exist",
+ "description": "Please fix the configuration errors before saving."
+ },
+ "saveSuccess": {
+ "title": "Saving Config",
+ "description": "The configuration change {{case}} has been saved."
+ },
+ "saveAllSuccess": {
+ "title": "Saved",
+ "description": "All configuration changes have been saved."
+ },
+ "favoriteNode": {
+ "title": "{{action}} {{nodeName}} {{direction}} favorites.",
+ "action": {
+ "added": "Added",
+ "removed": "Removed",
+ "to": "to",
+ "from": "from"
+ }
+ },
+ "ignoreNode": {
+ "title": "{{action}} {{nodeName}} {{direction}} ignore list",
+ "action": {
+ "added": "Added",
+ "removed": "Removed",
+ "to": "to",
+ "from": "from"
+ }
+ }
+ },
+ "notifications": {
+ "copied": {
+ "label": "Copied!"
+ },
+ "copyToClipboard": {
+ "label": "Copy to clipboard"
+ },
+ "hidePassword": {
+ "label": "Ocultar contraseña"
+ },
+ "showPassword": {
+ "label": "Mostrar contraseña"
+ },
+ "deliveryStatus": {
+ "delivered": "Delivered",
+ "failed": "Delivery Failed",
+ "waiting": "Waiting",
+ "unknown": "Unknown"
+ }
+ },
+ "general": {
+ "label": "General"
+ },
+ "hardware": {
+ "label": "Hardware"
+ },
+ "metrics": {
+ "label": "Metrics"
+ },
+ "role": {
+ "label": "Rol"
+ },
+ "filter": {
+ "label": "Filtro"
+ },
+ "advanced": {
+ "label": "Advanced"
+ },
+ "clearInput": {
+ "label": "Clear input"
+ },
+ "resetFilters": {
+ "label": "Reset Filters"
+ },
+ "nodeName": {
+ "label": "Node name/number",
+ "placeholder": "Meshtastic 1234"
+ },
+ "airtimeUtilization": {
+ "label": "Airtime Utilization (%)",
+ "short": "Airtime Util. (%)"
+ },
+ "batteryLevel": {
+ "label": "Battery level (%)",
+ "labelText": "Battery level (%): {{value}}"
+ },
+ "batteryVoltage": {
+ "label": "Battery voltage (V)",
+ "title": "Tensión"
+ },
+ "channelUtilization": {
+ "label": "Channel Utilization (%)",
+ "short": "Channel Util. (%)"
+ },
+ "hops": {
+ "direct": "Directo",
+ "label": "Number of hops",
+ "text": "Number of hops: {{value}}"
+ },
+ "lastHeard": {
+ "label": "Última escucha",
+ "labelText": "Last heard: {{value}}",
+ "nowLabel": "Now"
+ },
+ "snr": {
+ "label": "SNR (db)"
+ },
+ "favorites": {
+ "label": "Favorites"
+ },
+ "hide": {
+ "label": "Hide"
+ },
+ "showOnly": {
+ "label": "Show Only"
+ },
+ "viaMqtt": {
+ "label": "Connected via MQTT"
+ },
+ "hopsUnknown": {
+ "label": "Unknown number of hops"
+ },
+ "showUnheard": {
+ "label": "Never heard"
+ },
+ "language": {
+ "label": "Idioma",
+ "changeLanguage": "Change Language"
+ },
+ "theme": {
+ "dark": "Oscuro",
+ "light": "Claro",
+ "system": "Automatic",
+ "changeTheme": "Change Color Scheme"
+ },
+ "errorPage": {
+ "title": "This is a little embarrassing...",
+ "description1": "We are really sorry but an error occurred in the web client that caused it to crash.
This is not supposed to happen, and we are working hard to fix it.",
+ "description2": "The best way to prevent this from happening again to you or anyone else is to report the issue to us.",
+ "reportInstructions": "Please include the following information in your report:",
+ "reportSteps": {
+ "step1": "What you were doing when the error occurred",
+ "step2": "What you expected to happen",
+ "step3": "What actually happened",
+ "step4": "Any other relevant information"
+ },
+ "reportLink": "You can report the issue to our <0>GitHub0>",
+ "dashboardLink": "Return to the <0>dashboard0>",
+ "detailsSummary": "Error Details",
+ "errorMessageLabel": "Error message:",
+ "stackTraceLabel": "Stack trace:",
+ "fallbackError": "{{error}}"
+ },
+ "footer": {
+ "text": "Powered by <0>▲ Vercel0> | Meshtastic® is a registered trademark of Meshtastic LLC. | <1>Legal Information1>",
+ "commitSha": "Commit SHA: {{sha}}"
+ }
}
diff --git a/packages/web/public/i18n/locales/fi-FI/channels.json b/packages/web/public/i18n/locales/fi-FI/channels.json
index 50026bfe..0ac9180a 100644
--- a/packages/web/public/i18n/locales/fi-FI/channels.json
+++ b/packages/web/public/i18n/locales/fi-FI/channels.json
@@ -1,69 +1,71 @@
{
- "page": {
- "sectionLabel": "Kanavat",
- "channelName": "Kanava: {{channelName}}",
- "broadcastLabel": "Ensisijainen",
- "channelIndex": "Ch {{index}}"
- },
- "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ä"
- }
- }
+ "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ä"
+ }
+ }
}
diff --git a/packages/web/public/i18n/locales/fi-FI/commandPalette.json b/packages/web/public/i18n/locales/fi-FI/commandPalette.json
index 4b8e8e83..66cacaa2 100644
--- a/packages/web/public/i18n/locales/fi-FI/commandPalette.json
+++ b/packages/web/public/i18n/locales/fi-FI/commandPalette.json
@@ -15,7 +15,6 @@
"messages": "Viestit",
"map": "Kartta",
"config": "Asetukset",
- "channels": "Kanavat",
"nodes": "Laitteet"
}
},
@@ -45,7 +44,8 @@
"label": "Vianetsintä",
"command": {
"reconfigure": "Määritä uudelleen",
- "clearAllStoredMessages": "Tyhjennä kaikki tallennetut viesti"
+ "clearAllStoredMessages": "Tyhjennä kaikki tallennetut viesti",
+ "clearAllStores": "Tyhjennä kaikki paikallisesta tallennustilasta"
}
}
}
diff --git a/packages/web/public/i18n/locales/fi-FI/common.json b/packages/web/public/i18n/locales/fi-FI/common.json
index f1f77c0e..08287e12 100644
--- a/packages/web/public/i18n/locales/fi-FI/common.json
+++ b/packages/web/public/i18n/locales/fi-FI/common.json
@@ -1,142 +1,157 @@
{
- "button": {
- "apply": "Hyväksy",
- "backupKey": "Varmuuskopioi avain",
- "cancel": "Peruuta",
- "clearMessages": "Tyhjennä viestit",
- "close": "Sulje",
- "confirm": "Vahvista",
- "delete": "Poista",
- "dismiss": "Hylkää",
- "download": "Lataa",
- "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",
- "save": "Tallenna",
- "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",
- "raw": "raakatieto",
- "meter": {
- "one": "Metri",
- "plural": "Metriä",
- "suffix": "m"
- },
- "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ää"
- },
- "month": {
- "one": "Kuukausi",
- "plural": "Kuukautta"
- },
- "year": {
- "one": "Vuosi",
- "plural": "Vuotta"
- },
- "snr": "SNR",
- "volt": {
- "one": "Voltti",
- "plural": "Voltit",
- "suffix": "V"
- },
- "record": {
- "one": "Tiedot",
- "plural": "Tiedot"
- }
- },
- "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."
- }
- },
- "yes": "Kyllä",
- "no": "Ei"
+ "button": {
+ "apply": "Hyväksy",
+ "backupKey": "Varmuuskopioi avain",
+ "cancel": "Peruuta",
+ "clearMessages": "Tyhjennä viestit",
+ "close": "Sulje",
+ "confirm": "Vahvista",
+ "delete": "Poista",
+ "dismiss": "Hylkää",
+ "download": "Lataa",
+ "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",
+ "save": "Tallenna",
+ "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",
+ "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"
}
diff --git a/packages/web/public/i18n/locales/fi-FI/config.json b/packages/web/public/i18n/locales/fi-FI/config.json
new file mode 100644
index 00000000..de9c7716
--- /dev/null
+++ b/packages/web/public/i18n/locales/fi-FI/config.json
@@ -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 MHz",
+ "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."
+ }
+ }
+}
diff --git a/packages/web/public/i18n/locales/fi-FI/dashboard.json b/packages/web/public/i18n/locales/fi-FI/dashboard.json
index 99ba7db3..43ce8a7f 100644
--- a/packages/web/public/i18n/locales/fi-FI/dashboard.json
+++ b/packages/web/public/i18n/locales/fi-FI/dashboard.json
@@ -1,12 +1,12 @@
{
- "dashboard": {
- "title": "Yhdistetyt laitteet",
- "description": "Hallitse yhdistettyjä Meshtastic laitteitasi.",
- "connectionType_ble": "BLE",
- "connectionType_serial": "Sarjaliitäntä",
- "connectionType_network": "Verkko",
- "noDevicesTitle": "Ei laitteita yhdistettynä",
- "noDevicesDescription": "Yhdistä uusi laite aloittaaksesi.",
- "button_newConnection": "Uusi yhteys"
- }
+ "dashboard": {
+ "title": "Yhdistetyt laitteet",
+ "description": "Hallitse yhdistettyjä Meshtastic laitteitasi.",
+ "connectionType_ble": "BLE",
+ "connectionType_serial": "Sarjaliitäntä",
+ "connectionType_network": "Verkko",
+ "noDevicesTitle": "Ei laitteita yhdistettynä",
+ "noDevicesDescription": "Yhdistä uusi laite aloittaaksesi.",
+ "button_newConnection": "Uusi yhteys"
+ }
}
diff --git a/packages/web/public/i18n/locales/fi-FI/dialog.json b/packages/web/public/i18n/locales/fi-FI/dialog.json
index 7f33bec2..31bd03c9 100644
--- a/packages/web/public/i18n/locales/fi-FI/dialog.json
+++ b/packages/web/public/i18n/locales/fi-FI/dialog.json
@@ -1,193 +1,221 @@
{
- "deleteMessages": {
- "description": "Tämä toiminto poistaa kaiken viestihistorian. Toimintoa ei voi perua. Haluatko varmasti jatkaa?",
- "title": "Tyhjennä kaikki viestit"
- },
- "deviceName": {
- "description": "Laite käynnistyy uudelleen, kun asetus on tallennettu.",
- "longName": "Pitkä nimi",
- "shortName": "Lyhytnimi",
- "title": "Vaihda laitteen nimi",
- "validation": {
- "longNameMax": "Pitkässä nimessä saa olla enintään 40 merkkiä",
- "shortNameMax": "Lyhytnimessä ei saa olla enempää kuin 4 merkkiä",
- "longNameMin": "Pitkässä nimessä täytyy olla vähintään yksi merkki",
- "shortNameMin": "Lyhytnimessä täytyy olla vähintään ykis merkki"
- }
- },
- "import": {
- "description": "Nykyinen LoRa-asetus ylikirjoitetaan.",
- "error": {
- "invalidUrl": "Virheellinen Meshtastic verkko-osoite"
- },
- "channelPrefix": "Kanava: ",
- "channelSetUrl": "Kanavan asetus / QR-koodin URL-osoite",
- "channels": "Kanavat:",
- "usePreset": "Käytä esiasetusta?",
- "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"
- },
- "newDeviceDialog": {
- "title": "Yhdistä uuteen laitteeseen",
- "https": "https",
- "http": "http",
- "tabHttp": "HTTP",
- "tabBluetooth": "Bluetooth",
- "tabSerial": "Sarjaliitäntä",
- "useHttps": "Käytä HTTPS",
- "connecting": "Yhdistetään...",
- "connect": "Yhdistä",
- "connectionFailedAlert": {
- "title": "Yhteys epäonnistui",
- "descriptionPrefix": "Laitteeseen ei saatu yhteyttä. ",
- "httpsHint": "Jos käytät HTTPS:ää, sinun on ehkä ensin hyväksyttävä itse allekirjoitettu varmenne. ",
- "openLinkPrefix": "Avaa ",
- "openLinkSuffix": " uuteen välilehteen",
- "acceptTlsWarningSuffix": ", hyväksy mahdolliset TLS-varoitukset, jos niitä ilmenee ja yritä sitten uudelleen.",
- "learnMoreLink": "Lue lisää"
- },
- "httpConnection": {
- "label": "IP-osoite / isäntänimi",
- "placeholder": "000.000.000 / meshtastinen.paikallinen"
- },
- "serialConnection": {
- "noDevicesPaired": "Yhtään laitetta ei ole vielä yhdistetty.",
- "newDeviceButton": "Uusi laite",
- "deviceIdentifier": "# {{index}} - {{vendorId}} - {{productId}}"
- },
- "bluetoothConnection": {
- "noDevicesPaired": "Yhtään laitetta ei ole vielä yhdistetty.",
- "newDeviceButton": "Uusi laite",
- "connectionFailed": "Yhdistäminen epäonnistui",
- "deviceDisconnected": "Yhteys laitteeseen katkaistu",
- "unknownDevice": "Tuntematon laite",
- "errorLoadingDevices": "Virhe ladattaessa laitteita",
- "unknownErrorLoadingDevices": "Tuntematon virhe laitteita ladattaessa"
- },
- "validation": {
- "requiresWebBluetooth": "Tämä yhteystyyppi vaatii <0>Web-sarjaportti bluetooth0> -tuen. Käytä tuettua selainta, kuten Chromea tai Edgeä.",
- "requiresWebSerial": "Tämä yhteystyyppi vaatii <0>Web-sarjaportti0> -tuen. Käytä tuettua selainta, kuten Chromea tai Edgeä.",
- "requiresSecureContext": "Tämä sovellus vaatii <0>suojatun yhteyden0>. Yhdistä käyttämällä HTTPS:ää tai localhostia.",
- "additionallyRequiresSecureContext": "Lisäksi se vaatii <0>suojatun yhteyden0>. Yhdistä käyttämällä HTTPS:ää tai localhostia."
- }
- },
- "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."
- }
+ "deleteMessages": {
+ "description": "Tämä toiminto poistaa kaiken viestihistorian. Toimintoa ei voi perua. Haluatko varmasti jatkaa?",
+ "title": "Tyhjennä kaikki viestit"
+ },
+ "deviceName": {
+ "description": "Laite käynnistyy uudelleen, kun asetus on tallennettu.",
+ "longName": "Pitkä nimi",
+ "shortName": "Lyhytnimi",
+ "title": "Vaihda laitteen nimi",
+ "validation": {
+ "longNameMax": "Pitkässä nimessä saa olla enintään 40 merkkiä",
+ "shortNameMax": "Lyhytnimessä ei saa olla enempää kuin 4 merkkiä",
+ "longNameMin": "Pitkässä nimessä täytyy olla vähintään yksi merkki",
+ "shortNameMin": "Lyhytnimessä täytyy olla vähintään ykis merkki"
+ }
+ },
+ "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"
+ },
+ "newDeviceDialog": {
+ "title": "Yhdistä uuteen laitteeseen",
+ "https": "https",
+ "http": "http",
+ "tabHttp": "HTTP",
+ "tabBluetooth": "Bluetooth",
+ "tabSerial": "Sarjaliitäntä",
+ "useHttps": "Käytä HTTPS",
+ "connecting": "Yhdistetään...",
+ "connect": "Yhdistä",
+ "connectionFailedAlert": {
+ "title": "Yhteys epäonnistui",
+ "descriptionPrefix": "Laitteeseen ei saatu yhteyttä. ",
+ "httpsHint": "Jos käytät HTTPS:ää, sinun on ehkä ensin hyväksyttävä itse allekirjoitettu varmenne. ",
+ "openLinkPrefix": "Avaa ",
+ "openLinkSuffix": " uuteen välilehteen",
+ "acceptTlsWarningSuffix": ", hyväksy mahdolliset TLS-varoitukset, jos niitä ilmenee ja yritä sitten uudelleen.",
+ "learnMoreLink": "Lue lisää"
+ },
+ "httpConnection": {
+ "label": "IP-osoite / isäntänimi",
+ "placeholder": "000.000.000 / meshtastinen.paikallinen"
+ },
+ "serialConnection": {
+ "noDevicesPaired": "Yhtään laitetta ei ole vielä yhdistetty.",
+ "newDeviceButton": "Uusi laite",
+ "deviceIdentifier": "# {{index}} - {{vendorId}} - {{productId}}"
+ },
+ "bluetoothConnection": {
+ "noDevicesPaired": "Yhtään laitetta ei ole vielä yhdistetty.",
+ "newDeviceButton": "Uusi laite",
+ "connectionFailed": "Yhdistäminen epäonnistui",
+ "deviceDisconnected": "Yhteys laitteeseen katkaistu",
+ "unknownDevice": "Tuntematon laite",
+ "errorLoadingDevices": "Virhe ladattaessa laitteita",
+ "unknownErrorLoadingDevices": "Tuntematon virhe laitteita ladattaessa"
+ },
+ "validation": {
+ "requiresWebBluetooth": "Tämä yhteystyyppi vaatii <0>Web-sarjaportti bluetooth0> -tuen. Käytä tuettua selainta, kuten Chromea tai Edgeä.",
+ "requiresWebSerial": "Tämä yhteystyyppi vaatii <0>Web-sarjaportti0> -tuen. Käytä tuettua selainta, kuten Chromea tai Edgeä.",
+ "requiresSecureContext": "Tämä sovellus vaatii <0>suojatun yhteyden0>. Yhdistä käyttämällä HTTPS:ää tai localhostia.",
+ "additionallyRequiresSecureContext": "Lisäksi se vaatii <0>suojatun yhteyden0>. Yhdistä käyttämällä HTTPS:ää tai localhostia."
+ }
+ },
+ "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."
+ }
}
diff --git a/packages/web/public/i18n/locales/fi-FI/map.json b/packages/web/public/i18n/locales/fi-FI/map.json
new file mode 100644
index 00000000..c1e84395
--- /dev/null
+++ b/packages/web/public/i18n/locales/fi-FI/map.json
@@ -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"
+ }
+}
diff --git a/packages/web/public/i18n/locales/fi-FI/messages.json b/packages/web/public/i18n/locales/fi-FI/messages.json
index 7852a8df..7fc4247f 100644
--- a/packages/web/public/i18n/locales/fi-FI/messages.json
+++ b/packages/web/public/i18n/locales/fi-FI/messages.json
@@ -1,39 +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"
- }
- }
+ "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"
+ }
+ }
}
diff --git a/packages/web/public/i18n/locales/fi-FI/moduleConfig.json b/packages/web/public/i18n/locales/fi-FI/moduleConfig.json
index 532d4255..b72fd520 100644
--- a/packages/web/public/i18n/locales/fi-FI/moduleConfig.json
+++ b/packages/web/public/i18n/locales/fi-FI/moduleConfig.json
@@ -1,448 +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"
- }
- }
+ "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"
+ }
+ }
}
diff --git a/packages/web/public/i18n/locales/fi-FI/nodes.json b/packages/web/public/i18n/locales/fi-FI/nodes.json
index 3f0ed0c2..b198204b 100644
--- a/packages/web/public/i18n/locales/fi-FI/nodes.json
+++ b/packages/web/public/i18n/locales/fi-FI/nodes.json
@@ -1,63 +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",
- "unknown": "-",
- "viaMqtt": ", MQTT välityksellä"
- },
- "lastHeardStatus": {
- "never": "Ei koskaan"
- }
- },
- "actions": {
- "added": "Lisätty",
- "removed": "Poistettu",
- "ignoreNode": "Älä huomioi laitetta",
- "unignoreNode": "Huomioi laite uudelleen",
- "requestPosition": "Pyydä sijaintia"
- }
+ "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"
+ }
}
diff --git a/packages/web/public/i18n/locales/fi-FI/ui.json b/packages/web/public/i18n/locales/fi-FI/ui.json
index d77363e7..ead3dbfd 100644
--- a/packages/web/public/i18n/locales/fi-FI/ui.json
+++ b/packages/web/public/i18n/locales/fi-FI/ui.json
@@ -1,228 +1,229 @@
{
- "navigation": {
- "title": "Navigointi",
- "messages": "Viestit",
- "map": "Kartta",
- "config": "Asetukset",
- "radioConfig": "Radion asetukset",
- "moduleConfig": "Moduulin asetukset",
- "channels": "Kanavat",
- "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}}"
- },
- "deviceName": {
- "title": "Laitteen nimi",
- "changeName": "Vaihda laitteen nimi",
- "placeholder": "Anna laitteelle nimi"
- },
- "editDeviceName": "Muokkaa laitteen nimeä"
- }
- },
- "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."
- },
- "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 (%)"
- },
- "batteryLevel": {
- "label": "Akun varaus (%)",
- "labelText": "Akun varaus (%): {{value}}"
- },
- "batteryVoltage": {
- "label": "Akun jännite (V)",
- "title": "Jännite"
- },
- "channelUtilization": {
- "label": "Kanavan käyttö (%)"
- },
- "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.
\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>GitHubissa0>",
- "dashboardLink": "Palaa takaisin <0>hallintapaneeliin0>",
- "detailsSummary": "Virheen tiedot",
- "errorMessageLabel": "Virheilmoitus:",
- "stackTraceLabel": "Virheen jäljityslista:",
- "fallbackError": "{{error}}"
- },
- "footer": {
- "text": "Powered by <0>▲ Vercel0> | Meshtastic® on Meshtastic LLC:n rekisteröity tavaramerkki. | <1>Oikeudelliset tiedot1>",
- "commitSha": "Ohjelmistokehitysversion SHA-tunniste: {{sha}}"
- }
+ "navigation": {
+ "title": "Navigointi",
+ "messages": "Viestit",
+ "map": "Kartta",
+ "settings": "Asetukset",
+ "channels": "Kanavat",
+ "radioConfig": "Radion asetukset",
+ "deviceConfig": "Laitteen asetukset",
+ "moduleConfig": "Moduulin asetukset",
+ "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ähetysaikakä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.
\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>GitHubissa0>",
+ "dashboardLink": "Palaa takaisin <0>hallintapaneeliin0>",
+ "detailsSummary": "Virheen tiedot",
+ "errorMessageLabel": "Virheilmoitus:",
+ "stackTraceLabel": "Virheen jäljityslista:",
+ "fallbackError": "{{error}}"
+ },
+ "footer": {
+ "text": "Powered by <0>▲ Vercel0> | Meshtastic® on Meshtastic LLC:n rekisteröity tavaramerkki. | <1>Oikeudelliset tiedot1>",
+ "commitSha": "Ohjelmistokehitysversion SHA-tunniste: {{sha}}"
+ }
}
diff --git a/packages/web/public/i18n/locales/fr-FR/channels.json b/packages/web/public/i18n/locales/fr-FR/channels.json
index 25545492..cc918e8d 100644
--- a/packages/web/public/i18n/locales/fr-FR/channels.json
+++ b/packages/web/public/i18n/locales/fr-FR/channels.json
@@ -1,69 +1,71 @@
{
- "page": {
- "sectionLabel": "Canaux",
- "channelName": "Canal {{channelName}}",
- "broadcastLabel": "Principal",
- "channelIndex": "Ca {{index}}"
- },
- "validation": {
- "pskInvalid": "Veuillez entrer une clé PSK valide de {{bits}} bits."
- },
- "settings": {
- "label": "Paramètres du canal",
- "description": "Paramètres Crypto, MQTT et divers"
- },
- "role": {
- "label": "Rôle",
- "description": "La télémétrie de l’appareil est envoyée via le canal PRINCIPAL. Un seul canal PRINCIPAL est autorisé.",
- "options": {
- "primary": "PRINCIPAL",
- "disabled": "DÉSACTIVÉ",
- "secondary": "SECONDAIRE"
- }
- },
- "psk": {
- "label": "Clé partagée",
- "description": "Longueurs de clé PSK prises en charge : 256 bits, 128 bits, 8 bits, vide (0 bit)",
- "generate": "Générer"
- },
- "name": {
- "label": "Nom",
- "description": "Un nom unique pour le canal (<12 octets), laisser vide pour utiliser la valeur par défaut"
- },
- "uplinkEnabled": {
- "label": "Liaison montante activée",
- "description": "Envoyer les messages du maillage local vers MQTT"
- },
- "downlinkEnabled": {
- "label": "Liaison descendante activée",
- "description": "Envoyer les messages de MQTT vers le maillage local"
- },
- "positionPrecision": {
- "label": "Position",
- "description": "La précision de la position à partager avec le canal. Peut être désactivée.",
- "options": {
- "none": "Ne pas partager la position",
- "precise": "Position précise",
- "metric_km23": "À moins de 23 kilomètres",
- "metric_km12": "À moins de 12 kilomètres",
- "metric_km5_8": "À moins de 5,8 kilomètres",
- "metric_km2_9": "À moins de 2,9 kilomètres",
- "metric_km1_5": "À moins de 1,5 kilomètres",
- "metric_m700": "À moins de 700 mètres",
- "metric_m350": "À moins de 350 mètres",
- "metric_m200": "À moins de 200 mètres",
- "metric_m90": "À moins de 90 mètres",
- "metric_m50": "À moins de 50 mètres",
- "imperial_mi15": "À moins de 15 miles",
- "imperial_mi7_3": "À moins de 7,3 miles",
- "imperial_mi3_6": "À moins de 3,6 miles",
- "imperial_mi1_8": "À moins de 1,8 miles",
- "imperial_mi0_9": "À moins de 0,9 miles",
- "imperial_mi0_5": "À moins de 0,5 miles",
- "imperial_mi0_2": "À moins de 0,2 miles",
- "imperial_ft600": "À moins de 600 pieds",
- "imperial_ft300": "À moins de 300 pieds",
- "imperial_ft150": "À moins de 150 pieds"
- }
- }
+ "page": {
+ "sectionLabel": "Canaux",
+ "channelName": "Canal {{channelName}}",
+ "broadcastLabel": "Principal",
+ "channelIndex": "Ca {{index}}",
+ "import": "Importer",
+ "export": "Exporter"
+ },
+ "validation": {
+ "pskInvalid": "Veuillez entrer une clé PSK valide de {{bits}} bits."
+ },
+ "settings": {
+ "label": "Paramètres du canal",
+ "description": "Paramètres Crypto, MQTT et divers"
+ },
+ "role": {
+ "label": "Rôle",
+ "description": "La télémétrie de l’appareil est envoyée via le canal PRINCIPAL. Un seul canal PRINCIPAL est autorisé.",
+ "options": {
+ "primary": "PRINCIPAL",
+ "disabled": "DÉSACTIVÉ",
+ "secondary": "SECONDAIRE"
+ }
+ },
+ "psk": {
+ "label": "Clé partagée",
+ "description": "Longueurs de clé PSK prises en charge : 256 bits, 128 bits, 8 bits, vide (0 bit)",
+ "generate": "Générer"
+ },
+ "name": {
+ "label": "Nom",
+ "description": "Un nom unique pour le canal (<12 octets), laisser vide pour utiliser la valeur par défaut"
+ },
+ "uplinkEnabled": {
+ "label": "Liaison montante activée",
+ "description": "Envoyer les messages du maillage local vers MQTT"
+ },
+ "downlinkEnabled": {
+ "label": "Liaison descendante activée",
+ "description": "Envoyer les messages de MQTT vers le maillage local"
+ },
+ "positionPrecision": {
+ "label": "Position",
+ "description": "La précision de la position à partager avec le canal. Peut être désactivée.",
+ "options": {
+ "none": "Ne pas partager la position",
+ "precise": "Position précise",
+ "metric_km23": "À moins de 23 kilomètres",
+ "metric_km12": "À moins de 12 kilomètres",
+ "metric_km5_8": "À moins de 5,8 kilomètres",
+ "metric_km2_9": "À moins de 2,9 kilomètres",
+ "metric_km1_5": "À moins de 1,5 kilomètres",
+ "metric_m700": "À moins de 700 mètres",
+ "metric_m350": "À moins de 350 mètres",
+ "metric_m200": "À moins de 200 mètres",
+ "metric_m90": "À moins de 90 mètres",
+ "metric_m50": "À moins de 50 mètres",
+ "imperial_mi15": "À moins de 15 miles",
+ "imperial_mi7_3": "À moins de 7,3 miles",
+ "imperial_mi3_6": "À moins de 3,6 miles",
+ "imperial_mi1_8": "À moins de 1,8 miles",
+ "imperial_mi0_9": "À moins de 0,9 miles",
+ "imperial_mi0_5": "À moins de 0,5 miles",
+ "imperial_mi0_2": "À moins de 0,2 miles",
+ "imperial_ft600": "À moins de 600 pieds",
+ "imperial_ft300": "À moins de 300 pieds",
+ "imperial_ft150": "À moins de 150 pieds"
+ }
+ }
}
diff --git a/packages/web/public/i18n/locales/fr-FR/commandPalette.json b/packages/web/public/i18n/locales/fr-FR/commandPalette.json
index ef6cbec9..88ef1dd7 100644
--- a/packages/web/public/i18n/locales/fr-FR/commandPalette.json
+++ b/packages/web/public/i18n/locales/fr-FR/commandPalette.json
@@ -15,7 +15,6 @@
"messages": "Messages",
"map": "Carte",
"config": "Config",
- "channels": "Canaux",
"nodes": "Noeuds"
}
},
@@ -45,7 +44,8 @@
"label": "Debug",
"command": {
"reconfigure": "Reconfigurer",
- "clearAllStoredMessages": "Effacer tous les messages stockés"
+ "clearAllStoredMessages": "Effacer tous les messages stockés",
+ "clearAllStores": "Clear All Local Storage"
}
}
}
diff --git a/packages/web/public/i18n/locales/fr-FR/common.json b/packages/web/public/i18n/locales/fr-FR/common.json
index 9eb51063..b0996045 100644
--- a/packages/web/public/i18n/locales/fr-FR/common.json
+++ b/packages/web/public/i18n/locales/fr-FR/common.json
@@ -1,142 +1,157 @@
{
- "button": {
- "apply": "Appliquer",
- "backupKey": "Clé de sauvegarde",
- "cancel": "Annuler",
- "clearMessages": "Effacer les messages",
- "close": "Fermer",
- "confirm": "Confirmer",
- "delete": "Effacer",
- "dismiss": "Annuler",
- "download": "Télécharger",
- "export": "Exporter",
- "generate": "Générer",
- "regenerate": "Regénérer",
- "import": "Importer",
- "message": "Message",
- "now": "Maintenant",
- "ok": "D'accord",
- "print": "Imprimer",
- "remove": "Supprimer",
- "requestNewKeys": "Demander de nouvelles clés",
- "requestPosition": "Demander la position",
- "reset": "Réinitialiser",
- "save": "Sauvegarder",
- "scanQr": "Scanner le code QR",
- "traceRoute": "Analyse du trajet réseau",
- "submit": "Envoyer"
- },
- "app": {
- "title": "Meshtastic",
- "fullTitle": "Client Web Meshtastic"
- },
- "loading": "Chargement...",
- "unit": {
- "cps": "CPS",
- "dbm": "dBm",
- "hertz": "Hz",
- "hop": {
- "one": "Saut",
- "plural": "Sauts"
- },
- "hopsAway": {
- "one": "À {{count}} saut",
- "plural": "À {{count}} sauts",
- "unknown": "Nombre de sauts inconnu"
- },
- "megahertz": "MHz",
- "raw": "brute",
- "meter": {
- "one": "Mètre",
- "plural": "Mètres",
- "suffix": "m"
- },
- "minute": {
- "one": "Minute",
- "plural": "Minutes"
- },
- "hour": {
- "one": "Heure",
- "plural": "Heures"
- },
- "millisecond": {
- "one": "Milliseconde",
- "plural": "Millisecondes",
- "suffix": "ms"
- },
- "second": {
- "one": "Seconde",
- "plural": "Secondes"
- },
- "day": {
- "one": "Jour",
- "plural": "Jours"
- },
- "month": {
- "one": "Mois",
- "plural": "Mois"
- },
- "year": {
- "one": "Année",
- "plural": "Années"
- },
- "snr": "SNR",
- "volt": {
- "one": "Volt",
- "plural": "Volts",
- "suffix": "V"
- },
- "record": {
- "one": "Enregistrement",
- "plural": "Enregistrements"
- }
- },
- "security": {
- "0bit": "Vide",
- "8bit": "8 bits",
- "128bit": "128 bits",
- "256bit": "256 bits"
- },
- "unknown": {
- "longName": "Inconnu",
- "shortName": "UNK",
- "notAvailable": "Indisponible",
- "num": "??"
- },
- "nodeUnknownPrefix": "!",
- "unset": "DÉSACTIVER",
- "fallbackName": "Meshtastic {{last4}}",
- "node": "Noeud",
- "formValidation": {
- "unsavedChanges": "Modifications non enregistrées",
- "tooBig": {
- "string": "Trop long : {{maximum}} caractères maximum autorisés.",
- "number": "Trop grand, un nombre inférieur ou égal à {{maximum}} est attendu.",
- "bytes": "Taille trop grand : maximum {{params.maximum}} octets autorisés."
- },
- "tooSmall": {
- "string": "Trop court : au moins {{minimum}} caractères requis.",
- "number": "Valeur trop basse : minimum {{minimum}} requis."
- },
- "invalidFormat": {
- "ipv4": "Format invalide, adresse IPv4 attendue.",
- "key": "Format incorrect, la clé PSK doit être encodée en Base64."
- },
- "invalidType": {
- "number": "Type incorrect, nombre attendu."
- },
- "pskLength": {
- "0bit": "La clé doit être vide.",
- "8bit": "La clé doit être une clé pré-partagée (PSK) de 8 bits.",
- "128bit": "La clé doit être une clé pré-partagée (PSK) de 128 bits.",
- "256bit": "La clé doit être une clé pré-partagée (PSK) de 256 bits."
- },
- "required": {
- "generic": "Ce champ est obligatoire.",
- "managed": "Au moins une clé d’administration est requise si le nœud est géré.",
- "key": "Clé requise."
- }
- },
- "yes": "Oui",
- "no": "Non"
+ "button": {
+ "apply": "Appliquer",
+ "backupKey": "Clé de sauvegarde",
+ "cancel": "Annuler",
+ "clearMessages": "Effacer les messages",
+ "close": "Fermer",
+ "confirm": "Confirmer",
+ "delete": "Effacer",
+ "dismiss": "Annuler",
+ "download": "Télécharger",
+ "export": "Exporter",
+ "generate": "Générer",
+ "regenerate": "Regénérer",
+ "import": "Importer",
+ "message": "Message",
+ "now": "Maintenant",
+ "ok": "D'accord",
+ "print": "Imprimer",
+ "remove": "Supprimer",
+ "requestNewKeys": "Demander de nouvelles clés",
+ "requestPosition": "Demander la position",
+ "reset": "Réinitialiser",
+ "save": "Sauvegarder",
+ "scanQr": "Scanner le code QR",
+ "traceRoute": "Analyse du trajet réseau",
+ "submit": "Envoyer"
+ },
+ "app": {
+ "title": "Meshtastic",
+ "fullTitle": "Client Web Meshtastic"
+ },
+ "loading": "Chargement...",
+ "unit": {
+ "cps": "CPS",
+ "dbm": "dBm",
+ "hertz": "Hz",
+ "hop": {
+ "one": "Saut",
+ "plural": "Sauts"
+ },
+ "hopsAway": {
+ "one": "À {{count}} saut",
+ "plural": "À {{count}} sauts",
+ "unknown": "Nombre de sauts inconnu"
+ },
+ "megahertz": "MHz",
+ "raw": "brute",
+ "meter": {
+ "one": "Mètre",
+ "plural": "Mètres",
+ "suffix": "m"
+ },
+ "kilometer": {
+ "one": "Kilometer",
+ "plural": "Kilometers",
+ "suffix": "km"
+ },
+ "minute": {
+ "one": "Minute",
+ "plural": "Minutes"
+ },
+ "hour": {
+ "one": "Heure",
+ "plural": "Heures"
+ },
+ "millisecond": {
+ "one": "Milliseconde",
+ "plural": "Millisecondes",
+ "suffix": "ms"
+ },
+ "second": {
+ "one": "Seconde",
+ "plural": "Secondes"
+ },
+ "day": {
+ "one": "Jour",
+ "plural": "Jours",
+ "today": "Today",
+ "yesterday": "Yesterday"
+ },
+ "month": {
+ "one": "Mois",
+ "plural": "Mois"
+ },
+ "year": {
+ "one": "Année",
+ "plural": "Années"
+ },
+ "snr": "SNR",
+ "volt": {
+ "one": "Volt",
+ "plural": "Volts",
+ "suffix": "V"
+ },
+ "record": {
+ "one": "Enregistrement",
+ "plural": "Enregistrements"
+ },
+ "degree": {
+ "one": "Degree",
+ "plural": "Degrees",
+ "suffix": "°"
+ }
+ },
+ "security": {
+ "0bit": "Vide",
+ "8bit": "8 bits",
+ "128bit": "128 bits",
+ "256bit": "256 bits"
+ },
+ "unknown": {
+ "longName": "Inconnu",
+ "shortName": "UNK",
+ "notAvailable": "Indisponible",
+ "num": "??"
+ },
+ "nodeUnknownPrefix": "!",
+ "unset": "DÉSACTIVER",
+ "fallbackName": "Meshtastic {{last4}}",
+ "node": "Noeud",
+ "formValidation": {
+ "unsavedChanges": "Modifications non enregistrées",
+ "tooBig": {
+ "string": "Trop long : {{maximum}} caractères maximum autorisés.",
+ "number": "Trop grand, un nombre inférieur ou égal à {{maximum}} est attendu.",
+ "bytes": "Taille trop grand : maximum {{params.maximum}} octets autorisés."
+ },
+ "tooSmall": {
+ "string": "Trop court : au moins {{minimum}} caractères requis.",
+ "number": "Valeur trop basse : minimum {{minimum}} requis."
+ },
+ "invalidFormat": {
+ "ipv4": "Format invalide, adresse IPv4 attendue.",
+ "key": "Format incorrect, la clé PSK doit être encodée en Base64."
+ },
+ "invalidType": {
+ "number": "Type incorrect, nombre attendu."
+ },
+ "pskLength": {
+ "0bit": "La clé doit être vide.",
+ "8bit": "La clé doit être une clé pré-partagée (PSK) de 8 bits.",
+ "128bit": "La clé doit être une clé pré-partagée (PSK) de 128 bits.",
+ "256bit": "La clé doit être une clé pré-partagée (PSK) de 256 bits."
+ },
+ "required": {
+ "generic": "Ce champ est obligatoire.",
+ "managed": "Au moins une clé d’administration est requise si le nœud est géré.",
+ "key": "Clé requise."
+ },
+ "invalidOverrideFreq": {
+ "number": "Invalid format, expected a value in the range 410-930 MHz or 0 (use default)."
+ }
+ },
+ "yes": "Oui",
+ "no": "Non"
}
diff --git a/packages/web/public/i18n/locales/fr-FR/config.json b/packages/web/public/i18n/locales/fr-FR/config.json
new file mode 100644
index 00000000..7ff60d9f
--- /dev/null
+++ b/packages/web/public/i18n/locales/fr-FR/config.json
@@ -0,0 +1,458 @@
+{
+ "page": {
+ "title": "Réglages",
+ "tabUser": "Utilisateur",
+ "tabChannels": "Canaux",
+ "tabBluetooth": "Bluetooth",
+ "tabDevice": "Appareil",
+ "tabDisplay": "Écran",
+ "tabLora": "LoRa",
+ "tabNetwork": "Réseau",
+ "tabPosition": "Position",
+ "tabPower": "Alimentation",
+ "tabSecurity": "Sécurité"
+ },
+ "sidebar": {
+ "label": "Configuration"
+ },
+ "device": {
+ "title": "Paramètres de l'appareil",
+ "description": "Paramètres de l'appareil",
+ "buttonPin": {
+ "description": "Redéfinition de la broche du bouton",
+ "label": "Broche du bouton"
+ },
+ "buzzerPin": {
+ "description": "Redéfinition de la broche du buzzer",
+ "label": "Broche du buzzer"
+ },
+ "disableTripleClick": {
+ "description": "Désactiver le triple clic",
+ "label": "Désactiver le triple clic"
+ },
+ "doubleTapAsButtonPress": {
+ "description": "Considérer le double tapotement comme un appui sur le bouton",
+ "label": "Double tapotement comme appui bouton"
+ },
+ "ledHeartbeatDisabled": {
+ "description": "Désactiver le clignotement LED par défaut",
+ "label": "Clignotement LED désactivé"
+ },
+ "nodeInfoBroadcastInterval": {
+ "description": "Fréquence de diffusion des informations du nœud",
+ "label": "Intervalle de diffusion des infos nœud"
+ },
+ "posixTimezone": {
+ "description": "Chaîne de fuseau horaire POSIX pour l'appareil",
+ "label": "Zone horaire POSIX"
+ },
+ "rebroadcastMode": {
+ "description": "Mode de réémission des messages",
+ "label": "Mode de réémission"
+ },
+ "role": {
+ "description": "Rôle de l'appareil dans le réseau mesh",
+ "label": "Rôle"
+ }
+ },
+ "bluetooth": {
+ "title": "Paramètres Bluetooth",
+ "description": "Paramètres du module Bluetooth",
+ "note": "Note: Certains appareils (ESP32) ne peuvent pas utiliser à la fois Bluetooth et WiFi en même temps.",
+ "enabled": {
+ "description": "Activer ou désactiver le Bluetooth",
+ "label": "Activé"
+ },
+ "pairingMode": {
+ "description": "Titre en gras",
+ "label": "Mode d'appariement"
+ },
+ "pin": {
+ "description": "Broche utilisée pour l'appairage",
+ "label": "Broche"
+ }
+ },
+ "display": {
+ "description": "Paramètres d'affichage de l'appareil",
+ "title": "Paramètres d'affichage",
+ "headingBold": {
+ "description": "Mettre le titre en gras",
+ "label": "Titre en gras"
+ },
+ "carouselDelay": {
+ "description": "Vitesse de défilement des fenêtres",
+ "label": "Délai du carrousel"
+ },
+ "compassNorthTop": {
+ "description": "Fixer le nord en haut de la boussole",
+ "label": "Nord en haut de la boussole"
+ },
+ "displayMode": {
+ "description": "Variante de disposition d'affichage",
+ "label": "Mode d'affichage"
+ },
+ "displayUnits": {
+ "description": "Afficher en unités métriques ou impériales",
+ "label": "Unités affichées"
+ },
+ "flipScreen": {
+ "description": "Faire pivoter l'affichage de 180 degrés",
+ "label": "Faire pivoter l'écran"
+ },
+ "gpsDisplayUnits": {
+ "description": "Format d'affichage des coordonnées",
+ "label": "Unités GPS"
+ },
+ "oledType": {
+ "description": "Type d'écran OLED connecté à l'appareil",
+ "label": "Type d'OLED"
+ },
+ "screenTimeout": {
+ "description": "Temps avant extinction de l'écran",
+ "label": "Délai d'extinction de l'écran"
+ },
+ "twelveHourClock": {
+ "description": "Utiliser le format horaire 12 heures",
+ "label": "Horloge 12 h"
+ },
+ "wakeOnTapOrMotion": {
+ "description": "Réveiller l'appareil en cas de tapotement ou de mouvement",
+ "label": "Réveil par tapotement ou mouvement"
+ }
+ },
+ "lora": {
+ "title": "Paramètres maillage",
+ "description": "Paramètres du réseau maillé LoRa",
+ "bandwidth": {
+ "description": "Largeur de bande du canal en MHz",
+ "label": "Bande Passante"
+ },
+ "boostedRxGain": {
+ "description": "Gain de réception amplifié",
+ "label": "Gain RX amplifié"
+ },
+ "codingRate": {
+ "description": "Dénominateur du taux de codage",
+ "label": "Taux de codage"
+ },
+ "frequencyOffset": {
+ "description": "Décalage de fréquence pour corriger les erreurs d'étalonnage du cristal",
+ "label": "Décalage de fréquence"
+ },
+ "frequencySlot": {
+ "description": "Numéro du canal de fréquence LoRa",
+ "label": "Slot de fréquence"
+ },
+ "hopLimit": {
+ "description": "Nombre maximum de sauts",
+ "label": "Limite de sauts"
+ },
+ "ignoreMqtt": {
+ "description": "Ne pas transférer les messages MQTT sur le maillage",
+ "label": "Ignorer MQTT"
+ },
+ "modemPreset": {
+ "description": "Préréglage du modem à utiliser",
+ "label": "Préréglage du modem"
+ },
+ "okToMqtt": {
+ "description": "Si activé, permet la publication du paquet sur MQTT. Sinon, les nœuds distants ne doivent pas relayer les paquets vers MQTT.",
+ "label": "OK vers MQTT"
+ },
+ "overrideDutyCycle": {
+ "description": "Ne pas prendre en compte la limite d'utilisation",
+ "label": "Ne pas prendre en compte la limite d'utilisation"
+ },
+ "overrideFrequency": {
+ "description": "Remplacement de la fréquence",
+ "label": "Fréquence personnalisée"
+ },
+ "region": {
+ "description": "Définit la région pour votre nœud",
+ "label": "Région"
+ },
+ "spreadingFactor": {
+ "description": "Nombre de chirps par symbole",
+ "label": "Facteur d'étalement"
+ },
+ "transmitEnabled": {
+ "description": "Activer/désactiver l'émission (TX) depuis la radio LoRa",
+ "label": "Transmission activée"
+ },
+ "transmitPower": {
+ "description": "Puissance maximale d'émission",
+ "label": "Puissance d'émission"
+ },
+ "usePreset": {
+ "description": "Utiliser un des préréglages prédéfinis du modem",
+ "label": "Utiliser un préréglage"
+ },
+ "meshSettings": {
+ "description": "Paramètres du maillage LoRa",
+ "label": "Paramètres du maillage"
+ },
+ "waveformSettings": {
+ "description": "Paramètres de la forme d’onde LoRa",
+ "label": "Paramètres de l’onde"
+ },
+ "radioSettings": {
+ "label": "Paramètres radio",
+ "description": "Paramètres de la radio LoRa"
+ }
+ },
+ "network": {
+ "title": "Configuration WiFi",
+ "description": "Configuration de la radio WiFi",
+ "note": "Remarque : certains appareils (ESP32) ne peuvent pas utiliser simultanément Bluetooth et WiFi.",
+ "addressMode": {
+ "description": "Sélection du mode d’attribution d’adresse",
+ "label": "Mode d’adressage"
+ },
+ "dns": {
+ "description": "Serveur DNS",
+ "label": "DNS"
+ },
+ "ethernetEnabled": {
+ "description": "Activer ou désactiver le port Ethernet",
+ "label": "Activé"
+ },
+ "gateway": {
+ "description": "Passerelle par défaut",
+ "label": "Passerelle"
+ },
+ "ip": {
+ "description": "Adresse IP",
+ "label": "IP"
+ },
+ "psk": {
+ "description": "Mot de passe du réseau",
+ "label": "PSK"
+ },
+ "ssid": {
+ "description": "Nom du réseau",
+ "label": "SSID"
+ },
+ "subnet": {
+ "description": "Masque de sous-réseau",
+ "label": "Sous-réseau"
+ },
+ "wifiEnabled": {
+ "description": "Activer ou désactiver la radio WiFi",
+ "label": "Activé"
+ },
+ "meshViaUdp": {
+ "label": "Réseau maillé via UDP"
+ },
+ "ntpServer": {
+ "label": "Serveur NTP"
+ },
+ "rsyslogServer": {
+ "label": "Serveur Rsyslog"
+ },
+ "ethernetConfigSettings": {
+ "description": "Paramètres du port Ethernet",
+ "label": "Configuration Ethernet"
+ },
+ "ipConfigSettings": {
+ "description": "Paramètres IP",
+ "label": "Configuration IP"
+ },
+ "ntpConfigSettings": {
+ "description": "Configuration NTP",
+ "label": "Configuration NTP"
+ },
+ "rsyslogConfigSettings": {
+ "description": "Paramètres Rsyslog",
+ "label": "Configuration Rsyslog"
+ },
+ "udpConfigSettings": {
+ "description": "Configuration du réseau maillé via UDP",
+ "label": "Configuration UDP"
+ }
+ },
+ "position": {
+ "title": "Paramètres de position",
+ "description": "Paramètres du module de position",
+ "broadcastInterval": {
+ "description": "Fréquence d’envoi de votre position sur le réseau maillé",
+ "label": "Intervalle de diffusion"
+ },
+ "enablePin": {
+ "description": "Redéfinition de la broche d’activation du module GPS",
+ "label": "Broche d’activation"
+ },
+ "fixedPosition": {
+ "description": "Ne pas envoyer la position GPS mais une position saisie manuellement",
+ "label": "Position fixe"
+ },
+ "gpsMode": {
+ "description": "Configuration du GPS : activé, désactivé ou non présent",
+ "label": "Mode GPS"
+ },
+ "gpsUpdateInterval": {
+ "description": "Fréquence d’acquisition d’une position GPS",
+ "label": "Intervalle de mise à jour GPS"
+ },
+ "positionFlags": {
+ "description": "Champs optionnels à inclure dans les messages de position. Plus il y en a, plus le message est grand, augmentant le risque de perte.",
+ "label": "Champs de position"
+ },
+ "receivePin": {
+ "description": "Redéfinition de la broche RX du module GPS",
+ "label": "Broche de réception"
+ },
+ "smartPositionEnabled": {
+ "description": "N’envoyer la position qu’en cas de changement significatif",
+ "label": "Activer la position intelligente"
+ },
+ "smartPositionMinDistance": {
+ "description": "Distance minimale (en mètres) à parcourir avant envoi de la nouvelle position",
+ "label": "Distance minimale pour mise à jour"
+ },
+ "smartPositionMinInterval": {
+ "description": "Délai minimal (en secondes) entre deux envois de position",
+ "label": "Intervalle minimal de mise à jour"
+ },
+ "transmitPin": {
+ "description": "Redéfinition de la broche TX du module GPS",
+ "label": "Broche de transmission"
+ },
+ "intervalsSettings": {
+ "description": "Fréquence d’envoi des mises à jour de position",
+ "label": "Intervalles"
+ },
+ "flags": {
+ "placeholder": "Sélectionner les champs de position...",
+ "altitude": "Altitude",
+ "altitudeGeoidalSeparation": "Séparation géoïdale de l’altitude",
+ "altitudeMsl": "Altitude au-dessus du niveau moyen de la mer",
+ "dop": "DOP (Dilution de la précision), PDOP utilisé par défaut",
+ "hdopVdop": "Si DOP est activé, utiliser HDOP / VDOP au lieu de PDOP",
+ "numSatellites": "Nombre de satellites",
+ "sequenceNumber": "Numéro de séquence",
+ "timestamp": "Horodatage",
+ "unset": "Désactivé",
+ "vehicleHeading": "Cap du véhicule",
+ "vehicleSpeed": "Vitesse du véhicule"
+ }
+ },
+ "power": {
+ "adcMultiplierOverride": {
+ "description": "Utilisé pour ajuster la lecture de la tension batterie",
+ "label": "Coefficient de correction ADC"
+ },
+ "ina219Address": {
+ "description": "Adresse du moniteur de batterie INA219",
+ "label": "Adresse INA219"
+ },
+ "lightSleepDuration": {
+ "description": "Durée pendant laquelle l'appareil reste en veille légère",
+ "label": "Durée de veille légère"
+ },
+ "minimumWakeTime": {
+ "description": "Temps minimal pendant lequel l'appareil reste éveillé après réception d’un paquet",
+ "label": "Temps d’éveil minimal"
+ },
+ "noConnectionBluetoothDisabled": {
+ "description": "Si aucune connexion Bluetooth n’est reçue, la radio BLE sera désactivée après ce délai",
+ "label": "Bluetooth désactivé si non connecté"
+ },
+ "powerSavingEnabled": {
+ "description": "À activer si l’appareil est alimenté par une source à faible courant (ex. : panneau solaire)..",
+ "label": "Activer le mode économie d'énergie"
+ },
+ "shutdownOnBatteryDelay": {
+ "description": "Éteindre automatiquement le nœud après ce délai sur batterie, 0 pour indéfini",
+ "label": "Délai d’extinction sur batterie"
+ },
+ "superDeepSleepDuration": {
+ "description": "Durée pendant laquelle l’appareil reste en super veille",
+ "label": "Durée de veille profonde"
+ },
+ "powerConfigSettings": {
+ "description": "Paramètres du module d’alimentation",
+ "label": "Configuration de l'alimentation"
+ },
+ "sleepSettings": {
+ "description": "Paramètres de veille du module d’alimentation",
+ "label": "Paramètres de veille"
+ }
+ },
+ "security": {
+ "description": "Paramètres de configuration de la sécurité",
+ "title": "Paramètres de sécurité",
+ "button_backupKey": "Clé de sauvegarde",
+ "adminChannelEnabled": {
+ "description": "Autoriser le contrôle distant via le canal d’administration hérité non sécurisé",
+ "label": "Autoriser l’administration héritée"
+ },
+ "enableDebugLogApi": {
+ "description": "Afficher en direct les journaux de débogage via le port série, consulter/exporter les journaux sans position via Bluetooth",
+ "label": "Activer l’API des journaux de debug"
+ },
+ "managed": {
+ "description": "Si cette option est activée, les options de configuration de l'appareil ne peuvent être modifiées à distance que par un nœud d'administration distante via des messages d'administration. N'activez cette option que si au moins un nœud d'administration distant approprié a été configuré et que la clé publique est stockée dans l'un des champs ci-dessus.",
+ "label": "Géré"
+ },
+ "privateKey": {
+ "description": "Utilisée pour créer une clé partagée avec un appareil distant",
+ "label": "Clé privée"
+ },
+ "publicKey": {
+ "description": "Envoyée aux autres nœuds pour générer une clé secrète partagée",
+ "label": "Clé publique"
+ },
+ "primaryAdminKey": {
+ "description": "Clé publique principale autorisée à envoyer des messages d’administration",
+ "label": "Clé Admin principale"
+ },
+ "secondaryAdminKey": {
+ "description": "Clé publique secondaire autorisée à envoyer des messages d’administration",
+ "label": "Clé Admin secondaire"
+ },
+ "serialOutputEnabled": {
+ "description": "Console série via l’API de flux",
+ "label": "Sortie série activée"
+ },
+ "tertiaryAdminKey": {
+ "description": "Clé publique tertiaire autorisée à envoyer des messages d’administration",
+ "label": "Clé Admin tertiaire"
+ },
+ "adminSettings": {
+ "description": "Paramètres liés à l’administration",
+ "label": "Paramètres administrateur"
+ },
+ "loggingSettings": {
+ "description": "Paramètres liés aux journaux",
+ "label": "Paramètres de journalisation"
+ }
+ },
+ "user": {
+ "title": "User Settings",
+ "description": "Configure your device name and identity settings",
+ "longName": {
+ "label": "Nom long",
+ "description": "Your full display name (1-40 characters)",
+ "validation": {
+ "min": "Long name must be at least 1 character",
+ "max": "Long name must be at most 40 characters"
+ }
+ },
+ "shortName": {
+ "label": "Nom court",
+ "description": "Your abbreviated name (2-4 characters)",
+ "validation": {
+ "min": "Short name must be at least 2 characters",
+ "max": "Short name must be at most 4 characters"
+ }
+ },
+ "isUnmessageable": {
+ "label": "Non joignable par message",
+ "description": "Used to identify unmonitored or infrastructure nodes so that messaging is not available to nodes that will never respond."
+ },
+ "isLicensed": {
+ "label": "Radioamateur licencié (HAM)",
+ "description": "Enable if you are a licensed amateur radio operator, enabling this option disables encryption and is not compatible with the default Meshtastic network."
+ }
+ }
+}
diff --git a/packages/web/public/i18n/locales/fr-FR/dashboard.json b/packages/web/public/i18n/locales/fr-FR/dashboard.json
index b398ae49..dcda5257 100644
--- a/packages/web/public/i18n/locales/fr-FR/dashboard.json
+++ b/packages/web/public/i18n/locales/fr-FR/dashboard.json
@@ -1,12 +1,12 @@
{
- "dashboard": {
- "title": "Appareils connectés",
- "description": "Gérez vos périphériques Meshtastic connectés.",
- "connectionType_ble": "BLE",
- "connectionType_serial": "Série",
- "connectionType_network": "Réseau",
- "noDevicesTitle": "Aucun appareil connecté",
- "noDevicesDescription": "Connectez un nouvel appareil pour commencer.",
- "button_newConnection": "Nouvelle connexion"
- }
+ "dashboard": {
+ "title": "Appareils connectés",
+ "description": "Gérez vos périphériques Meshtastic connectés.",
+ "connectionType_ble": "BLE",
+ "connectionType_serial": "Série",
+ "connectionType_network": "Réseau",
+ "noDevicesTitle": "Aucun appareil connecté",
+ "noDevicesDescription": "Connectez un nouvel appareil pour commencer.",
+ "button_newConnection": "Nouvelle connexion"
+ }
}
diff --git a/packages/web/public/i18n/locales/fr-FR/dialog.json b/packages/web/public/i18n/locales/fr-FR/dialog.json
index 3d795cf2..2301e7b9 100644
--- a/packages/web/public/i18n/locales/fr-FR/dialog.json
+++ b/packages/web/public/i18n/locales/fr-FR/dialog.json
@@ -1,193 +1,221 @@
{
- "deleteMessages": {
- "description": "Cette action effacera tout l’historique des messages. Cette opération est irréversible. Voulez-vous vraiment continuer ?",
- "title": "Supprimer tous les messages"
- },
- "deviceName": {
- "description": "L’appareil redémarrera une fois la configuration enregistrée.",
- "longName": "Nom long",
- "shortName": "Nom court",
- "title": "Changer le nom de l’appareil",
- "validation": {
- "longNameMax": "Le nom long ne doit pas contenir plus de 40 caractères",
- "shortNameMax": "Le nom court ne doit pas contenir plus de 4 caractères",
- "longNameMin": "Le nom long doit contenir au moins 1 caractère",
- "shortNameMin": "Le nom court doit contenir au moins 1 caractère"
- }
- },
- "import": {
- "description": "La configuration LoRa actuelle sera écrasée.",
- "error": {
- "invalidUrl": "URL Meshtastic invalide"
- },
- "channelPrefix": "Canal: ",
- "channelSetUrl": "URL du set de canaux ou du QR code",
- "channels": "Canaux:",
- "usePreset": "Utiliser un préréglage?",
- "title": "Importer un ensemble de canaux"
- },
- "locationResponse": {
- "title": "Position : {{identifier}}",
- "altitude": "Altitude: ",
- "coordinates": "Coordonnées : ",
- "noCoordinates": "Pas de coordonnées"
- },
- "pkiRegenerateDialog": {
- "title": "Régénérer la clé pré-partagée ?",
- "description": "Êtes-vous sûr de vouloir régénérer la clé pré-partagée ?",
- "regenerate": "Régénérer"
- },
- "newDeviceDialog": {
- "title": "Connecter un nouvel appareil",
- "https": "https",
- "http": "http",
- "tabHttp": "HTTP",
- "tabBluetooth": "Bluetooth",
- "tabSerial": "Série",
- "useHttps": "Utiliser HTTPS",
- "connecting": "Connexion...",
- "connect": "Connecter",
- "connectionFailedAlert": {
- "title": "Échec de la connexion",
- "descriptionPrefix": "Vous ne pouvez pas connecter l'appareil. ",
- "httpsHint": "Si vous utilisez HTTPS, vous devrez peut-être accepter un certificat auto-signé. ",
- "openLinkPrefix": "Veuillez ouvrir ",
- "openLinkSuffix": " dans un nouvel onglet",
- "acceptTlsWarningSuffix": ", acceptez les avertissements TLS si vous y êtes invité, puis réessayez",
- "learnMoreLink": "En savoir plus"
- },
- "httpConnection": {
- "label": "Adresse IP / nom d'hôte",
- "placeholder": "000.000.000.000 / meshtastic.local"
- },
- "serialConnection": {
- "noDevicesPaired": "Aucun appareil appairé pour l’instant.",
- "newDeviceButton": "Nouvel appareil",
- "deviceIdentifier": "# {{index}} - {{vendorId}} - {{productId}}"
- },
- "bluetoothConnection": {
- "noDevicesPaired": "Aucun appareil appairé pour l’instant.",
- "newDeviceButton": "Nouvel appareil",
- "connectionFailed": "Échec de la connexion",
- "deviceDisconnected": "Périphérique déconnecté",
- "unknownDevice": "Périphérique inconnu",
- "errorLoadingDevices": "Erreur lors du chargement des périphériques",
- "unknownErrorLoadingDevices": "Erreur inconnue lors du chargement des périphériques"
- },
- "validation": {
- "requiresWebBluetooth": "Ce type de connexion nécessite <0>Web Bluetooth0>. Veuillez utiliser un navigateur compatible, comme Chrome ou Edge.<0>",
- "requiresWebSerial": "Ce type de connexion nécessite <0>Web Serial0>. Veuillez utiliser un navigateur compatible, comme Chrome ou Edge.",
- "requiresSecureContext": "Cette application nécessite un <0>contexte sécurisé0>. Veuillez vous connecter via HTTPS ou localhost.",
- "additionallyRequiresSecureContext": "Elle nécessite également un <0>contexte sécurisé0>. Veuillez vous connecter via HTTPS ou localhost."
- }
- },
- "nodeDetails": {
- "message": "Message",
- "requestPosition": "Demander la position",
- "traceRoute": "Tracer la route",
- "airTxUtilization": "Utilisation TX sur l’air",
- "allRawMetrics": "Toutes les métriques brutes :",
- "batteryLevel": "Niveau de batterie",
- "channelUtilization": "Utilisation du canal",
- "details": "Détails :",
- "deviceMetrics": "Métriques de l’appareil :",
- "hardware": "Matériel : ",
- "lastHeard": "Dernière écoute: ",
- "nodeHexPrefix": "Hex du nœud: ",
- "nodeNumber": "Numéro de nœud: ",
- "position": "Position:",
- "role": "Rôle: ",
- "uptime": "Temps de fonctionnement :",
- "voltage": "Tension",
- "title": "Détails du nœud pour {{identifier}}",
- "ignoreNode": "Ignorer le nœud",
- "removeNode": "Supprimer le nœud",
- "unignoreNode": "Ne plus ignorer le nœud",
- "security": "Sécurité:",
- "publicKey": "Clé publique: ",
- "messageable": "Messageable ",
- "KeyManuallyVerifiedTrue": "La clé publique a été vérifiée manuellement",
- "KeyManuallyVerifiedFalse": "La clé publique n'est pas vérifiée manuellement"
- },
- "pkiBackup": {
- "loseKeysWarning": "Si vous perdez vos clés, vous devrez réinitialiser votre appareil.",
- "secureBackup": "Il est important de sauvegarder vos clés publique et privée, et de stocker cette sauvegarde en lieu sûr !",
- "footer": "=== FIN DES CLÉS ===",
- "header": "=== CLÉS MESHTASTIC POUR {{longName}} ({{shortName}}) ===",
- "privateKey": "Clé privée :",
- "publicKey": "Clé publique :",
- "fileName": "meshtastic_cles_{{longName}}_{{shortName}}.txt",
- "title": "Sauvegarder les clés"
- },
- "pkiBackupReminder": {
- "description": "Nous vous recommandons de sauvegarder régulièrement vos clés. Souhaitez-vous effectuer une sauvegarde maintenant ?",
- "title": "Rappel de sauvegarde",
- "remindLaterPrefix": "Me le rappeler dans",
- "remindNever": "Ne plus me le rappeler",
- "backupNow": "Sauvegarder maintenant"
- },
- "pkiRegenerate": {
- "description": "Êtes-vous sûr de vouloir régénérer la paire de clés ?",
- "title": "Régénérer la paire de clés"
- },
- "qr": {
- "addChannels": "Ajouter des canaux",
- "replaceChannels": "Remplacer les canaux",
- "description": "La configuration LoRa actuelle sera également partagée.",
- "sharableUrl": "URL partageable",
- "title": "Générer un QR Code"
- },
- "reboot": {
- "title": "Redémarrer l'appareil",
- "description": "Redémarrez maintenant ou programmez un redémarrage du nœud connecté. Vous pouvez éventuellement choisir de redémarrer en mode OTA (Over-the-Air).",
- "ota": "Redémarrer en mode OTA",
- "enterDelay": "Entrez le délai",
- "scheduled": "Le redémarrage a été programmé",
- "schedule": "Programmer le redémarrage",
- "now": "Redémarrer maintenant",
- "cancel": "Annuler le redémarrage planifié"
- },
- "refreshKeys": {
- "description": {
- "acceptNewKeys": "Cela supprimera le nœud de l’appareil et demandera de nouvelles clés.",
- "keyMismatchReasonSuffix": ". Cela est dû au fait que la clé publique actuelle du nœud distant ne correspond pas à celle précédemment enregistrée pour ce nœud.",
- "unableToSendDmPrefix": "Accepter les nouvelles clés"
- },
- "acceptNewKeys": "Accepter les nouvelles clés",
- "title": "Clés non concordantes – {{identifier}}"
- },
- "removeNode": {
- "description": "Êtes-vous sûr de vouloir supprimer ce nœud ?",
- "title": "Supprimer le nœud ?"
- },
- "shutdown": {
- "title": "Programmer un arrêt",
- "description": "Éteindre le nœud connecté après x minutes."
- },
- "traceRoute": {
- "routeToDestination": "Route vers la destination :",
- "routeBack": "Route de retour :"
- },
- "tracerouteResponse": {
- "title": "Traceroute : {{identifier}}"
- },
- "unsafeRoles": {
- "confirmUnderstanding": "Oui, je sais ce que je fais",
- "conjunction": " et l’article de blog sur le ",
- "postamble": " et je comprends les implications du changement de rôle.",
- "preamble": "J'ai lu les",
- "choosingRightDeviceRole": "Choisir le rôle d’appareil approprié",
- "deviceRoleDocumentation": "Documentation sur les rôles d’appareil",
- "title": "Êtes-vous sûr ?"
- },
- "managedMode": {
- "confirmUnderstanding": "Oui, je sais ce que je fais",
- "title": "Êtes-vous sûr ?",
- "description": "Activer le mode géré empêche les applications clientes (y compris l’interface web) de modifier la configuration d’une radio. Une fois activé, la configuration ne peut être changée que via des messages d’administration à distance. Ce paramètre n’est pas nécessaire pour l’administration distante des nœuds."
- },
- "clientNotification": {
- "title": "Notification client",
- "TraceRoute can only be sent once every 30 seconds": "TraceRoute ne peut être envoyée qu'une fois toutes les 30 secondes",
- "Compromised keys were detected and regenerated.": "Les clés compromises ont été détectées et régénérées."
- }
+ "deleteMessages": {
+ "description": "Cette action effacera tout l’historique des messages. Cette opération est irréversible. Voulez-vous vraiment continuer ?",
+ "title": "Supprimer tous les messages"
+ },
+ "deviceName": {
+ "description": "L’appareil redémarrera une fois la configuration enregistrée.",
+ "longName": "Nom long",
+ "shortName": "Nom court",
+ "title": "Changer le nom de l’appareil",
+ "validation": {
+ "longNameMax": "Le nom long ne doit pas contenir plus de 40 caractères",
+ "shortNameMax": "Le nom court ne doit pas contenir plus de 4 caractères",
+ "longNameMin": "Le nom long doit contenir au moins 1 caractère",
+ "shortNameMin": "Le nom court doit contenir au moins 1 caractère"
+ }
+ },
+ "import": {
+ "description": "La configuration LoRa actuelle sera écrasée.",
+ "error": {
+ "invalidUrl": "URL Meshtastic invalide"
+ },
+ "channelPrefix": "Canal: ",
+ "primary": "Primary ",
+ "doNotImport": "No not import",
+ "channelName": "Nom",
+ "channelSlot": "Emplacement",
+ "channelSetUrl": "URL du set de canaux ou du QR code",
+ "useLoraConfig": "Import LoRa Config",
+ "presetDescription": "The current LoRa Config will be replaced.",
+ "title": "Importer un ensemble de canaux"
+ },
+ "locationResponse": {
+ "title": "Position : {{identifier}}",
+ "altitude": "Altitude: ",
+ "coordinates": "Coordonnées : ",
+ "noCoordinates": "Pas de coordonnées"
+ },
+ "pkiRegenerateDialog": {
+ "title": "Régénérer la clé pré-partagée ?",
+ "description": "Êtes-vous sûr de vouloir régénérer la clé pré-partagée ?",
+ "regenerate": "Régénérer"
+ },
+ "newDeviceDialog": {
+ "title": "Connecter un nouvel appareil",
+ "https": "https",
+ "http": "http",
+ "tabHttp": "HTTP",
+ "tabBluetooth": "Bluetooth",
+ "tabSerial": "Série",
+ "useHttps": "Utiliser HTTPS",
+ "connecting": "Connexion...",
+ "connect": "Connecter",
+ "connectionFailedAlert": {
+ "title": "Échec de la connexion",
+ "descriptionPrefix": "Vous ne pouvez pas connecter l'appareil. ",
+ "httpsHint": "Si vous utilisez HTTPS, vous devrez peut-être accepter un certificat auto-signé. ",
+ "openLinkPrefix": "Veuillez ouvrir ",
+ "openLinkSuffix": " dans un nouvel onglet",
+ "acceptTlsWarningSuffix": ", acceptez les avertissements TLS si vous y êtes invité, puis réessayez",
+ "learnMoreLink": "En savoir plus"
+ },
+ "httpConnection": {
+ "label": "Adresse IP / nom d'hôte",
+ "placeholder": "000.000.000.000 / meshtastic.local"
+ },
+ "serialConnection": {
+ "noDevicesPaired": "Aucun appareil appairé pour l’instant.",
+ "newDeviceButton": "Nouvel appareil",
+ "deviceIdentifier": "# {{index}} - {{vendorId}} - {{productId}}"
+ },
+ "bluetoothConnection": {
+ "noDevicesPaired": "Aucun appareil appairé pour l’instant.",
+ "newDeviceButton": "Nouvel appareil",
+ "connectionFailed": "Échec de la connexion",
+ "deviceDisconnected": "Périphérique déconnecté",
+ "unknownDevice": "Périphérique inconnu",
+ "errorLoadingDevices": "Erreur lors du chargement des périphériques",
+ "unknownErrorLoadingDevices": "Erreur inconnue lors du chargement des périphériques"
+ },
+ "validation": {
+ "requiresWebBluetooth": "Ce type de connexion nécessite <0>Web Bluetooth0>. Veuillez utiliser un navigateur compatible, comme Chrome ou Edge.<0>",
+ "requiresWebSerial": "Ce type de connexion nécessite <0>Web Serial0>. Veuillez utiliser un navigateur compatible, comme Chrome ou Edge.",
+ "requiresSecureContext": "Cette application nécessite un <0>contexte sécurisé0>. Veuillez vous connecter via HTTPS ou localhost.",
+ "additionallyRequiresSecureContext": "Elle nécessite également un <0>contexte sécurisé0>. Veuillez vous connecter via HTTPS ou localhost."
+ }
+ },
+ "nodeDetails": {
+ "message": "Message",
+ "requestPosition": "Demander la position",
+ "traceRoute": "Tracer la route",
+ "airTxUtilization": "Utilisation TX sur l’air",
+ "allRawMetrics": "Toutes les métriques brutes :",
+ "batteryLevel": "Niveau de batterie",
+ "channelUtilization": "Utilisation du canal",
+ "details": "Détails :",
+ "deviceMetrics": "Métriques de l’appareil :",
+ "hardware": "Matériel : ",
+ "lastHeard": "Dernière écoute: ",
+ "nodeHexPrefix": "Hex du nœud: ",
+ "nodeNumber": "Numéro de nœud: ",
+ "position": "Position:",
+ "role": "Rôle: ",
+ "uptime": "Temps de fonctionnement :",
+ "voltage": "Tension",
+ "title": "Détails du nœud pour {{identifier}}",
+ "ignoreNode": "Ignorer le nœud",
+ "removeNode": "Supprimer le nœud",
+ "unignoreNode": "Ne plus ignorer le nœud",
+ "security": "Sécurité:",
+ "publicKey": "Clé publique: ",
+ "messageable": "Messageable ",
+ "KeyManuallyVerifiedTrue": "La clé publique a été vérifiée manuellement",
+ "KeyManuallyVerifiedFalse": "La clé publique n'est pas vérifiée manuellement"
+ },
+ "pkiBackup": {
+ "loseKeysWarning": "Si vous perdez vos clés, vous devrez réinitialiser votre appareil.",
+ "secureBackup": "Il est important de sauvegarder vos clés publique et privée, et de stocker cette sauvegarde en lieu sûr !",
+ "footer": "=== FIN DES CLÉS ===",
+ "header": "=== CLÉS MESHTASTIC POUR {{longName}} ({{shortName}}) ===",
+ "privateKey": "Clé privée :",
+ "publicKey": "Clé publique :",
+ "fileName": "meshtastic_cles_{{longName}}_{{shortName}}.txt",
+ "title": "Sauvegarder les clés"
+ },
+ "pkiBackupReminder": {
+ "description": "Nous vous recommandons de sauvegarder régulièrement vos clés. Souhaitez-vous effectuer une sauvegarde maintenant ?",
+ "title": "Rappel de sauvegarde",
+ "remindLaterPrefix": "Me le rappeler dans",
+ "remindNever": "Ne plus me le rappeler",
+ "backupNow": "Sauvegarder maintenant"
+ },
+ "pkiRegenerate": {
+ "description": "Êtes-vous sûr de vouloir régénérer la paire de clés ?",
+ "title": "Régénérer la paire de clés"
+ },
+ "qr": {
+ "addChannels": "Ajouter des canaux",
+ "replaceChannels": "Remplacer les canaux",
+ "description": "La configuration LoRa actuelle sera également partagée.",
+ "sharableUrl": "URL partageable",
+ "title": "Générer un QR Code"
+ },
+ "reboot": {
+ "title": "Redémarrer l'appareil",
+ "description": "Redémarrez maintenant ou programmez un redémarrage du nœud connecté. Vous pouvez éventuellement choisir de redémarrer en mode OTA (Over-the-Air).",
+ "ota": "Redémarrer en mode OTA",
+ "enterDelay": "Entrez le délai",
+ "scheduled": "Le redémarrage a été programmé",
+ "schedule": "Programmer le redémarrage",
+ "now": "Redémarrer maintenant",
+ "cancel": "Annuler le redémarrage planifié"
+ },
+ "refreshKeys": {
+ "description": {
+ "acceptNewKeys": "Cela supprimera le nœud de l’appareil et demandera de nouvelles clés.",
+ "keyMismatchReasonSuffix": ". Cela est dû au fait que la clé publique actuelle du nœud distant ne correspond pas à celle précédemment enregistrée pour ce nœud.",
+ "unableToSendDmPrefix": "Accepter les nouvelles clés"
+ },
+ "acceptNewKeys": "Accepter les nouvelles clés",
+ "title": "Clés non concordantes – {{identifier}}"
+ },
+ "removeNode": {
+ "description": "Êtes-vous sûr de vouloir supprimer ce nœud ?",
+ "title": "Supprimer le nœud ?"
+ },
+ "shutdown": {
+ "title": "Programmer un arrêt",
+ "description": "Éteindre le nœud connecté après x minutes."
+ },
+ "traceRoute": {
+ "routeToDestination": "Route vers la destination :",
+ "routeBack": "Route de retour :"
+ },
+ "tracerouteResponse": {
+ "title": "Traceroute : {{identifier}}"
+ },
+ "unsafeRoles": {
+ "confirmUnderstanding": "Oui, je sais ce que je fais",
+ "conjunction": " et l’article de blog sur le ",
+ "postamble": " et je comprends les implications du changement de rôle.",
+ "preamble": "J'ai lu les",
+ "choosingRightDeviceRole": "Choisir le rôle d’appareil approprié",
+ "deviceRoleDocumentation": "Documentation sur les rôles d’appareil",
+ "title": "Êtes-vous sûr ?"
+ },
+ "managedMode": {
+ "confirmUnderstanding": "Oui, je sais ce que je fais",
+ "title": "Êtes-vous sûr ?",
+ "description": "Activer le mode géré empêche les applications clientes (y compris l’interface web) de modifier la configuration d’une radio. Une fois activé, la configuration ne peut être changée que via des messages d’administration à distance. Ce paramètre n’est pas nécessaire pour l’administration distante des nœuds."
+ },
+ "clientNotification": {
+ "title": "Notification client",
+ "TraceRoute can only be sent once every 30 seconds": "TraceRoute ne peut être envoyée qu'une fois toutes les 30 secondes",
+ "Compromised keys were detected and regenerated.": "Les clés compromises ont été détectées et régénérées."
+ },
+ "resetNodeDb": {
+ "title": "Reset Node Database",
+ "description": "This will clear all nodes from the connected device's node database and clear all message history in the client. This cannot be undone. Are you sure you want to continue?",
+ "confirm": "Reset Node Database",
+ "failedTitle": "There was an error resetting the Node DB. Please try again."
+ },
+ "clearAllStores": {
+ "title": "Clear All Local Storage",
+ "description": "This will clear all locally stored data, including message history and node databases for all previously connected devices. This will require you to reconnect to your node once complete and cannot be undone. Are you sure you want to continue?",
+ "confirm": "Clear all local storage",
+ "failedTitle": "There was an error clearing local storage. Please try again."
+ },
+ "factoryResetDevice": {
+ "title": "Réinitialisation d'usine de l'appareil",
+ "description": "This will factory reset the connected device, erasing all configurations and data on the device as well as all nodes and messages saved in the client. This cannot be undone. Are you sure you want to continue?",
+ "confirm": "Réinitialisation d'usine de l'appareil",
+ "failedTitle": "There was an error performing the factory reset. Please try again."
+ },
+ "factoryResetConfig": {
+ "title": "Réinitialisation d'usine de la config",
+ "description": "This will factory reset the configuration on the connected device, erasing all configurations on the device. This cannot be undone. Are you sure you want to continue?",
+ "confirm": "Réinitialisation d'usine de la config",
+ "failedTitle": "There was an error performing the factory reset. Please try again."
+ }
}
diff --git a/packages/web/public/i18n/locales/fr-FR/map.json b/packages/web/public/i18n/locales/fr-FR/map.json
new file mode 100644
index 00000000..427bff1e
--- /dev/null
+++ b/packages/web/public/i18n/locales/fr-FR/map.json
@@ -0,0 +1,38 @@
+{
+ "maplibre": {
+ "GeolocateControl.FindMyLocation": "Find my location",
+ "NavigationControl.ZoomIn": "Zoom in",
+ "NavigationControl.ZoomOut": "Zoom out",
+ "CooperativeGesturesHandler.WindowsHelpText": "Use Ctrl + scroll to zoom the map",
+ "CooperativeGesturesHandler.MacHelpText": "Use ⌘ + scroll to zoom the map",
+ "CooperativeGesturesHandler.MobileHelpText": "Use two fingers to move the map"
+ },
+ "layerTool": {
+ "nodeMarkers": "Show nodes",
+ "directNeighbors": "Show direct connections",
+ "remoteNeighbors": "Show remote connections",
+ "positionPrecision": "Show position precision",
+ "traceroutes": "Show traceroutes",
+ "waypoints": "Show waypoints"
+ },
+ "mapMenu": {
+ "locateAria": "Locate my node",
+ "layersAria": "Change map style"
+ },
+ "waypointDetail": {
+ "edit": "Modifier",
+ "description": "Description:",
+ "createdBy": "Edited by:",
+ "createdDate": "Created:",
+ "updated": "Updated:",
+ "expires": "Expires:",
+ "distance": "Distance:",
+ "bearing": "Absolute bearing:",
+ "lockedTo": "Locked by:",
+ "latitude": "Latitude:",
+ "longitude": "Longitude:"
+ },
+ "myNode": {
+ "tooltip": "This device"
+ }
+}
diff --git a/packages/web/public/i18n/locales/fr-FR/messages.json b/packages/web/public/i18n/locales/fr-FR/messages.json
index 73710fce..4071ee4e 100644
--- a/packages/web/public/i18n/locales/fr-FR/messages.json
+++ b/packages/web/public/i18n/locales/fr-FR/messages.json
@@ -1,39 +1,39 @@
{
- "page": {
- "title": "Messages: {{chatName}}",
- "placeholder": "Saisir message"
- },
- "emptyState": {
- "title": "Sélectionnez un chat",
- "text": "Aucun message pour le moment."
- },
- "selectChatPrompt": {
- "text": "Sélectionnez un canal ou un nœud pour commencer à envoyer des messages."
- },
- "sendMessage": {
- "placeholder": "Entrez votre message ici...",
- "sendButton": "Envoyer"
- },
- "actionsMenu": {
- "addReactionLabel": "Ajouter une réaction",
- "replyLabel": "Répondre"
- },
- "deliveryStatus": {
- "delivered": {
- "label": "Message délivré",
- "displayText": "Message délivré"
- },
- "failed": {
- "label": "La transmission du message a échoué",
- "displayText": "Échec de l'envoi"
- },
- "unknown": {
- "label": "Statut du message inconnu",
- "displayText": "Statut inconnu"
- },
- "waiting": {
- "label": "Envoi du message",
- "displayText": "En attente de réception"
- }
- }
+ "page": {
+ "title": "Messages: {{chatName}}",
+ "placeholder": "Saisir message"
+ },
+ "emptyState": {
+ "title": "Sélectionnez un chat",
+ "text": "Aucun message pour le moment."
+ },
+ "selectChatPrompt": {
+ "text": "Sélectionnez un canal ou un nœud pour commencer à envoyer des messages."
+ },
+ "sendMessage": {
+ "placeholder": "Entrez votre message ici...",
+ "sendButton": "Envoyer"
+ },
+ "actionsMenu": {
+ "addReactionLabel": "Ajouter une réaction",
+ "replyLabel": "Répondre"
+ },
+ "deliveryStatus": {
+ "delivered": {
+ "label": "Message délivré",
+ "displayText": "Message délivré"
+ },
+ "failed": {
+ "label": "La transmission du message a échoué",
+ "displayText": "Échec de l'envoi"
+ },
+ "unknown": {
+ "label": "Statut du message inconnu",
+ "displayText": "Statut inconnu"
+ },
+ "waiting": {
+ "label": "Envoi du message",
+ "displayText": "En attente de réception"
+ }
+ }
}
diff --git a/packages/web/public/i18n/locales/fr-FR/moduleConfig.json b/packages/web/public/i18n/locales/fr-FR/moduleConfig.json
index 4e265b5a..e3ac5e4c 100644
--- a/packages/web/public/i18n/locales/fr-FR/moduleConfig.json
+++ b/packages/web/public/i18n/locales/fr-FR/moduleConfig.json
@@ -1,448 +1,448 @@
{
- "page": {
- "tabAmbientLighting": "Lumière ambiante",
- "tabAudio": "Audio",
- "tabCannedMessage": "Message pré-enregistré",
- "tabDetectionSensor": "Capteur de détection",
- "tabExternalNotification": "Notification externe",
- "tabMqtt": "MQTT",
- "tabNeighborInfo": "Informations sur les voisins",
- "tabPaxcounter": "Paxcounter",
- "tabRangeTest": "Test de portée",
- "tabSerial": "Série",
- "tabStoreAndForward": "Stocker & Relayer",
- "tabTelemetry": "Télémetrie (Capteurs)"
- },
- "ambientLighting": {
- "title": "Paramètres de l’éclairage ambiant",
- "description": "Paramètres du module d’éclairage ambiant",
- "ledState": {
- "label": "État des LED",
- "description": "Définit les LED sur allumées ou éteintes"
- },
- "current": {
- "label": "Actif",
- "description": "Définit le courant de sortie des LED. Par défaut : 10"
- },
- "red": {
- "label": "Rouge",
- "description": "Définit le niveau de LED rouge (valeurs 0–255)"
- },
- "green": {
- "label": "Vert",
- "description": "Définit le niveau de LED vert (valeurs 0–255)"
- },
- "blue": {
- "label": "Bleu",
- "description": "Définit le niveau de LED bleu (valeurs 0–255)"
- }
- },
- "audio": {
- "title": "Paramètres audio",
- "description": "Paramètres du module audio",
- "codec2Enabled": {
- "label": "Codec 2 activé",
- "description": "Active l'encodage audio Codec 2"
- },
- "pttPin": {
- "label": "Broche PTT",
- "description": "Broche GPIO utilisée pour le PTT"
- },
- "bitrate": {
- "label": "Débit",
- "description": "Débit utilisé pour l’encodage audio"
- },
- "i2sWs": {
- "label": "i2S WS",
- "description": "Broche GPIO utilisée pour i2S WS"
- },
- "i2sSd": {
- "label": "i2S SD",
- "description": "Broche GPIO utilisée pour i2S SD"
- },
- "i2sDin": {
- "label": "i2S DIN",
- "description": "Broche GPIO utilisée pour i2S DIN"
- },
- "i2sSck": {
- "label": "i2S SCK",
- "description": "Broche GPIO utilisée pour i2S SCK"
- }
- },
- "cannedMessage": {
- "title": "Paramètres des messages pré-enregistrés",
- "description": "Paramètres du module de messages pré-enregistrés\n",
- "moduleEnabled": {
- "label": "Module activé",
- "description": "Active les messages pré-enregistrés"
- },
- "rotary1Enabled": {
- "label": "Encodeur rotatif #1 activé",
- "description": "Active l’encodeur rotatif"
- },
- "inputbrokerPinA": {
- "label": "Broche A de l’encodeur",
- "description": "Valeur GPIO (1-39) pour le port A de l’encodeur"
- },
- "inputbrokerPinB": {
- "label": "Broche B de l’encodeur",
- "description": "Valeur GPIO (1-39) pour le port B de l’encodeur"
- },
- "inputbrokerPinPress": {
- "label": "Broche de pression de l’encodeur",
- "description": "Valeur GPIO (1-39) pour la pression sur l’encodeur"
- },
- "inputbrokerEventCw": {
- "label": "Événement horaire",
- "description": "Sélectionner l’événement d’entrée"
- },
- "inputbrokerEventCcw": {
- "label": "Événement antihoraire",
- "description": "Sélectionner l’événement d’entrée"
- },
- "inputbrokerEventPress": {
- "label": "Événement pression",
- "description": "Sélectionner l’événement d’entrée"
- },
- "updown1Enabled": {
- "label": "Encodeur haut/bas activé",
- "description": "Active l’encodeur haut/bas"
- },
- "allowInputSource": {
- "label": "Autoriser la source d’entrée",
- "description": "Sélectionner parmi : '_any', 'rotEnc1', 'upDownEnc1', 'cardkb'"
- },
- "sendBell": {
- "label": "Envoyer un bip",
- "description": "Envoie un caractère de cloche avec chaque message"
- }
- },
- "detectionSensor": {
- "title": "Paramètres du capteur de détection",
- "description": "Paramètres du module de capteur de détection",
- "enabled": {
- "label": "Activé",
- "description": "Activer ou désactiver le module de détection"
- },
- "minimumBroadcastSecs": {
- "label": "Intervalle minimum d’émission (s)",
- "description": "L'intervalle en secondes de la fréquence à laquelle nous pouvons envoyer un message au maillage quand un changement d'état est détecté"
- },
- "stateBroadcastSecs": {
- "label": "Intervalle d’état (s)",
- "description": "Temps entre deux messages d’état envoyés, même sans changement"
- },
- "sendBell": {
- "label": "Envoyer un bip",
- "description": "Envoyer un caractère ASCII 'bell' avec le message d’alerte"
- },
- "name": {
- "label": "Nom convivial",
- "description": "Utilisé pour formater le message envoyé au réseau, max. 20 caractères"
- },
- "monitorPin": {
- "label": "Broche de monitoring",
- "description": "Broche GPIO pour surveiller les changements d'état"
- },
- "detectionTriggerType": {
- "label": "Type du déclencheur de détection",
- "description": "Le type d'événement déclencheur à utiliser"
- },
- "usePullup": {
- "label": "Utiliser Pullup",
- "description": "Utiliser ou non le mode INPUT_PULLUP pour la broche GPIO"
- }
- },
- "externalNotification": {
- "title": "Paramètres de la notification extérieure",
- "description": "Configurer le module de notification externe",
- "enabled": {
- "label": "Module activé",
- "description": "Activer les notifications externes"
- },
- "outputMs": {
- "label": "Sortie MS",
- "description": "Sortie MS"
- },
- "output": {
- "label": "Sortie",
- "description": "Sortie"
- },
- "outputVibra": {
- "label": "Sortie vibreur",
- "description": "Sortie vibreur"
- },
- "outputBuzzer": {
- "label": "Sortie buzzer",
- "description": "Sortie buzzer"
- },
- "active": {
- "label": "Actif",
- "description": "Actif"
- },
- "alertMessage": {
- "label": "Message d'alerte",
- "description": "Message d'alerte"
- },
- "alertMessageVibra": {
- "label": "Message d'alerte vibreur",
- "description": "Message d'alerte vibreur"
- },
- "alertMessageBuzzer": {
- "label": "Message d'alerte buzzer",
- "description": "Message d'alerte buzzer"
- },
- "alertBell": {
- "label": "Bip d'alerte",
- "description": "Une alerte doit-elle être déclenchée lors de la réception d'un bip entrant ?"
- },
- "alertBellVibra": {
- "label": "Bip d'alerte vibreur",
- "description": "Bip d'alerte vibreur"
- },
- "alertBellBuzzer": {
- "label": "Bip d'alerte buzzer",
- "description": "Bip d'alerte buzzer"
- },
- "usePwm": {
- "label": "Utiliser PWM",
- "description": "Utiliser PWM"
- },
- "nagTimeout": {
- "label": "Délai d'expiration du message",
- "description": "Délai d'expiration du message"
- },
- "useI2sAsBuzzer": {
- "label": "Utiliser la broche I2S comme Buzzer",
- "description": "Désigner la broche I2S comme sortie Buzzer"
- }
- },
- "mqtt": {
- "title": "Paramètres MQTT",
- "description": "Paramètres du module MQTT",
- "enabled": {
- "label": "Activé",
- "description": "Activer ou désactiver MQTT"
- },
- "address": {
- "label": "Adresse du serveur MQTT",
- "description": "Adresse du serveur MQTT à utiliser pour les serveurs par défaut/personnalisés"
- },
- "username": {
- "label": "Nom d'utilisateur MQTT",
- "description": "Nom d'utilisateur MQTT à utiliser pour les serveurs par défaut/personnalisés"
- },
- "password": {
- "label": "Mot de passe MQTT",
- "description": "Mot de passe MQTT à utiliser pour les serveurs par défaut/personnalisés"
- },
- "encryptionEnabled": {
- "label": "Chiffrement activé",
- "description": "Activer ou désactiver le chiffrement MQTT. Remarque : Tous les messages sont envoyés au broker MQTT non chiffré si cette option n'est pas activée, même si vos canaux uplink ont des clés de chiffrement. Cela inclut les données de position."
- },
- "jsonEnabled": {
- "label": "JSON activé",
- "description": "S'il faut envoyer/consommer des paquets JSON sur MQTT"
- },
- "tlsEnabled": {
- "label": "TLS activé",
- "description": "Activer ou désactiver TLS"
- },
- "root": {
- "label": "Sujet principal",
- "description": "Sujet racine MQTT à utiliser pour les serveurs par défaut/personnalisés"
- },
- "proxyToClientEnabled": {
- "label": "Proxy client MQTT activé",
- "description": "Utilise la connexion réseau pour transmettre les messages MQTT au client."
- },
- "mapReportingEnabled": {
- "label": "Rapport cartographique activé",
- "description": "Votre nœud enverra périodiquement un paquet de rapport de position non chiffré au serveur MQTT configuré. Ce paquet inclut l'identifiant, les noms long et court, la position approximative, le modèle matériel, le rôle, la version du micrologiciel, la région LoRa, le préréglage du modem et le nom du canal principal."
- },
- "mapReportSettings": {
- "publishIntervalSecs": {
- "label": "Intervalles de publication du rapport de carte",
- "description": "Intervalle en secondes pour publier les rapports de carte"
- },
- "positionPrecision": {
- "label": "Position approximative",
- "description": "La position partagée sera précise dans cette distance",
- "options": {
- "metric_km23": "A moins de 23 km",
- "metric_km12": "A moins de 12 km",
- "metric_km5_8": "A moins de 5.8 km",
- "metric_km2_9": "A moins de 2.9 km",
- "metric_km1_5": "A moins de 1.5 km",
- "metric_m700": "A moins de 700 m",
- "metric_m350": "A moins de 350 m",
- "metric_m200": "À moins de 200 m",
- "metric_m90": "A moins de 90 m",
- "metric_m50": "A moins de 50 m",
- "imperial_mi15": "À moins de 15 miles",
- "imperial_mi7_3": "À moins de 7,3 miles",
- "imperial_mi3_6": "À moins de 3,6 miles",
- "imperial_mi1_8": "À moins de 1,8 miles",
- "imperial_mi0_9": "À moins de 0,9 miles",
- "imperial_mi0_5": "À moins de 0,5 miles",
- "imperial_mi0_2": "À moins de 0,2 miles",
- "imperial_ft600": "À moins de 600 pieds",
- "imperial_ft300": "À moins de 300 pieds",
- "imperial_ft150": "À moins de 150 pieds"
- }
- }
- }
- },
- "neighborInfo": {
- "title": "Paramètres des informations du voisinage",
- "description": "Paramètres pour le module informations du voisinage",
- "enabled": {
- "label": "Activé",
- "description": "Activer ou désactiver le module informations du voisinage"
- },
- "updateInterval": {
- "label": "Intervalle de mise à jour",
- "description": "Intervalle en secondes de la fréquence à laquelle nous devrions essayer d'envoyer nos informations de Voisinage au maillage"
- }
- },
- "paxcounter": {
- "title": "Paramètres Paxcounter",
- "description": "Paramètres du module Paxcounter",
- "enabled": {
- "label": "Module activé",
- "description": "Activer Paxcounter"
- },
- "paxcounterUpdateInterval": {
- "label": "Intervalle de mise à jour (secondes)",
- "description": "Durée d'attente entre l'envoi de paquets paxcounter"
- },
- "wifiThreshold": {
- "label": "Seuil RSSI WiFi",
- "description": "A quel niveau de WiFi RSSI devrait augmenter le compteur. Par défaut, -80."
- },
- "bleThreshold": {
- "label": "Seuil RSSI BLE",
- "description": "A quel niveau de BLE RSSI devrait augmenter le compteur. Par défaut, -80."
- }
- },
- "rangeTest": {
- "title": "Paramètres de test de portée",
- "description": "Paramètres du module de test de portée",
- "enabled": {
- "label": "Module activé",
- "description": "Activer le test de portée"
- },
- "sender": {
- "label": "Intervalle de message",
- "description": "Durée d'attente entre l'envoi de paquets de test"
- },
- "save": {
- "label": "Enregistrer le CSV dans le stockage",
- "description": "ESP32 seulement"
- }
- },
- "serial": {
- "title": "Paramètres série",
- "description": "Paramètres du module série",
- "enabled": {
- "label": "Module activé",
- "description": "Activer la sortie série"
- },
- "echo": {
- "label": "Écho",
- "description": "Tous les paquets que vous envoyez seront renvoyés vers votre appareil"
- },
- "rxd": {
- "label": "Broche de réception",
- "description": "Réglez la broche GPIO sur la broche RXD que vous avez configurée."
- },
- "txd": {
- "label": "Broche de transmission",
- "description": "Réglez la broche GPIO sur la broche TXD que vous avez configurée."
- },
- "baud": {
- "label": "Vitesse en bauds",
- "description": "Vitesse de transmission série"
- },
- "timeout": {
- "label": "Délai d'expiration",
- "description": "Secondes à attendre avant de considérer votre paquet comme \"fini\""
- },
- "mode": {
- "label": "Mode",
- "description": "Sélection de mode"
- },
- "overrideConsoleSerialPort": {
- "label": "Outrepasser le port série de la console",
- "description": "Si vous avez un port série connecté à la console, cela va le remplacer."
- }
- },
- "storeForward": {
- "title": "Paramètres de stockage et transfert",
- "description": "Paramètres du module stockage et transfert",
- "enabled": {
- "label": "Module activé",
- "description": "Activer stockage et transfert"
- },
- "heartbeat": {
- "label": "Pulsations activées",
- "description": "Activer les pulsations stockage et transfert"
- },
- "records": {
- "label": "Nombre d'enregistrements",
- "description": "Nombre d'enregistrements à stocker"
- },
- "historyReturnMax": {
- "label": "Limite d’historique renvoyé",
- "description": "Nombre maximum d'enregistrements à retourner"
- },
- "historyReturnWindow": {
- "label": "Fenêtre de retour d'historique",
- "description": "Retourner les enregistrements de cette fenêtre de temps (minutes)"
- }
- },
- "telemetry": {
- "title": "Paramètres de télémétrie",
- "description": "Paramètres du module télémétrie",
- "deviceUpdateInterval": {
- "label": "Métriques de l’appareil",
- "description": "Intervalle de mise à jour des métriques de l'appareil (secondes)"
- },
- "environmentUpdateInterval": {
- "label": "Intervalle de mise à jour des métriques d'environnement (secondes)",
- "description": ""
- },
- "environmentMeasurementEnabled": {
- "label": "Module activé",
- "description": "Activer la télémétrie d'environnement"
- },
- "environmentScreenEnabled": {
- "label": "Affiché à l'écran",
- "description": "Afficher le module de télémétrie sur OLED"
- },
- "environmentDisplayFahrenheit": {
- "label": "Afficher en Fahrenheit",
- "description": "Afficher la température en Fahrenheit"
- },
- "airQualityEnabled": {
- "label": "Qualité de l'air activée",
- "description": "Activer la télémétrie de qualité de l'air"
- },
- "airQualityInterval": {
- "label": "Intervalle de mise à jour de la qualité de l'air",
- "description": "Fréquence d'envoi des données de qualité de l'air sur le maillage"
- },
- "powerMeasurementEnabled": {
- "label": "Mesure de puissance activée",
- "description": "Activer la télémétrie de mesure d'énergie"
- },
- "powerUpdateInterval": {
- "label": "Intervalle de mise à jour de l'alimentation",
- "description": "Fréquence d'envoi de données d'alimentation sur le maillage"
- },
- "powerScreenEnabled": {
- "label": "Écran d'alimentation activé",
- "description": "Activer l'écran de télémétrie d'alimentation"
- }
- }
+ "page": {
+ "tabAmbientLighting": "Lumière ambiante",
+ "tabAudio": "Audio",
+ "tabCannedMessage": "Message pré-enregistré",
+ "tabDetectionSensor": "Capteur de détection",
+ "tabExternalNotification": "Notification externe",
+ "tabMqtt": "MQTT",
+ "tabNeighborInfo": "Informations sur les voisins",
+ "tabPaxcounter": "Paxcounter",
+ "tabRangeTest": "Test de portée",
+ "tabSerial": "Série",
+ "tabStoreAndForward": "Stocker & Relayer",
+ "tabTelemetry": "Télémetrie (Capteurs)"
+ },
+ "ambientLighting": {
+ "title": "Paramètres de l’éclairage ambiant",
+ "description": "Paramètres du module d’éclairage ambiant",
+ "ledState": {
+ "label": "État des LED",
+ "description": "Définit les LED sur allumées ou éteintes"
+ },
+ "current": {
+ "label": "Actif",
+ "description": "Définit le courant de sortie des LED. Par défaut : 10"
+ },
+ "red": {
+ "label": "Rouge",
+ "description": "Définit le niveau de LED rouge (valeurs 0–255)"
+ },
+ "green": {
+ "label": "Vert",
+ "description": "Définit le niveau de LED vert (valeurs 0–255)"
+ },
+ "blue": {
+ "label": "Bleu",
+ "description": "Définit le niveau de LED bleu (valeurs 0–255)"
+ }
+ },
+ "audio": {
+ "title": "Paramètres audio",
+ "description": "Paramètres du module audio",
+ "codec2Enabled": {
+ "label": "Codec 2 activé",
+ "description": "Active l'encodage audio Codec 2"
+ },
+ "pttPin": {
+ "label": "Broche PTT",
+ "description": "Broche GPIO utilisée pour le PTT"
+ },
+ "bitrate": {
+ "label": "Débit",
+ "description": "Débit utilisé pour l’encodage audio"
+ },
+ "i2sWs": {
+ "label": "i2S WS",
+ "description": "Broche GPIO utilisée pour i2S WS"
+ },
+ "i2sSd": {
+ "label": "i2S SD",
+ "description": "Broche GPIO utilisée pour i2S SD"
+ },
+ "i2sDin": {
+ "label": "i2S DIN",
+ "description": "Broche GPIO utilisée pour i2S DIN"
+ },
+ "i2sSck": {
+ "label": "i2S SCK",
+ "description": "Broche GPIO utilisée pour i2S SCK"
+ }
+ },
+ "cannedMessage": {
+ "title": "Paramètres des messages pré-enregistrés",
+ "description": "Paramètres du module de messages pré-enregistrés\n",
+ "moduleEnabled": {
+ "label": "Module activé",
+ "description": "Active les messages pré-enregistrés"
+ },
+ "rotary1Enabled": {
+ "label": "Encodeur rotatif #1 activé",
+ "description": "Active l’encodeur rotatif"
+ },
+ "inputbrokerPinA": {
+ "label": "Broche A de l’encodeur",
+ "description": "Valeur GPIO (1-39) pour le port A de l’encodeur"
+ },
+ "inputbrokerPinB": {
+ "label": "Broche B de l’encodeur",
+ "description": "Valeur GPIO (1-39) pour le port B de l’encodeur"
+ },
+ "inputbrokerPinPress": {
+ "label": "Broche de pression de l’encodeur",
+ "description": "Valeur GPIO (1-39) pour la pression sur l’encodeur"
+ },
+ "inputbrokerEventCw": {
+ "label": "Événement horaire",
+ "description": "Sélectionner l’événement d’entrée"
+ },
+ "inputbrokerEventCcw": {
+ "label": "Événement antihoraire",
+ "description": "Sélectionner l’événement d’entrée"
+ },
+ "inputbrokerEventPress": {
+ "label": "Événement pression",
+ "description": "Sélectionner l’événement d’entrée"
+ },
+ "updown1Enabled": {
+ "label": "Encodeur haut/bas activé",
+ "description": "Active l’encodeur haut/bas"
+ },
+ "allowInputSource": {
+ "label": "Autoriser la source d’entrée",
+ "description": "Sélectionner parmi : '_any', 'rotEnc1', 'upDownEnc1', 'cardkb'"
+ },
+ "sendBell": {
+ "label": "Envoyer un bip",
+ "description": "Envoie un caractère de cloche avec chaque message"
+ }
+ },
+ "detectionSensor": {
+ "title": "Paramètres du capteur de détection",
+ "description": "Paramètres du module de capteur de détection",
+ "enabled": {
+ "label": "Activé",
+ "description": "Activer ou désactiver le module de détection"
+ },
+ "minimumBroadcastSecs": {
+ "label": "Intervalle minimum d’émission (s)",
+ "description": "L'intervalle en secondes de la fréquence à laquelle nous pouvons envoyer un message au maillage quand un changement d'état est détecté"
+ },
+ "stateBroadcastSecs": {
+ "label": "Intervalle d’état (s)",
+ "description": "Temps entre deux messages d’état envoyés, même sans changement"
+ },
+ "sendBell": {
+ "label": "Envoyer un bip",
+ "description": "Envoyer un caractère ASCII 'bell' avec le message d’alerte"
+ },
+ "name": {
+ "label": "Nom convivial",
+ "description": "Utilisé pour formater le message envoyé au réseau, max. 20 caractères"
+ },
+ "monitorPin": {
+ "label": "Broche de monitoring",
+ "description": "Broche GPIO pour surveiller les changements d'état"
+ },
+ "detectionTriggerType": {
+ "label": "Type du déclencheur de détection",
+ "description": "Le type d'événement déclencheur à utiliser"
+ },
+ "usePullup": {
+ "label": "Utiliser Pullup",
+ "description": "Utiliser ou non le mode INPUT_PULLUP pour la broche GPIO"
+ }
+ },
+ "externalNotification": {
+ "title": "Paramètres de la notification extérieure",
+ "description": "Configurer le module de notification externe",
+ "enabled": {
+ "label": "Module activé",
+ "description": "Activer les notifications externes"
+ },
+ "outputMs": {
+ "label": "Sortie MS",
+ "description": "Sortie MS"
+ },
+ "output": {
+ "label": "Sortie",
+ "description": "Sortie"
+ },
+ "outputVibra": {
+ "label": "Sortie vibreur",
+ "description": "Sortie vibreur"
+ },
+ "outputBuzzer": {
+ "label": "Sortie buzzer",
+ "description": "Sortie buzzer"
+ },
+ "active": {
+ "label": "Actif",
+ "description": "Actif"
+ },
+ "alertMessage": {
+ "label": "Message d'alerte",
+ "description": "Message d'alerte"
+ },
+ "alertMessageVibra": {
+ "label": "Message d'alerte vibreur",
+ "description": "Message d'alerte vibreur"
+ },
+ "alertMessageBuzzer": {
+ "label": "Message d'alerte buzzer",
+ "description": "Message d'alerte buzzer"
+ },
+ "alertBell": {
+ "label": "Bip d'alerte",
+ "description": "Une alerte doit-elle être déclenchée lors de la réception d'un bip entrant ?"
+ },
+ "alertBellVibra": {
+ "label": "Bip d'alerte vibreur",
+ "description": "Bip d'alerte vibreur"
+ },
+ "alertBellBuzzer": {
+ "label": "Bip d'alerte buzzer",
+ "description": "Bip d'alerte buzzer"
+ },
+ "usePwm": {
+ "label": "Utiliser PWM",
+ "description": "Utiliser PWM"
+ },
+ "nagTimeout": {
+ "label": "Délai d'expiration du message",
+ "description": "Délai d'expiration du message"
+ },
+ "useI2sAsBuzzer": {
+ "label": "Utiliser la broche I2S comme Buzzer",
+ "description": "Désigner la broche I2S comme sortie Buzzer"
+ }
+ },
+ "mqtt": {
+ "title": "Paramètres MQTT",
+ "description": "Paramètres du module MQTT",
+ "enabled": {
+ "label": "Activé",
+ "description": "Activer ou désactiver MQTT"
+ },
+ "address": {
+ "label": "Adresse du serveur MQTT",
+ "description": "Adresse du serveur MQTT à utiliser pour les serveurs par défaut/personnalisés"
+ },
+ "username": {
+ "label": "Nom d'utilisateur MQTT",
+ "description": "Nom d'utilisateur MQTT à utiliser pour les serveurs par défaut/personnalisés"
+ },
+ "password": {
+ "label": "Mot de passe MQTT",
+ "description": "Mot de passe MQTT à utiliser pour les serveurs par défaut/personnalisés"
+ },
+ "encryptionEnabled": {
+ "label": "Chiffrement activé",
+ "description": "Activer ou désactiver le chiffrement MQTT. Remarque : Tous les messages sont envoyés au broker MQTT non chiffré si cette option n'est pas activée, même si vos canaux uplink ont des clés de chiffrement. Cela inclut les données de position."
+ },
+ "jsonEnabled": {
+ "label": "JSON activé",
+ "description": "S'il faut envoyer/consommer des paquets JSON sur MQTT"
+ },
+ "tlsEnabled": {
+ "label": "TLS activé",
+ "description": "Activer ou désactiver TLS"
+ },
+ "root": {
+ "label": "Sujet principal",
+ "description": "Sujet racine MQTT à utiliser pour les serveurs par défaut/personnalisés"
+ },
+ "proxyToClientEnabled": {
+ "label": "Proxy client MQTT activé",
+ "description": "Utilise la connexion réseau pour transmettre les messages MQTT au client."
+ },
+ "mapReportingEnabled": {
+ "label": "Rapport cartographique activé",
+ "description": "Votre nœud enverra périodiquement un paquet de rapport de position non chiffré au serveur MQTT configuré. Ce paquet inclut l'identifiant, les noms long et court, la position approximative, le modèle matériel, le rôle, la version du micrologiciel, la région LoRa, le préréglage du modem et le nom du canal principal."
+ },
+ "mapReportSettings": {
+ "publishIntervalSecs": {
+ "label": "Intervalles de publication du rapport de carte",
+ "description": "Intervalle en secondes pour publier les rapports de carte"
+ },
+ "positionPrecision": {
+ "label": "Position approximative",
+ "description": "La position partagée sera précise dans cette distance",
+ "options": {
+ "metric_km23": "A moins de 23 km",
+ "metric_km12": "A moins de 12 km",
+ "metric_km5_8": "A moins de 5.8 km",
+ "metric_km2_9": "A moins de 2.9 km",
+ "metric_km1_5": "A moins de 1.5 km",
+ "metric_m700": "A moins de 700 m",
+ "metric_m350": "A moins de 350 m",
+ "metric_m200": "À moins de 200 m",
+ "metric_m90": "A moins de 90 m",
+ "metric_m50": "A moins de 50 m",
+ "imperial_mi15": "À moins de 15 miles",
+ "imperial_mi7_3": "À moins de 7,3 miles",
+ "imperial_mi3_6": "À moins de 3,6 miles",
+ "imperial_mi1_8": "À moins de 1,8 miles",
+ "imperial_mi0_9": "À moins de 0,9 miles",
+ "imperial_mi0_5": "À moins de 0,5 miles",
+ "imperial_mi0_2": "À moins de 0,2 miles",
+ "imperial_ft600": "À moins de 600 pieds",
+ "imperial_ft300": "À moins de 300 pieds",
+ "imperial_ft150": "À moins de 150 pieds"
+ }
+ }
+ }
+ },
+ "neighborInfo": {
+ "title": "Paramètres des informations du voisinage",
+ "description": "Paramètres pour le module informations du voisinage",
+ "enabled": {
+ "label": "Activé",
+ "description": "Activer ou désactiver le module informations du voisinage"
+ },
+ "updateInterval": {
+ "label": "Intervalle de mise à jour",
+ "description": "Intervalle en secondes de la fréquence à laquelle nous devrions essayer d'envoyer nos informations de Voisinage au maillage"
+ }
+ },
+ "paxcounter": {
+ "title": "Paramètres Paxcounter",
+ "description": "Paramètres du module Paxcounter",
+ "enabled": {
+ "label": "Module activé",
+ "description": "Activer Paxcounter"
+ },
+ "paxcounterUpdateInterval": {
+ "label": "Intervalle de mise à jour (secondes)",
+ "description": "Durée d'attente entre l'envoi de paquets paxcounter"
+ },
+ "wifiThreshold": {
+ "label": "Seuil RSSI WiFi",
+ "description": "A quel niveau de WiFi RSSI devrait augmenter le compteur. Par défaut, -80."
+ },
+ "bleThreshold": {
+ "label": "Seuil RSSI BLE",
+ "description": "A quel niveau de BLE RSSI devrait augmenter le compteur. Par défaut, -80."
+ }
+ },
+ "rangeTest": {
+ "title": "Paramètres de test de portée",
+ "description": "Paramètres du module de test de portée",
+ "enabled": {
+ "label": "Module activé",
+ "description": "Activer le test de portée"
+ },
+ "sender": {
+ "label": "Intervalle de message",
+ "description": "Durée d'attente entre l'envoi de paquets de test"
+ },
+ "save": {
+ "label": "Enregistrer le CSV dans le stockage",
+ "description": "ESP32 seulement"
+ }
+ },
+ "serial": {
+ "title": "Paramètres série",
+ "description": "Paramètres du module série",
+ "enabled": {
+ "label": "Module activé",
+ "description": "Activer la sortie série"
+ },
+ "echo": {
+ "label": "Écho",
+ "description": "Tous les paquets que vous envoyez seront renvoyés vers votre appareil"
+ },
+ "rxd": {
+ "label": "Broche de réception",
+ "description": "Réglez la broche GPIO sur la broche RXD que vous avez configurée."
+ },
+ "txd": {
+ "label": "Broche de transmission",
+ "description": "Réglez la broche GPIO sur la broche TXD que vous avez configurée."
+ },
+ "baud": {
+ "label": "Vitesse en bauds",
+ "description": "Vitesse de transmission série"
+ },
+ "timeout": {
+ "label": "Délai d'expiration",
+ "description": "Secondes à attendre avant de considérer votre paquet comme \"fini\""
+ },
+ "mode": {
+ "label": "Mode",
+ "description": "Sélection de mode"
+ },
+ "overrideConsoleSerialPort": {
+ "label": "Outrepasser le port série de la console",
+ "description": "Si vous avez un port série connecté à la console, cela va le remplacer."
+ }
+ },
+ "storeForward": {
+ "title": "Paramètres de stockage et transfert",
+ "description": "Paramètres du module stockage et transfert",
+ "enabled": {
+ "label": "Module activé",
+ "description": "Activer stockage et transfert"
+ },
+ "heartbeat": {
+ "label": "Pulsations activées",
+ "description": "Activer les pulsations stockage et transfert"
+ },
+ "records": {
+ "label": "Nombre d'enregistrements",
+ "description": "Nombre d'enregistrements à stocker"
+ },
+ "historyReturnMax": {
+ "label": "Limite d’historique renvoyé",
+ "description": "Nombre maximum d'enregistrements à retourner"
+ },
+ "historyReturnWindow": {
+ "label": "Fenêtre de retour d'historique",
+ "description": "Retourner les enregistrements de cette fenêtre de temps (minutes)"
+ }
+ },
+ "telemetry": {
+ "title": "Paramètres de télémétrie",
+ "description": "Paramètres du module télémétrie",
+ "deviceUpdateInterval": {
+ "label": "Métriques de l’appareil",
+ "description": "Intervalle de mise à jour des métriques de l'appareil (secondes)"
+ },
+ "environmentUpdateInterval": {
+ "label": "Intervalle de mise à jour des métriques d'environnement (secondes)",
+ "description": ""
+ },
+ "environmentMeasurementEnabled": {
+ "label": "Module activé",
+ "description": "Activer la télémétrie d'environnement"
+ },
+ "environmentScreenEnabled": {
+ "label": "Affiché à l'écran",
+ "description": "Afficher le module de télémétrie sur OLED"
+ },
+ "environmentDisplayFahrenheit": {
+ "label": "Afficher en Fahrenheit",
+ "description": "Afficher la température en Fahrenheit"
+ },
+ "airQualityEnabled": {
+ "label": "Qualité de l'air activée",
+ "description": "Activer la télémétrie de qualité de l'air"
+ },
+ "airQualityInterval": {
+ "label": "Intervalle de mise à jour de la qualité de l'air",
+ "description": "Fréquence d'envoi des données de qualité de l'air sur le maillage"
+ },
+ "powerMeasurementEnabled": {
+ "label": "Mesure de puissance activée",
+ "description": "Activer la télémétrie de mesure d'énergie"
+ },
+ "powerUpdateInterval": {
+ "label": "Intervalle de mise à jour de l'alimentation",
+ "description": "Fréquence d'envoi de données d'alimentation sur le maillage"
+ },
+ "powerScreenEnabled": {
+ "label": "Écran d'alimentation activé",
+ "description": "Activer l'écran de télémétrie d'alimentation"
+ }
+ }
}
diff --git a/packages/web/public/i18n/locales/fr-FR/nodes.json b/packages/web/public/i18n/locales/fr-FR/nodes.json
index 604aec64..f8b2e380 100644
--- a/packages/web/public/i18n/locales/fr-FR/nodes.json
+++ b/packages/web/public/i18n/locales/fr-FR/nodes.json
@@ -1,63 +1,59 @@
{
- "nodeDetail": {
- "publicKeyEnabled": {
- "label": "Clé publique activée"
- },
- "noPublicKey": {
- "label": "Aucune clé publique"
- },
- "directMessage": {
- "label": "Message direct à {{shortName}}"
- },
- "favorite": {
- "label": "Favoris",
- "tooltip": "Ajouter ou retirer ce nœud de vos favoris"
- },
- "notFavorite": {
- "label": "Non favori"
- },
- "error": {
- "label": "Erreur",
- "text": "Une erreur est survenue lors du chargement des détails du nœud. Veuillez réessayer."
- },
- "status": {
- "heard": "Capté",
- "mqtt": "MQTT"
- },
- "elevation": {
- "label": "Altitude"
- },
- "channelUtil": {
- "label": "Utilisation du canal"
- },
- "airtimeUtil": {
- "label": "Utilisation du temps d’antenne"
- }
- },
- "nodesTable": {
- "headings": {
- "longName": "Nom long",
- "connection": "Connexion",
- "lastHeard": "Dernière écoute",
- "encryption": "Chiffrement",
- "model": "Modèle",
- "macAddress": "Adresse MAC"
- },
- "connectionStatus": {
- "direct": "Direk",
- "away": "distant",
- "unknown": "-",
- "viaMqtt": ", via MQTT"
- },
- "lastHeardStatus": {
- "never": "Jamais"
- }
- },
- "actions": {
- "added": "Ajouté",
- "removed": "Supprimé",
- "ignoreNode": "Ignorer le nœud",
- "unignoreNode": "Ne plus ignorer le nœud",
- "requestPosition": "Demander la position"
- }
+ "nodeDetail": {
+ "publicKeyEnabled": {
+ "label": "Clé publique activée"
+ },
+ "noPublicKey": {
+ "label": "Aucune clé publique"
+ },
+ "directMessage": {
+ "label": "Message direct à {{shortName}}"
+ },
+ "favorite": {
+ "label": "Favoris",
+ "tooltip": "Ajouter ou retirer ce nœud de vos favoris"
+ },
+ "notFavorite": {
+ "label": "Non favori"
+ },
+ "error": {
+ "label": "Erreur",
+ "text": "Une erreur est survenue lors du chargement des détails du nœud. Veuillez réessayer."
+ },
+ "status": {
+ "heard": "Capté",
+ "mqtt": "MQTT"
+ },
+ "elevation": {
+ "label": "Altitude"
+ },
+ "channelUtil": {
+ "label": "Utilisation du canal"
+ },
+ "airtimeUtil": {
+ "label": "Utilisation du temps d’antenne"
+ }
+ },
+ "nodesTable": {
+ "headings": {
+ "longName": "Nom long",
+ "connection": "Connexion",
+ "lastHeard": "Dernière écoute",
+ "encryption": "Chiffrement",
+ "model": "Modèle",
+ "macAddress": "Adresse MAC"
+ },
+ "connectionStatus": {
+ "direct": "Direk",
+ "away": "distant",
+ "viaMqtt": ", via MQTT"
+ }
+ },
+ "actions": {
+ "added": "Ajouté",
+ "removed": "Supprimé",
+ "ignoreNode": "Ignorer le nœud",
+ "unignoreNode": "Ne plus ignorer le nœud",
+ "requestPosition": "Demander la position"
+ }
}
diff --git a/packages/web/public/i18n/locales/fr-FR/ui.json b/packages/web/public/i18n/locales/fr-FR/ui.json
index 5b5f99c4..1f5eb84b 100644
--- a/packages/web/public/i18n/locales/fr-FR/ui.json
+++ b/packages/web/public/i18n/locales/fr-FR/ui.json
@@ -1,228 +1,229 @@
{
- "navigation": {
- "title": "Navigation",
- "messages": "Messages",
- "map": "Carte",
- "config": "Configuration",
- "radioConfig": "Configuration radio",
- "moduleConfig": "Configuration du module",
- "channels": "Canaux",
- "nodes": "Noeuds"
- },
- "app": {
- "title": "Meshtastic",
- "logo": "Logo Meshtastic"
- },
- "sidebar": {
- "collapseToggle": {
- "button": {
- "open": "Ouvrir la barre latérale",
- "close": "Fermer la barre latérale"
- }
- },
- "deviceInfo": {
- "volts": "{{voltage}} volts",
- "firmware": {
- "title": "Micrologiciel",
- "version": "v{{version}}",
- "buildDate": "Date de compilation : {{date}}"
- },
- "deviceName": {
- "title": "Nom de l'appareil",
- "changeName": "Changer le nom de l'appareil",
- "placeholder": "Saisissez le nom de l'appareil"
- },
- "editDeviceName": "Éditer le nom de l'appareil"
- }
- },
- "batteryStatus": {
- "charging": "{{level}}% en charge",
- "pluggedIn": "Branché",
- "title": "Batterie"
- },
- "search": {
- "nodes": "Recherche de nœuds...",
- "channels": "Rechercher des canaux...",
- "commandPalette": "Rechercher des commandes..."
- },
- "toast": {
- "positionRequestSent": {
- "title": "Requête de position envoyée."
- },
- "requestingPosition": {
- "title": "Requête de position en cours, veuillez patienter..."
- },
- "sendingTraceroute": {
- "title": "Envoi du traceroute en cours, veuillez patienter..."
- },
- "tracerouteSent": {
- "title": "Traceroute envoyé."
- },
- "savedChannel": {
- "title": "Canal enregistré : {{channelName}}"
- },
- "messages": {
- "pkiEncryption": {
- "title": "La discussion utilise un chiffrement PKI."
- },
- "pskEncryption": {
- "title": "La discussion utilise un chiffrement PSK."
- }
- },
- "configSaveError": {
- "title": "Erreur lors de l’enregistrement",
- "description": "Une erreur est survenue lors de l’enregistrement de la configuration."
- },
- "validationError": {
- "title": "Des erreurs de configuration existent",
- "description": "Veuillez corriger les erreurs de configuration avant d’enregistrer."
- },
- "saveSuccess": {
- "title": "Configuration enregistrée",
- "description": "Le changement de configuration {{case}} a été enregistré."
- },
- "favoriteNode": {
- "title": "{{action}} {{nodeName}} {{direction}} des favoris.",
- "action": {
- "added": "Ajouté",
- "removed": "Supprimé",
- "to": "à",
- "from": "de"
- }
- },
- "ignoreNode": {
- "title": "{{action}} {{nodeName}} {{direction}} de la liste d’ignorés",
- "action": {
- "added": "Ajouté",
- "removed": "Supprimé",
- "to": "à",
- "from": "de"
- }
- }
- },
- "notifications": {
- "copied": {
- "label": "Copié !"
- },
- "copyToClipboard": {
- "label": "Copier dans le presse-papiers"
- },
- "hidePassword": {
- "label": "Masquer le mot de passe"
- },
- "showPassword": {
- "label": "Afficher le mot de passe"
- },
- "deliveryStatus": {
- "delivered": "Distribué",
- "failed": "Échec de l'envoi",
- "waiting": "En attente . . .",
- "unknown": "Inconnu"
- }
- },
- "general": {
- "label": "Général"
- },
- "hardware": {
- "label": "Matériel"
- },
- "metrics": {
- "label": "Métriques"
- },
- "role": {
- "label": "Rôle"
- },
- "filter": {
- "label": "Filtre"
- },
- "advanced": {
- "label": "Avancé"
- },
- "clearInput": {
- "label": "Effacer la saisie"
- },
- "resetFilters": {
- "label": "Réinitialiser les filtres"
- },
- "nodeName": {
- "label": "Nom/numéro de nœud",
- "placeholder": "Meshtastic 1234"
- },
- "airtimeUtilization": {
- "label": "Utilisation du temps d’antenne (%)"
- },
- "batteryLevel": {
- "label": "Niveau de batterie (%)",
- "labelText": "Niveau de batterie (%) : {{value}}"
- },
- "batteryVoltage": {
- "label": "Tension de batterie (V)",
- "title": "Tension"
- },
- "channelUtilization": {
- "label": "Utilisation du canal (%)"
- },
- "hops": {
- "direct": "Direk",
- "label": "Nombre de sauts",
- "text": "Nombre de sauts : {{value}}"
- },
- "lastHeard": {
- "label": "Dernière écoute",
- "labelText": "Dernier signal reçu : {{value}}",
- "nowLabel": "Maintenant"
- },
- "snr": {
- "label": "SNR (db)"
- },
- "favorites": {
- "label": "Favoris"
- },
- "hide": {
- "label": "Masquer"
- },
- "showOnly": {
- "label": "Montrer seulement"
- },
- "viaMqtt": {
- "label": "Connecté via MQTT"
- },
- "hopsUnknown": {
- "label": "Nombre de sauts inconnu"
- },
- "showUnheard": {
- "label": "Jamais entendu"
- },
- "language": {
- "label": "Langue",
- "changeLanguage": "Changer la langue"
- },
- "theme": {
- "dark": "Sombre",
- "light": "Clair",
- "system": "Automatique",
- "changeTheme": "Changer le schéma de couleurs"
- },
- "errorPage": {
- "title": "C'est un peu embarrassant...",
- "description1": "Nous sommes vraiment désolés mais une erreur est survenue dans le client web qui l'a fait planter.
Ce n'est pas censé se produire, et nous travaillons dur pour le corriger.",
- "description2": "La meilleure façon d'éviter que cela ne se reproduise à vous ou à qui que ce soit d'autre consiste à nous signaler le problème.",
- "reportInstructions": "Veuillez inclure les informations suivantes dans votre rapport :",
- "reportSteps": {
- "step1": "Ce que vous faisiez lorsque l'erreur s'est produite",
- "step2": "Ce que vous vous attendiez à se produire",
- "step3": "Ce qui s'est réellement passé",
- "step4": "Toute autre information pertinente"
- },
- "reportLink": "Vous pouvez signaler le problème à notre <0>GitHub0>",
- "dashboardLink": "Retourner au <0>tableau de bord0>",
- "detailsSummary": "Détails de l'erreur",
- "errorMessageLabel": "Message d'erreur :",
- "stackTraceLabel": "État de la pile :",
- "fallbackError": "{{error}}"
- },
- "footer": {
- "text": "Propulsé par <0>▲ Vercel0> | Meshtastic® est une marque déposée de Meshtastic LLC. | <1>Informations légales1>",
- "commitSha": "SHA : {{sha}}"
- }
+ "navigation": {
+ "title": "Navigation",
+ "messages": "Messages",
+ "map": "Carte",
+ "settings": "Réglages",
+ "channels": "Canaux",
+ "radioConfig": "Configuration radio",
+ "deviceConfig": "Configuration de l'appareil",
+ "moduleConfig": "Configuration du module",
+ "nodes": "Noeuds"
+ },
+ "app": {
+ "title": "Meshtastic",
+ "logo": "Logo Meshtastic"
+ },
+ "sidebar": {
+ "collapseToggle": {
+ "button": {
+ "open": "Ouvrir la barre latérale",
+ "close": "Fermer la barre latérale"
+ }
+ },
+ "deviceInfo": {
+ "volts": "{{voltage}} volts",
+ "firmware": {
+ "title": "Micrologiciel",
+ "version": "v{{version}}",
+ "buildDate": "Date de compilation : {{date}}"
+ }
+ }
+ },
+ "batteryStatus": {
+ "charging": "{{level}}% en charge",
+ "pluggedIn": "Branché",
+ "title": "Batterie"
+ },
+ "search": {
+ "nodes": "Recherche de nœuds...",
+ "channels": "Rechercher des canaux...",
+ "commandPalette": "Rechercher des commandes..."
+ },
+ "toast": {
+ "positionRequestSent": {
+ "title": "Requête de position envoyée."
+ },
+ "requestingPosition": {
+ "title": "Requête de position en cours, veuillez patienter..."
+ },
+ "sendingTraceroute": {
+ "title": "Envoi du traceroute en cours, veuillez patienter..."
+ },
+ "tracerouteSent": {
+ "title": "Traceroute envoyé."
+ },
+ "savedChannel": {
+ "title": "Canal enregistré : {{channelName}}"
+ },
+ "messages": {
+ "pkiEncryption": {
+ "title": "La discussion utilise un chiffrement PKI."
+ },
+ "pskEncryption": {
+ "title": "La discussion utilise un chiffrement PSK."
+ }
+ },
+ "configSaveError": {
+ "title": "Erreur lors de l’enregistrement",
+ "description": "Une erreur est survenue lors de l’enregistrement de la configuration."
+ },
+ "validationError": {
+ "title": "Des erreurs de configuration existent",
+ "description": "Veuillez corriger les erreurs de configuration avant d’enregistrer."
+ },
+ "saveSuccess": {
+ "title": "Configuration enregistrée",
+ "description": "Le changement de configuration {{case}} a été enregistré."
+ },
+ "saveAllSuccess": {
+ "title": "Saved",
+ "description": "All configuration changes have been saved."
+ },
+ "favoriteNode": {
+ "title": "{{action}} {{nodeName}} {{direction}} des favoris.",
+ "action": {
+ "added": "Ajouté",
+ "removed": "Supprimé",
+ "to": "à",
+ "from": "de"
+ }
+ },
+ "ignoreNode": {
+ "title": "{{action}} {{nodeName}} {{direction}} de la liste d’ignorés",
+ "action": {
+ "added": "Ajouté",
+ "removed": "Supprimé",
+ "to": "à",
+ "from": "de"
+ }
+ }
+ },
+ "notifications": {
+ "copied": {
+ "label": "Copié !"
+ },
+ "copyToClipboard": {
+ "label": "Copier dans le presse-papiers"
+ },
+ "hidePassword": {
+ "label": "Masquer le mot de passe"
+ },
+ "showPassword": {
+ "label": "Afficher le mot de passe"
+ },
+ "deliveryStatus": {
+ "delivered": "Distribué",
+ "failed": "Échec de l'envoi",
+ "waiting": "En attente . . .",
+ "unknown": "Inconnu"
+ }
+ },
+ "general": {
+ "label": "Général"
+ },
+ "hardware": {
+ "label": "Matériel"
+ },
+ "metrics": {
+ "label": "Métriques"
+ },
+ "role": {
+ "label": "Rôle"
+ },
+ "filter": {
+ "label": "Filtre"
+ },
+ "advanced": {
+ "label": "Avancé"
+ },
+ "clearInput": {
+ "label": "Effacer la saisie"
+ },
+ "resetFilters": {
+ "label": "Réinitialiser les filtres"
+ },
+ "nodeName": {
+ "label": "Nom/numéro de nœud",
+ "placeholder": "Meshtastic 1234"
+ },
+ "airtimeUtilization": {
+ "label": "Utilisation du temps d’antenne (%)",
+ "short": "Airtime Util. (%)"
+ },
+ "batteryLevel": {
+ "label": "Niveau de batterie (%)",
+ "labelText": "Niveau de batterie (%) : {{value}}"
+ },
+ "batteryVoltage": {
+ "label": "Tension de batterie (V)",
+ "title": "Tension"
+ },
+ "channelUtilization": {
+ "label": "Utilisation du canal (%)",
+ "short": "Channel Util. (%)"
+ },
+ "hops": {
+ "direct": "Direk",
+ "label": "Nombre de sauts",
+ "text": "Nombre de sauts : {{value}}"
+ },
+ "lastHeard": {
+ "label": "Dernière écoute",
+ "labelText": "Dernier signal reçu : {{value}}",
+ "nowLabel": "Maintenant"
+ },
+ "snr": {
+ "label": "SNR (db)"
+ },
+ "favorites": {
+ "label": "Favoris"
+ },
+ "hide": {
+ "label": "Masquer"
+ },
+ "showOnly": {
+ "label": "Montrer seulement"
+ },
+ "viaMqtt": {
+ "label": "Connecté via MQTT"
+ },
+ "hopsUnknown": {
+ "label": "Nombre de sauts inconnu"
+ },
+ "showUnheard": {
+ "label": "Jamais entendu"
+ },
+ "language": {
+ "label": "Langue",
+ "changeLanguage": "Changer la langue"
+ },
+ "theme": {
+ "dark": "Sombre",
+ "light": "Clair",
+ "system": "Automatique",
+ "changeTheme": "Changer le schéma de couleurs"
+ },
+ "errorPage": {
+ "title": "C'est un peu embarrassant...",
+ "description1": "Nous sommes vraiment désolés mais une erreur est survenue dans le client web qui l'a fait planter.
Ce n'est pas censé se produire, et nous travaillons dur pour le corriger.",
+ "description2": "La meilleure façon d'éviter que cela ne se reproduise à vous ou à qui que ce soit d'autre consiste à nous signaler le problème.",
+ "reportInstructions": "Veuillez inclure les informations suivantes dans votre rapport :",
+ "reportSteps": {
+ "step1": "Ce que vous faisiez lorsque l'erreur s'est produite",
+ "step2": "Ce que vous vous attendiez à se produire",
+ "step3": "Ce qui s'est réellement passé",
+ "step4": "Toute autre information pertinente"
+ },
+ "reportLink": "Vous pouvez signaler le problème à notre <0>GitHub0>",
+ "dashboardLink": "Retourner au <0>tableau de bord0>",
+ "detailsSummary": "Détails de l'erreur",
+ "errorMessageLabel": "Message d'erreur :",
+ "stackTraceLabel": "État de la pile :",
+ "fallbackError": "{{error}}"
+ },
+ "footer": {
+ "text": "Propulsé par <0>▲ Vercel0> | Meshtastic® est une marque déposée de Meshtastic LLC. | <1>Informations légales1>",
+ "commitSha": "SHA : {{sha}}"
+ }
}
diff --git a/packages/web/public/i18n/locales/hu-HU/channels.json b/packages/web/public/i18n/locales/hu-HU/channels.json
index 37ec6def..7144a0d5 100644
--- a/packages/web/public/i18n/locales/hu-HU/channels.json
+++ b/packages/web/public/i18n/locales/hu-HU/channels.json
@@ -1,69 +1,71 @@
{
- "page": {
- "sectionLabel": "Csatornák",
- "channelName": "Csatorna: {{channelName}}",
- "broadcastLabel": "Elsődleges",
- "channelIndex": "Csat. {{index}}"
- },
- "validation": {
- "pskInvalid": "Adj meg egy érvényes {{bits}} bites PSK-t."
- },
- "settings": {
- "label": "Csatorna beállítások",
- "description": "Titkosítás, MQTT és egyéb beállítások"
- },
- "role": {
- "label": "Szerepkör",
- "description": "Az eszköz telemetriája az ELSŐDLEGES (PRIMARY) csatornán keresztül küldhető. Csak egy ELSŐDLEGES engedélyezett",
- "options": {
- "primary": "ELSŐDLEGES",
- "disabled": "LETILTOTT",
- "secondary": "MÁSODLAGOS"
- }
- },
- "psk": {
- "label": "Előre megosztott kulcs (PSK)",
- "description": "Támogatott PSK hossz: 256 bit, 128 bit, 8 bit, üres (0 bit)",
- "generate": "Generálás"
- },
- "name": {
- "label": "Név",
- "description": "Egyedi csatornanév (<12 bájt); hagyd üresen az alapértelmezett névhez"
- },
- "uplinkEnabled": {
- "label": "Feltöltés engedélyezve",
- "description": "Üzenetek küldése a helyi mesh hálózatból az MQTT felé"
- },
- "downlinkEnabled": {
- "label": "Letöltés engedélyezve",
- "description": "Üzenetek fogadása az MQTT-ről a helyi mesh hálózatba"
- },
- "positionPrecision": {
- "label": "Helyzet",
- "description": "A csatornával megosztott helyzet pontossága. Kikapcsolható.",
- "options": {
- "none": "Helyzet megosztásának letiltása",
- "precise": "Pontos helyzet",
- "metric_km23": "23 kilométeren belül",
- "metric_km12": "12 kilométeren belül",
- "metric_km5_8": "5.8 kilométeren belül",
- "metric_km2_9": "2.9 kilométeren belül",
- "metric_km1_5": "1.5 kilométeren belül",
- "metric_m700": "700 méteren belül",
- "metric_m350": "350 méteren belül",
- "metric_m200": "200 méteren belül",
- "metric_m90": "90 méteren belül",
- "metric_m50": "50 méteren belül",
- "imperial_mi15": "15 mérföldön belül",
- "imperial_mi7_3": "7.3 mérföldön belül",
- "imperial_mi3_6": "3.6 mérföldön belül",
- "imperial_mi1_8": "1.8 mérföldön belül",
- "imperial_mi0_9": "0.9 mérföldön belül",
- "imperial_mi0_5": "0.5 mérföldön belül",
- "imperial_mi0_2": "0.2 mérföldön belül",
- "imperial_ft600": "600 lábon belül",
- "imperial_ft300": "300 lábon belül",
- "imperial_ft150": "150 lábon belül"
- }
- }
+ "page": {
+ "sectionLabel": "Csatornák",
+ "channelName": "Csatorna: {{channelName}}",
+ "broadcastLabel": "Elsődleges",
+ "channelIndex": "Csat. {{index}}",
+ "import": "Importálás",
+ "export": "Exportálás"
+ },
+ "validation": {
+ "pskInvalid": "Adj meg egy érvényes {{bits}} bites PSK-t."
+ },
+ "settings": {
+ "label": "Csatorna beállítások",
+ "description": "Titkosítás, MQTT és egyéb beállítások"
+ },
+ "role": {
+ "label": "Szerepkör",
+ "description": "Az eszköz telemetriája az ELSŐDLEGES (PRIMARY) csatornán keresztül küldhető. Csak egy ELSŐDLEGES engedélyezett",
+ "options": {
+ "primary": "ELSŐDLEGES",
+ "disabled": "LETILTOTT",
+ "secondary": "MÁSODLAGOS"
+ }
+ },
+ "psk": {
+ "label": "Előre megosztott kulcs (PSK)",
+ "description": "Támogatott PSK hossz: 256 bit, 128 bit, 8 bit, üres (0 bit)",
+ "generate": "Generálás"
+ },
+ "name": {
+ "label": "Név",
+ "description": "Egyedi csatornanév (<12 bájt); hagyd üresen az alapértelmezett névhez"
+ },
+ "uplinkEnabled": {
+ "label": "Feltöltés engedélyezve",
+ "description": "Üzenetek küldése a helyi mesh hálózatból az MQTT felé"
+ },
+ "downlinkEnabled": {
+ "label": "Letöltés engedélyezve",
+ "description": "Üzenetek fogadása az MQTT-ről a helyi mesh hálózatba"
+ },
+ "positionPrecision": {
+ "label": "Helyzet",
+ "description": "A csatornával megosztott helyzet pontossága. Kikapcsolható.",
+ "options": {
+ "none": "Helyzet megosztásának letiltása",
+ "precise": "Pontos helyzet",
+ "metric_km23": "23 kilométeren belül",
+ "metric_km12": "12 kilométeren belül",
+ "metric_km5_8": "5.8 kilométeren belül",
+ "metric_km2_9": "2.9 kilométeren belül",
+ "metric_km1_5": "1.5 kilométeren belül",
+ "metric_m700": "700 méteren belül",
+ "metric_m350": "350 méteren belül",
+ "metric_m200": "200 méteren belül",
+ "metric_m90": "90 méteren belül",
+ "metric_m50": "50 méteren belül",
+ "imperial_mi15": "15 mérföldön belül",
+ "imperial_mi7_3": "7.3 mérföldön belül",
+ "imperial_mi3_6": "3.6 mérföldön belül",
+ "imperial_mi1_8": "1.8 mérföldön belül",
+ "imperial_mi0_9": "0.9 mérföldön belül",
+ "imperial_mi0_5": "0.5 mérföldön belül",
+ "imperial_mi0_2": "0.2 mérföldön belül",
+ "imperial_ft600": "600 lábon belül",
+ "imperial_ft300": "300 lábon belül",
+ "imperial_ft150": "150 lábon belül"
+ }
+ }
}
diff --git a/packages/web/public/i18n/locales/hu-HU/commandPalette.json b/packages/web/public/i18n/locales/hu-HU/commandPalette.json
index 57b5c875..035ffeb2 100644
--- a/packages/web/public/i18n/locales/hu-HU/commandPalette.json
+++ b/packages/web/public/i18n/locales/hu-HU/commandPalette.json
@@ -15,7 +15,6 @@
"messages": "Üzenetek",
"map": "Térkép",
"config": "Config",
- "channels": "Csatornák",
"nodes": "Csomópontok"
}
},
@@ -45,7 +44,8 @@
"label": "Debug",
"command": {
"reconfigure": "Reconfigure",
- "clearAllStoredMessages": "Clear All Stored Message"
+ "clearAllStoredMessages": "Clear All Stored Message",
+ "clearAllStores": "Clear All Local Storage"
}
}
}
diff --git a/packages/web/public/i18n/locales/hu-HU/common.json b/packages/web/public/i18n/locales/hu-HU/common.json
index a8adfc29..d1e54e36 100644
--- a/packages/web/public/i18n/locales/hu-HU/common.json
+++ b/packages/web/public/i18n/locales/hu-HU/common.json
@@ -1,142 +1,157 @@
{
- "button": {
- "apply": "Alkalmaz",
- "backupKey": "Backup Key",
- "cancel": "Megszakítani",
- "clearMessages": "Clear Messages",
- "close": "Bezárás",
- "confirm": "Megerősítés",
- "delete": "Törlés",
- "dismiss": "Bezárás",
- "download": "Letöltés",
- "export": "Exportálás",
- "generate": "Generálás",
- "regenerate": "Újragenerálás",
- "import": "Importálás",
- "message": "Üzenet",
- "now": "Most",
- "ok": "OK",
- "print": "Print",
- "remove": "Törlés",
- "requestNewKeys": "Request New Keys",
- "requestPosition": "Pozíció kérése",
- "reset": "Újraindítás",
- "save": "Mentés",
- "scanQr": "QR-kód beolvasása",
- "traceRoute": "Trace Route",
- "submit": "Mentés"
- },
- "app": {
- "title": "Meshtastic",
- "fullTitle": "Meshtastic Web Kliens"
- },
- "loading": "Töltés...",
- "unit": {
- "cps": "CPS",
- "dbm": "dBm",
- "hertz": "Hz",
- "hop": {
- "one": "Ugrás",
- "plural": "Ugrások"
- },
- "hopsAway": {
- "one": "{{count}} hop away",
- "plural": "{{count}} hops away",
- "unknown": "Unknown hops away"
- },
- "megahertz": "MHz",
- "raw": "nyers",
- "meter": {
- "one": "Méter",
- "plural": "Méter",
- "suffix": "m"
- },
- "minute": {
- "one": "Perc",
- "plural": "Percek"
- },
- "hour": {
- "one": "Óra",
- "plural": "Hours"
- },
- "millisecond": {
- "one": "Millisecond",
- "plural": "Milliseconds",
- "suffix": "ms"
- },
- "second": {
- "one": "Másodperc",
- "plural": "Másodpercek"
- },
- "day": {
- "one": "Nap",
- "plural": "Napok"
- },
- "month": {
- "one": "Hónap",
- "plural": "Hónapok"
- },
- "year": {
- "one": "Év",
- "plural": "Évek"
- },
- "snr": "SNR",
- "volt": {
- "one": "Volt",
- "plural": "Volts",
- "suffix": "V"
- },
- "record": {
- "one": "Bejegyzések",
- "plural": "Bejegyzések"
- }
- },
- "security": {
- "0bit": "Üres",
- "8bit": "8 bit",
- "128bit": "128 bit",
- "256bit": "256 bit"
- },
- "unknown": {
- "longName": "Ismeretlen",
- "shortName": "UNK",
- "notAvailable": "Nincs adat",
- "num": "??"
- },
- "nodeUnknownPrefix": "!",
- "unset": "NEM BEÁLLÍTOTT",
- "fallbackName": "Meshtastic {{last4}}",
- "node": "Csomópont",
- "formValidation": {
- "unsavedChanges": "Nem mentett módosítások",
- "tooBig": {
- "string": "Too long, expected less than or equal to {{maximum}} characters.",
- "number": "Too big, expected a number smaller than or equal to {{maximum}}.",
- "bytes": "Too big, expected less than or equal to {{params.maximum}} bytes."
- },
- "tooSmall": {
- "string": "Too short, expected more than or equal to {{minimum}} characters.",
- "number": "Too small, expected a number larger than or equal to {{minimum}}."
- },
- "invalidFormat": {
- "ipv4": "Invalid format, expected an IPv4 address.",
- "key": "Invalid format, expected a Base64 encoded pre-shared key (PSK)."
- },
- "invalidType": {
- "number": "Invalid type, expected a number."
- },
- "pskLength": {
- "0bit": "Key is required to be empty.",
- "8bit": "Key is required to be an 8 bit pre-shared key (PSK).",
- "128bit": "Key is required to be a 128 bit pre-shared key (PSK).",
- "256bit": "Key is required to be a 256 bit pre-shared key (PSK)."
- },
- "required": {
- "generic": "A mező kitöltése kötelező.",
- "managed": "At least one admin key is requred if the node is managed.",
- "key": "Kulcs megadása kötelező."
- }
- },
- "yes": "Igen",
- "no": "Nem"
+ "button": {
+ "apply": "Alkalmaz",
+ "backupKey": "Backup Key",
+ "cancel": "Megszakítani",
+ "clearMessages": "Clear Messages",
+ "close": "Bezárás",
+ "confirm": "Megerősítés",
+ "delete": "Törlés",
+ "dismiss": "Bezárás",
+ "download": "Letöltés",
+ "export": "Exportálás",
+ "generate": "Generálás",
+ "regenerate": "Újragenerálás",
+ "import": "Importálás",
+ "message": "Üzenet",
+ "now": "Most",
+ "ok": "OK",
+ "print": "Print",
+ "remove": "Törlés",
+ "requestNewKeys": "Request New Keys",
+ "requestPosition": "Pozíció kérése",
+ "reset": "Újraindítás",
+ "save": "Mentés",
+ "scanQr": "QR-kód beolvasása",
+ "traceRoute": "Trace Route",
+ "submit": "Mentés"
+ },
+ "app": {
+ "title": "Meshtastic",
+ "fullTitle": "Meshtastic Web Kliens"
+ },
+ "loading": "Töltés...",
+ "unit": {
+ "cps": "CPS",
+ "dbm": "dBm",
+ "hertz": "Hz",
+ "hop": {
+ "one": "Ugrás",
+ "plural": "Ugrások"
+ },
+ "hopsAway": {
+ "one": "{{count}} hop away",
+ "plural": "{{count}} hops away",
+ "unknown": "Unknown hops away"
+ },
+ "megahertz": "MHz",
+ "raw": "nyers",
+ "meter": {
+ "one": "Méter",
+ "plural": "Méter",
+ "suffix": "m"
+ },
+ "kilometer": {
+ "one": "Kilometer",
+ "plural": "Kilometers",
+ "suffix": "km"
+ },
+ "minute": {
+ "one": "Perc",
+ "plural": "Percek"
+ },
+ "hour": {
+ "one": "Óra",
+ "plural": "Hours"
+ },
+ "millisecond": {
+ "one": "Millisecond",
+ "plural": "Milliseconds",
+ "suffix": "ms"
+ },
+ "second": {
+ "one": "Másodperc",
+ "plural": "Másodpercek"
+ },
+ "day": {
+ "one": "Nap",
+ "plural": "Napok",
+ "today": "Today",
+ "yesterday": "Yesterday"
+ },
+ "month": {
+ "one": "Hónap",
+ "plural": "Hónapok"
+ },
+ "year": {
+ "one": "Év",
+ "plural": "Évek"
+ },
+ "snr": "SNR",
+ "volt": {
+ "one": "Volt",
+ "plural": "Volts",
+ "suffix": "V"
+ },
+ "record": {
+ "one": "Bejegyzések",
+ "plural": "Bejegyzések"
+ },
+ "degree": {
+ "one": "Degree",
+ "plural": "Degrees",
+ "suffix": "°"
+ }
+ },
+ "security": {
+ "0bit": "Üres",
+ "8bit": "8 bit",
+ "128bit": "128 bit",
+ "256bit": "256 bit"
+ },
+ "unknown": {
+ "longName": "Ismeretlen",
+ "shortName": "UNK",
+ "notAvailable": "Nincs adat",
+ "num": "??"
+ },
+ "nodeUnknownPrefix": "!",
+ "unset": "NEM BEÁLLÍTOTT",
+ "fallbackName": "Meshtastic {{last4}}",
+ "node": "Csomópont",
+ "formValidation": {
+ "unsavedChanges": "Nem mentett módosítások",
+ "tooBig": {
+ "string": "Too long, expected less than or equal to {{maximum}} characters.",
+ "number": "Too big, expected a number smaller than or equal to {{maximum}}.",
+ "bytes": "Too big, expected less than or equal to {{params.maximum}} bytes."
+ },
+ "tooSmall": {
+ "string": "Too short, expected more than or equal to {{minimum}} characters.",
+ "number": "Too small, expected a number larger than or equal to {{minimum}}."
+ },
+ "invalidFormat": {
+ "ipv4": "Invalid format, expected an IPv4 address.",
+ "key": "Invalid format, expected a Base64 encoded pre-shared key (PSK)."
+ },
+ "invalidType": {
+ "number": "Invalid type, expected a number."
+ },
+ "pskLength": {
+ "0bit": "Key is required to be empty.",
+ "8bit": "Key is required to be an 8 bit pre-shared key (PSK).",
+ "128bit": "Key is required to be a 128 bit pre-shared key (PSK).",
+ "256bit": "Key is required to be a 256 bit pre-shared key (PSK)."
+ },
+ "required": {
+ "generic": "A mező kitöltése kötelező.",
+ "managed": "At least one admin key is requred if the node is managed.",
+ "key": "Kulcs megadása kötelező."
+ },
+ "invalidOverrideFreq": {
+ "number": "Invalid format, expected a value in the range 410-930 MHz or 0 (use default)."
+ }
+ },
+ "yes": "Igen",
+ "no": "Nem"
}
diff --git a/packages/web/public/i18n/locales/hu-HU/config.json b/packages/web/public/i18n/locales/hu-HU/config.json
new file mode 100644
index 00000000..b8265de3
--- /dev/null
+++ b/packages/web/public/i18n/locales/hu-HU/config.json
@@ -0,0 +1,458 @@
+{
+ "page": {
+ "title": "Beállítások",
+ "tabUser": "Felhasználó",
+ "tabChannels": "Csatornák",
+ "tabBluetooth": "Bluetooth",
+ "tabDevice": "Eszköz",
+ "tabDisplay": "Kijelző",
+ "tabLora": "LoRa",
+ "tabNetwork": "Hálózat",
+ "tabPosition": "Pozíció",
+ "tabPower": "Energia",
+ "tabSecurity": "Biztonság"
+ },
+ "sidebar": {
+ "label": "Configuration"
+ },
+ "device": {
+ "title": "Device Settings",
+ "description": "Settings for the device",
+ "buttonPin": {
+ "description": "Button pin override",
+ "label": "Button Pin"
+ },
+ "buzzerPin": {
+ "description": "Buzzer pin override",
+ "label": "Buzzer Pin"
+ },
+ "disableTripleClick": {
+ "description": "Disable triple click",
+ "label": "Disable Triple Click"
+ },
+ "doubleTapAsButtonPress": {
+ "description": "Treat double tap as button press",
+ "label": "Double Tap as Button Press"
+ },
+ "ledHeartbeatDisabled": {
+ "description": "Disable default blinking LED",
+ "label": "LED Heartbeat Disabled"
+ },
+ "nodeInfoBroadcastInterval": {
+ "description": "How often to broadcast node info",
+ "label": "Node Info Broadcast Interval"
+ },
+ "posixTimezone": {
+ "description": "The POSIX timezone string for the device",
+ "label": "POSIX időzóna"
+ },
+ "rebroadcastMode": {
+ "description": "How to handle rebroadcasting",
+ "label": "Rebroadcast Mode"
+ },
+ "role": {
+ "description": "What role the device performs on the mesh",
+ "label": "Szerepkör"
+ }
+ },
+ "bluetooth": {
+ "title": "Bluetooth Settings",
+ "description": "Settings for the Bluetooth module",
+ "note": "Note: Some devices (ESP32) cannot use both Bluetooth and WiFi at the same time.",
+ "enabled": {
+ "description": "Enable or disable Bluetooth",
+ "label": "Enabled"
+ },
+ "pairingMode": {
+ "description": "Pin selection behaviour.",
+ "label": "Párosítási mód"
+ },
+ "pin": {
+ "description": "Pin to use when pairing",
+ "label": "Pin"
+ }
+ },
+ "display": {
+ "description": "Settings for the device display",
+ "title": "Display Settings",
+ "headingBold": {
+ "description": "Bolden the heading text",
+ "label": "Bold Heading"
+ },
+ "carouselDelay": {
+ "description": "How fast to cycle through windows",
+ "label": "Carousel Delay"
+ },
+ "compassNorthTop": {
+ "description": "Fix north to the top of compass",
+ "label": "Compass North Top"
+ },
+ "displayMode": {
+ "description": "Screen layout variant",
+ "label": "Display Mode"
+ },
+ "displayUnits": {
+ "description": "Display metric or imperial units",
+ "label": "Display Units"
+ },
+ "flipScreen": {
+ "description": "Flip display 180 degrees",
+ "label": "Flip Screen"
+ },
+ "gpsDisplayUnits": {
+ "description": "Coordinate display format",
+ "label": "GPS Display Units"
+ },
+ "oledType": {
+ "description": "Type of OLED screen attached to the device",
+ "label": "OLED Type"
+ },
+ "screenTimeout": {
+ "description": "Turn off the display after this long",
+ "label": "Screen Timeout"
+ },
+ "twelveHourClock": {
+ "description": "Use 12-hour clock format",
+ "label": "12-Hour Clock"
+ },
+ "wakeOnTapOrMotion": {
+ "description": "Wake the device on tap or motion",
+ "label": "Wake on Tap or Motion"
+ }
+ },
+ "lora": {
+ "title": "Mesh Settings",
+ "description": "Settings for the LoRa mesh",
+ "bandwidth": {
+ "description": "Channel bandwidth in MHz",
+ "label": "Sávszélesség"
+ },
+ "boostedRxGain": {
+ "description": "Boosted RX gain",
+ "label": "Boosted RX Gain"
+ },
+ "codingRate": {
+ "description": "The denominator of the coding rate",
+ "label": "Coding Rate"
+ },
+ "frequencyOffset": {
+ "description": "Frequency offset to correct for crystal calibration errors",
+ "label": "Frequency Offset"
+ },
+ "frequencySlot": {
+ "description": "LoRa frequency channel number",
+ "label": "Frequency Slot"
+ },
+ "hopLimit": {
+ "description": "Maximum number of hops",
+ "label": "Hop Limit"
+ },
+ "ignoreMqtt": {
+ "description": "Don't forward MQTT messages over the mesh",
+ "label": "MQTT figyelmen kívül hagyása"
+ },
+ "modemPreset": {
+ "description": "Modem preset to use",
+ "label": "Modem-előbeállítás"
+ },
+ "okToMqtt": {
+ "description": "When set to true, this configuration indicates that the user approves the packet to be uploaded to MQTT. If set to false, remote nodes are requested not to forward packets to MQTT",
+ "label": "MQTT jóváhagyás"
+ },
+ "overrideDutyCycle": {
+ "description": "Duty Cycle felülbírálása",
+ "label": "Duty Cycle felülbírálása"
+ },
+ "overrideFrequency": {
+ "description": "Override frequency",
+ "label": "Override Frequency"
+ },
+ "region": {
+ "description": "Sets the region for your node",
+ "label": "Régió"
+ },
+ "spreadingFactor": {
+ "description": "Indicates the number of chirps per symbol",
+ "label": "Spreading Factor"
+ },
+ "transmitEnabled": {
+ "description": "Enable/Disable transmit (TX) from the LoRa radio",
+ "label": "Transmit Enabled"
+ },
+ "transmitPower": {
+ "description": "Max transmit power",
+ "label": "Transmit Power"
+ },
+ "usePreset": {
+ "description": "Use one of the predefined modem presets",
+ "label": "Use Preset"
+ },
+ "meshSettings": {
+ "description": "Settings for the LoRa mesh",
+ "label": "Mesh Settings"
+ },
+ "waveformSettings": {
+ "description": "Settings for the LoRa waveform",
+ "label": "Waveform Settings"
+ },
+ "radioSettings": {
+ "label": "Radio Settings",
+ "description": "Settings for the LoRa radio"
+ }
+ },
+ "network": {
+ "title": "WiFi Config",
+ "description": "WiFi radio configuration",
+ "note": "Note: Some devices (ESP32) cannot use both Bluetooth and WiFi at the same time.",
+ "addressMode": {
+ "description": "Address assignment selection",
+ "label": "Address Mode"
+ },
+ "dns": {
+ "description": "DNS Server",
+ "label": "DNS"
+ },
+ "ethernetEnabled": {
+ "description": "Enable or disable the Ethernet port",
+ "label": "Enabled"
+ },
+ "gateway": {
+ "description": "Default Gateway",
+ "label": "Átjáró"
+ },
+ "ip": {
+ "description": "IP Address",
+ "label": "IP"
+ },
+ "psk": {
+ "description": "Network password",
+ "label": "PSK"
+ },
+ "ssid": {
+ "description": "Network name",
+ "label": "SSID"
+ },
+ "subnet": {
+ "description": "Subnet Mask",
+ "label": "Alhálózat"
+ },
+ "wifiEnabled": {
+ "description": "Enable or disable the WiFi radio",
+ "label": "Enabled"
+ },
+ "meshViaUdp": {
+ "label": "Mesh via UDP"
+ },
+ "ntpServer": {
+ "label": "NTP Server"
+ },
+ "rsyslogServer": {
+ "label": "Rsyslog Server"
+ },
+ "ethernetConfigSettings": {
+ "description": "Ethernet port configuration",
+ "label": "Ethernet Config"
+ },
+ "ipConfigSettings": {
+ "description": "IP configuration",
+ "label": "IP Config"
+ },
+ "ntpConfigSettings": {
+ "description": "NTP configuration",
+ "label": "NTP Config"
+ },
+ "rsyslogConfigSettings": {
+ "description": "Rsyslog configuration",
+ "label": "Rsyslog Config"
+ },
+ "udpConfigSettings": {
+ "description": "UDP over Mesh configuration",
+ "label": "UDP-beállítások"
+ }
+ },
+ "position": {
+ "title": "Position Settings",
+ "description": "Settings for the position module",
+ "broadcastInterval": {
+ "description": "How often your position is sent out over the mesh",
+ "label": "Broadcast Interval"
+ },
+ "enablePin": {
+ "description": "GPS module enable pin override",
+ "label": "Enable Pin"
+ },
+ "fixedPosition": {
+ "description": "Don't report GPS position, but a manually-specified one",
+ "label": "Fixed Position"
+ },
+ "gpsMode": {
+ "description": "Configure whether device GPS is Enabled, Disabled, or Not Present",
+ "label": "GPS Mode"
+ },
+ "gpsUpdateInterval": {
+ "description": "How often a GPS fix should be acquired",
+ "label": "GPS Update Interval"
+ },
+ "positionFlags": {
+ "description": "Optional fields to include when assembling position messages. The more fields are selected, the larger the message will be leading to longer airtime usage and a higher risk of packet loss.",
+ "label": "Position Flags"
+ },
+ "receivePin": {
+ "description": "GPS module RX pin override",
+ "label": "Receive Pin"
+ },
+ "smartPositionEnabled": {
+ "description": "Only send position when there has been a meaningful change in location",
+ "label": "Enable Smart Position"
+ },
+ "smartPositionMinDistance": {
+ "description": "Minimum distance (in meters) that must be traveled before a position update is sent",
+ "label": "Smart Position Minimum Distance"
+ },
+ "smartPositionMinInterval": {
+ "description": "Minimum interval (in seconds) that must pass before a position update is sent",
+ "label": "Smart Position Minimum Interval"
+ },
+ "transmitPin": {
+ "description": "GPS module TX pin override",
+ "label": "Transmit Pin"
+ },
+ "intervalsSettings": {
+ "description": "How often to send position updates",
+ "label": "Intervals"
+ },
+ "flags": {
+ "placeholder": "Select position flags...",
+ "altitude": "Altitude",
+ "altitudeGeoidalSeparation": "Altitude Geoidal Separation",
+ "altitudeMsl": "Altitude is Mean Sea Level",
+ "dop": "Dilution of precision (DOP) PDOP used by default",
+ "hdopVdop": "If DOP is set, use HDOP / VDOP values instead of PDOP",
+ "numSatellites": "Number of satellites",
+ "sequenceNumber": "Sequence number",
+ "timestamp": "Időbélyeg",
+ "unset": "Nincs beállítva",
+ "vehicleHeading": "Vehicle heading",
+ "vehicleSpeed": "Vehicle speed"
+ }
+ },
+ "power": {
+ "adcMultiplierOverride": {
+ "description": "Used for tweaking battery voltage reading",
+ "label": "ADC Multiplier Override ratio"
+ },
+ "ina219Address": {
+ "description": "Address of the INA219 battery monitor",
+ "label": "INA219 Address"
+ },
+ "lightSleepDuration": {
+ "description": "How long the device will be in light sleep for",
+ "label": "Light Sleep Duration"
+ },
+ "minimumWakeTime": {
+ "description": "Minimum amount of time the device will stay awake for after receiving a packet",
+ "label": "Minimum Wake Time"
+ },
+ "noConnectionBluetoothDisabled": {
+ "description": "If the device does not receive a Bluetooth connection, the BLE radio will be disabled after this long",
+ "label": "No Connection Bluetooth Disabled"
+ },
+ "powerSavingEnabled": {
+ "description": "Select if powered from a low-current source (i.e. solar), to minimize power consumption as much as possible.",
+ "label": "Energiatakarékos mód engedélyezése"
+ },
+ "shutdownOnBatteryDelay": {
+ "description": "Automatically shutdown node after this long when on battery, 0 for indefinite",
+ "label": "Shutdown on battery delay"
+ },
+ "superDeepSleepDuration": {
+ "description": "How long the device will be in super deep sleep for",
+ "label": "Super Deep Sleep Duration"
+ },
+ "powerConfigSettings": {
+ "description": "Settings for the power module",
+ "label": "Energia-beállítások"
+ },
+ "sleepSettings": {
+ "description": "Sleep settings for the power module",
+ "label": "Sleep Settings"
+ }
+ },
+ "security": {
+ "description": "Settings for the Security configuration",
+ "title": "Security Settings",
+ "button_backupKey": "Backup Key",
+ "adminChannelEnabled": {
+ "description": "Allow incoming device control over the insecure legacy admin channel",
+ "label": "Allow Legacy Admin"
+ },
+ "enableDebugLogApi": {
+ "description": "Output live debug logging over serial, view and export position-redacted device logs over Bluetooth",
+ "label": "Enable Debug Log API"
+ },
+ "managed": {
+ "description": "If enabled, device configuration options are only able to be changed remotely by a Remote Admin node via admin messages. Do not enable this option unless at least one suitable Remote Admin node has been setup, and the public key is stored in one of the fields above.",
+ "label": "Managed"
+ },
+ "privateKey": {
+ "description": "Used to create a shared key with a remote device",
+ "label": "Privát kulcs"
+ },
+ "publicKey": {
+ "description": "Sent out to other nodes on the mesh to allow them to compute a shared secret key",
+ "label": "Nyilvános kulcs"
+ },
+ "primaryAdminKey": {
+ "description": "The primary public key authorized to send admin messages to this node",
+ "label": "Primary Admin Key"
+ },
+ "secondaryAdminKey": {
+ "description": "The secondary public key authorized to send admin messages to this node",
+ "label": "Secondary Admin Key"
+ },
+ "serialOutputEnabled": {
+ "description": "Serial Console over the Stream API",
+ "label": "Serial Output Enabled"
+ },
+ "tertiaryAdminKey": {
+ "description": "The tertiary public key authorized to send admin messages to this node",
+ "label": "Tertiary Admin Key"
+ },
+ "adminSettings": {
+ "description": "Settings for Admin",
+ "label": "Admin Settings"
+ },
+ "loggingSettings": {
+ "description": "Settings for Logging",
+ "label": "Logging Settings"
+ }
+ },
+ "user": {
+ "title": "User Settings",
+ "description": "Configure your device name and identity settings",
+ "longName": {
+ "label": "Long Name",
+ "description": "Your full display name (1-40 characters)",
+ "validation": {
+ "min": "Long name must be at least 1 character",
+ "max": "Long name must be at most 40 characters"
+ }
+ },
+ "shortName": {
+ "label": "Short Name",
+ "description": "Your abbreviated name (2-4 characters)",
+ "validation": {
+ "min": "Short name must be at least 2 characters",
+ "max": "Short name must be at most 4 characters"
+ }
+ },
+ "isUnmessageable": {
+ "label": "Nem üzenetképes",
+ "description": "Used to identify unmonitored or infrastructure nodes so that messaging is not available to nodes that will never respond."
+ },
+ "isLicensed": {
+ "label": "Engedélyezett amatőrrádió (HAM)",
+ "description": "Enable if you are a licensed amateur radio operator, enabling this option disables encryption and is not compatible with the default Meshtastic network."
+ }
+ }
+}
diff --git a/packages/web/public/i18n/locales/hu-HU/dashboard.json b/packages/web/public/i18n/locales/hu-HU/dashboard.json
index 2fdff99f..59aa4b65 100644
--- a/packages/web/public/i18n/locales/hu-HU/dashboard.json
+++ b/packages/web/public/i18n/locales/hu-HU/dashboard.json
@@ -1,12 +1,12 @@
{
- "dashboard": {
- "title": "Connected Devices",
- "description": "Manage your connected Meshtastic devices.",
- "connectionType_ble": "BLE",
- "connectionType_serial": "Soros port",
- "connectionType_network": "Hálózat",
- "noDevicesTitle": "No devices connected",
- "noDevicesDescription": "Connect a new device to get started.",
- "button_newConnection": "New Connection"
- }
+ "dashboard": {
+ "title": "Connected Devices",
+ "description": "Manage your connected Meshtastic devices.",
+ "connectionType_ble": "BLE",
+ "connectionType_serial": "Soros port",
+ "connectionType_network": "Hálózat",
+ "noDevicesTitle": "No devices connected",
+ "noDevicesDescription": "Connect a new device to get started.",
+ "button_newConnection": "New Connection"
+ }
}
diff --git a/packages/web/public/i18n/locales/hu-HU/dialog.json b/packages/web/public/i18n/locales/hu-HU/dialog.json
index 1ecad7d7..ff156dfa 100644
--- a/packages/web/public/i18n/locales/hu-HU/dialog.json
+++ b/packages/web/public/i18n/locales/hu-HU/dialog.json
@@ -1,193 +1,221 @@
{
- "deleteMessages": {
- "description": "This action will clear all message history. This cannot be undone. Are you sure you want to continue?",
- "title": "Clear All Messages"
- },
- "deviceName": {
- "description": "The Device will restart once the config is saved.",
- "longName": "Long Name",
- "shortName": "Short Name",
- "title": "Change Device Name",
- "validation": {
- "longNameMax": "Long name must not be more than 40 characters",
- "shortNameMax": "Short name must not be more than 4 characters",
- "longNameMin": "Long name must have at least 1 character",
- "shortNameMin": "Short name must have at least 1 character"
- }
- },
- "import": {
- "description": "The current LoRa configuration will be overridden.",
- "error": {
- "invalidUrl": "Invalid Meshtastic URL"
- },
- "channelPrefix": "Channel: ",
- "channelSetUrl": "Channel Set/QR Code URL",
- "channels": "Channels:",
- "usePreset": "Use Preset?",
- "title": "Import Channel Set"
- },
- "locationResponse": {
- "title": "Location: {{identifier}}",
- "altitude": "Altitude: ",
- "coordinates": "Coordinates: ",
- "noCoordinates": "No Coordinates"
- },
- "pkiRegenerateDialog": {
- "title": "Regenerate Pre-Shared Key?",
- "description": "Are you sure you want to regenerate the pre-shared key?",
- "regenerate": "Regenerate"
- },
- "newDeviceDialog": {
- "title": "Connect New Device",
- "https": "https",
- "http": "http",
- "tabHttp": "HTTP",
- "tabBluetooth": "Bluetooth",
- "tabSerial": "Soros port",
- "useHttps": "Use HTTPS",
- "connecting": "Connecting...",
- "connect": "Connect",
- "connectionFailedAlert": {
- "title": "Connection Failed",
- "descriptionPrefix": "Could not connect to the device. ",
- "httpsHint": "If using HTTPS, you may need to accept a self-signed certificate first. ",
- "openLinkPrefix": "Please open ",
- "openLinkSuffix": " in a new tab",
- "acceptTlsWarningSuffix": ", accept any TLS warnings if prompted, then try again",
- "learnMoreLink": "Learn more"
- },
- "httpConnection": {
- "label": "IP Address/Hostname",
- "placeholder": "000.000.000.000 / meshtastic.local"
- },
- "serialConnection": {
- "noDevicesPaired": "No devices paired yet.",
- "newDeviceButton": "New device",
- "deviceIdentifier": "# {{index}} - {{vendorId}} - {{productId}}"
- },
- "bluetoothConnection": {
- "noDevicesPaired": "No devices paired yet.",
- "newDeviceButton": "New device",
- "connectionFailed": "Connection failed",
- "deviceDisconnected": "Device disconnected",
- "unknownDevice": "Unknown Device",
- "errorLoadingDevices": "Error loading devices",
- "unknownErrorLoadingDevices": "Unknown error loading devices"
- },
- "validation": {
- "requiresWebBluetooth": "This connection type requires <0>Web Bluetooth0>. Please use a supported browser, like Chrome or Edge.",
- "requiresWebSerial": "This connection type requires <0>Web Serial0>. Please use a supported browser, like Chrome or Edge.",
- "requiresSecureContext": "This application requires a <0>secure context0>. Please connect using HTTPS or localhost.",
- "additionallyRequiresSecureContext": "Additionally, it requires a <0>secure context0>. Please connect using HTTPS or localhost."
- }
- },
- "nodeDetails": {
- "message": "Üzenet",
- "requestPosition": "Request Position",
- "traceRoute": "Trace Route",
- "airTxUtilization": "Air TX utilization",
- "allRawMetrics": "All Raw Metrics:",
- "batteryLevel": "Battery level",
- "channelUtilization": "Channel utilization",
- "details": "Details:",
- "deviceMetrics": "Device Metrics:",
- "hardware": "Hardware: ",
- "lastHeard": "Last Heard: ",
- "nodeHexPrefix": "Node Hex: ",
- "nodeNumber": "Node Number: ",
- "position": "Position:",
- "role": "Role: ",
- "uptime": "Uptime: ",
- "voltage": "Feszültség",
- "title": "Node Details for {{identifier}}",
- "ignoreNode": "Ignore node",
- "removeNode": "Remove node",
- "unignoreNode": "Unignore node",
- "security": "Security:",
- "publicKey": "Public Key: ",
- "messageable": "Messageable: ",
- "KeyManuallyVerifiedTrue": "Public Key has been manually verified",
- "KeyManuallyVerifiedFalse": "Public Key is not manually verified"
- },
- "pkiBackup": {
- "loseKeysWarning": "If you lose your keys, you will need to reset your device.",
- "secureBackup": "Its important to backup your public and private keys and store your backup securely!",
- "footer": "=== END OF KEYS ===",
- "header": "=== MESHTASTIC KEYS FOR {{longName}} ({{shortName}}) ===",
- "privateKey": "Private Key:",
- "publicKey": "Public Key:",
- "fileName": "meshtastic_keys_{{longName}}_{{shortName}}.txt",
- "title": "Backup Keys"
- },
- "pkiBackupReminder": {
- "description": "We recommend backing up your key data regularly. Would you like to back up now?",
- "title": "Backup Reminder",
- "remindLaterPrefix": "Remind me in",
- "remindNever": "Never remind me",
- "backupNow": "Back up now"
- },
- "pkiRegenerate": {
- "description": "Are you sure you want to regenerate key pair?",
- "title": "Regenerate Key Pair"
- },
- "qr": {
- "addChannels": "Add Channels",
- "replaceChannels": "Replace Channels",
- "description": "The current LoRa configuration will also be shared.",
- "sharableUrl": "Sharable URL",
- "title": "Generate QR Code"
- },
- "reboot": {
- "title": "Reboot device",
- "description": "Reboot now or schedule a reboot of the connected node. Optionally, you can choose to reboot into OTA (Over-the-Air) mode.",
- "ota": "Reboot into OTA mode",
- "enterDelay": "Enter delay",
- "scheduled": "Reboot has been scheduled",
- "schedule": "Schedule reboot",
- "now": "Reboot now",
- "cancel": "Cancel scheduled reboot"
- },
- "refreshKeys": {
- "description": {
- "acceptNewKeys": "This will remove the node from device and request new keys.",
- "keyMismatchReasonSuffix": ". This is due to the remote node's current public key does not match the previously stored key for this node.",
- "unableToSendDmPrefix": "Your node is unable to send a direct message to node: "
- },
- "acceptNewKeys": "Accept New Keys",
- "title": "Keys Mismatch - {{identifier}}"
- },
- "removeNode": {
- "description": "Are you sure you want to remove this Node?",
- "title": "Remove Node?"
- },
- "shutdown": {
- "title": "Schedule Shutdown",
- "description": "Turn off the connected node after x minutes."
- },
- "traceRoute": {
- "routeToDestination": "Route to destination:",
- "routeBack": "Route back:"
- },
- "tracerouteResponse": {
- "title": "Traceroute: {{identifier}}"
- },
- "unsafeRoles": {
- "confirmUnderstanding": "Yes, I know what I'm doing",
- "conjunction": " and the blog post about ",
- "postamble": " and understand the implications of changing the role.",
- "preamble": "I have read the ",
- "choosingRightDeviceRole": "Choosing The Right Device Role",
- "deviceRoleDocumentation": "Device Role Documentation",
- "title": "Biztos vagy benne?"
- },
- "managedMode": {
- "confirmUnderstanding": "Yes, I know what I'm doing",
- "title": "Biztos vagy benne?",
- "description": "Enabling Managed Mode blocks client applications (including the web client) from writing configurations to a radio. Once enabled, radio configurations can only be changed through Remote Admin messages. This setting is not required for remote node administration."
- },
- "clientNotification": {
- "title": "Kliens értesítés",
- "TraceRoute can only be sent once every 30 seconds": "TraceRoute can only be sent once every 30 seconds",
- "Compromised keys were detected and regenerated.": "Compromised keys were detected and regenerated."
- }
+ "deleteMessages": {
+ "description": "This action will clear all message history. This cannot be undone. Are you sure you want to continue?",
+ "title": "Clear All Messages"
+ },
+ "deviceName": {
+ "description": "The Device will restart once the config is saved.",
+ "longName": "Long Name",
+ "shortName": "Short Name",
+ "title": "Change Device Name",
+ "validation": {
+ "longNameMax": "Long name must not be more than 40 characters",
+ "shortNameMax": "Short name must not be more than 4 characters",
+ "longNameMin": "Long name must have at least 1 character",
+ "shortNameMin": "Short name must have at least 1 character"
+ }
+ },
+ "import": {
+ "description": "The current LoRa configuration will be overridden.",
+ "error": {
+ "invalidUrl": "Invalid Meshtastic URL"
+ },
+ "channelPrefix": "Channel: ",
+ "primary": "Primary ",
+ "doNotImport": "No not import",
+ "channelName": "Név",
+ "channelSlot": "Sávhely",
+ "channelSetUrl": "Channel Set/QR Code URL",
+ "useLoraConfig": "Import LoRa Config",
+ "presetDescription": "The current LoRa Config will be replaced.",
+ "title": "Import Channel Set"
+ },
+ "locationResponse": {
+ "title": "Location: {{identifier}}",
+ "altitude": "Altitude: ",
+ "coordinates": "Coordinates: ",
+ "noCoordinates": "No Coordinates"
+ },
+ "pkiRegenerateDialog": {
+ "title": "Regenerate Pre-Shared Key?",
+ "description": "Are you sure you want to regenerate the pre-shared key?",
+ "regenerate": "Regenerate"
+ },
+ "newDeviceDialog": {
+ "title": "Connect New Device",
+ "https": "https",
+ "http": "http",
+ "tabHttp": "HTTP",
+ "tabBluetooth": "Bluetooth",
+ "tabSerial": "Soros port",
+ "useHttps": "Use HTTPS",
+ "connecting": "Connecting...",
+ "connect": "Connect",
+ "connectionFailedAlert": {
+ "title": "Connection Failed",
+ "descriptionPrefix": "Could not connect to the device. ",
+ "httpsHint": "If using HTTPS, you may need to accept a self-signed certificate first. ",
+ "openLinkPrefix": "Please open ",
+ "openLinkSuffix": " in a new tab",
+ "acceptTlsWarningSuffix": ", accept any TLS warnings if prompted, then try again",
+ "learnMoreLink": "Learn more"
+ },
+ "httpConnection": {
+ "label": "IP Address/Hostname",
+ "placeholder": "000.000.000.000 / meshtastic.local"
+ },
+ "serialConnection": {
+ "noDevicesPaired": "No devices paired yet.",
+ "newDeviceButton": "New device",
+ "deviceIdentifier": "# {{index}} - {{vendorId}} - {{productId}}"
+ },
+ "bluetoothConnection": {
+ "noDevicesPaired": "No devices paired yet.",
+ "newDeviceButton": "New device",
+ "connectionFailed": "Connection failed",
+ "deviceDisconnected": "Device disconnected",
+ "unknownDevice": "Unknown Device",
+ "errorLoadingDevices": "Error loading devices",
+ "unknownErrorLoadingDevices": "Unknown error loading devices"
+ },
+ "validation": {
+ "requiresWebBluetooth": "This connection type requires <0>Web Bluetooth0>. Please use a supported browser, like Chrome or Edge.",
+ "requiresWebSerial": "This connection type requires <0>Web Serial0>. Please use a supported browser, like Chrome or Edge.",
+ "requiresSecureContext": "This application requires a <0>secure context0>. Please connect using HTTPS or localhost.",
+ "additionallyRequiresSecureContext": "Additionally, it requires a <0>secure context0>. Please connect using HTTPS or localhost."
+ }
+ },
+ "nodeDetails": {
+ "message": "Üzenet",
+ "requestPosition": "Request Position",
+ "traceRoute": "Trace Route",
+ "airTxUtilization": "Air TX utilization",
+ "allRawMetrics": "All Raw Metrics:",
+ "batteryLevel": "Battery level",
+ "channelUtilization": "Channel utilization",
+ "details": "Details:",
+ "deviceMetrics": "Device Metrics:",
+ "hardware": "Hardware: ",
+ "lastHeard": "Last Heard: ",
+ "nodeHexPrefix": "Node Hex: ",
+ "nodeNumber": "Node Number: ",
+ "position": "Position:",
+ "role": "Role: ",
+ "uptime": "Uptime: ",
+ "voltage": "Feszültség",
+ "title": "Node Details for {{identifier}}",
+ "ignoreNode": "Ignore node",
+ "removeNode": "Remove node",
+ "unignoreNode": "Unignore node",
+ "security": "Security:",
+ "publicKey": "Public Key: ",
+ "messageable": "Messageable: ",
+ "KeyManuallyVerifiedTrue": "Public Key has been manually verified",
+ "KeyManuallyVerifiedFalse": "Public Key is not manually verified"
+ },
+ "pkiBackup": {
+ "loseKeysWarning": "If you lose your keys, you will need to reset your device.",
+ "secureBackup": "Its important to backup your public and private keys and store your backup securely!",
+ "footer": "=== END OF KEYS ===",
+ "header": "=== MESHTASTIC KEYS FOR {{longName}} ({{shortName}}) ===",
+ "privateKey": "Private Key:",
+ "publicKey": "Public Key:",
+ "fileName": "meshtastic_keys_{{longName}}_{{shortName}}.txt",
+ "title": "Backup Keys"
+ },
+ "pkiBackupReminder": {
+ "description": "We recommend backing up your key data regularly. Would you like to back up now?",
+ "title": "Backup Reminder",
+ "remindLaterPrefix": "Remind me in",
+ "remindNever": "Never remind me",
+ "backupNow": "Back up now"
+ },
+ "pkiRegenerate": {
+ "description": "Are you sure you want to regenerate key pair?",
+ "title": "Regenerate Key Pair"
+ },
+ "qr": {
+ "addChannels": "Add Channels",
+ "replaceChannels": "Replace Channels",
+ "description": "The current LoRa configuration will also be shared.",
+ "sharableUrl": "Sharable URL",
+ "title": "Generate QR Code"
+ },
+ "reboot": {
+ "title": "Reboot device",
+ "description": "Reboot now or schedule a reboot of the connected node. Optionally, you can choose to reboot into OTA (Over-the-Air) mode.",
+ "ota": "Reboot into OTA mode",
+ "enterDelay": "Enter delay",
+ "scheduled": "Reboot has been scheduled",
+ "schedule": "Schedule reboot",
+ "now": "Reboot now",
+ "cancel": "Cancel scheduled reboot"
+ },
+ "refreshKeys": {
+ "description": {
+ "acceptNewKeys": "This will remove the node from device and request new keys.",
+ "keyMismatchReasonSuffix": ". This is due to the remote node's current public key does not match the previously stored key for this node.",
+ "unableToSendDmPrefix": "Your node is unable to send a direct message to node: "
+ },
+ "acceptNewKeys": "Accept New Keys",
+ "title": "Keys Mismatch - {{identifier}}"
+ },
+ "removeNode": {
+ "description": "Are you sure you want to remove this Node?",
+ "title": "Remove Node?"
+ },
+ "shutdown": {
+ "title": "Schedule Shutdown",
+ "description": "Turn off the connected node after x minutes."
+ },
+ "traceRoute": {
+ "routeToDestination": "Route to destination:",
+ "routeBack": "Route back:"
+ },
+ "tracerouteResponse": {
+ "title": "Traceroute: {{identifier}}"
+ },
+ "unsafeRoles": {
+ "confirmUnderstanding": "Yes, I know what I'm doing",
+ "conjunction": " and the blog post about ",
+ "postamble": " and understand the implications of changing the role.",
+ "preamble": "I have read the ",
+ "choosingRightDeviceRole": "Choosing The Right Device Role",
+ "deviceRoleDocumentation": "Device Role Documentation",
+ "title": "Biztos vagy benne?"
+ },
+ "managedMode": {
+ "confirmUnderstanding": "Yes, I know what I'm doing",
+ "title": "Biztos vagy benne?",
+ "description": "Enabling Managed Mode blocks client applications (including the web client) from writing configurations to a radio. Once enabled, radio configurations can only be changed through Remote Admin messages. This setting is not required for remote node administration."
+ },
+ "clientNotification": {
+ "title": "Kliens értesítés",
+ "TraceRoute can only be sent once every 30 seconds": "TraceRoute can only be sent once every 30 seconds",
+ "Compromised keys were detected and regenerated.": "Compromised keys were detected and regenerated."
+ },
+ "resetNodeDb": {
+ "title": "Reset Node Database",
+ "description": "This will clear all nodes from the connected device's node database and clear all message history in the client. This cannot be undone. Are you sure you want to continue?",
+ "confirm": "Reset Node Database",
+ "failedTitle": "There was an error resetting the Node DB. Please try again."
+ },
+ "clearAllStores": {
+ "title": "Clear All Local Storage",
+ "description": "This will clear all locally stored data, including message history and node databases for all previously connected devices. This will require you to reconnect to your node once complete and cannot be undone. Are you sure you want to continue?",
+ "confirm": "Clear all local storage",
+ "failedTitle": "There was an error clearing local storage. Please try again."
+ },
+ "factoryResetDevice": {
+ "title": "Factory Reset Device",
+ "description": "This will factory reset the connected device, erasing all configurations and data on the device as well as all nodes and messages saved in the client. This cannot be undone. Are you sure you want to continue?",
+ "confirm": "Factory Reset Device",
+ "failedTitle": "There was an error performing the factory reset. Please try again."
+ },
+ "factoryResetConfig": {
+ "title": "Factory Reset Config",
+ "description": "This will factory reset the configuration on the connected device, erasing all configurations on the device. This cannot be undone. Are you sure you want to continue?",
+ "confirm": "Factory Reset Config",
+ "failedTitle": "There was an error performing the factory reset. Please try again."
+ }
}
diff --git a/packages/web/public/i18n/locales/hu-HU/map.json b/packages/web/public/i18n/locales/hu-HU/map.json
new file mode 100644
index 00000000..a533be1b
--- /dev/null
+++ b/packages/web/public/i18n/locales/hu-HU/map.json
@@ -0,0 +1,38 @@
+{
+ "maplibre": {
+ "GeolocateControl.FindMyLocation": "Find my location",
+ "NavigationControl.ZoomIn": "Zoom in",
+ "NavigationControl.ZoomOut": "Zoom out",
+ "CooperativeGesturesHandler.WindowsHelpText": "Use Ctrl + scroll to zoom the map",
+ "CooperativeGesturesHandler.MacHelpText": "Use ⌘ + scroll to zoom the map",
+ "CooperativeGesturesHandler.MobileHelpText": "Use two fingers to move the map"
+ },
+ "layerTool": {
+ "nodeMarkers": "Show nodes",
+ "directNeighbors": "Show direct connections",
+ "remoteNeighbors": "Show remote connections",
+ "positionPrecision": "Show position precision",
+ "traceroutes": "Show traceroutes",
+ "waypoints": "Show waypoints"
+ },
+ "mapMenu": {
+ "locateAria": "Locate my node",
+ "layersAria": "Change map style"
+ },
+ "waypointDetail": {
+ "edit": "Szerkesztés",
+ "description": "Description:",
+ "createdBy": "Edited by:",
+ "createdDate": "Created:",
+ "updated": "Updated:",
+ "expires": "Expires:",
+ "distance": "Distance:",
+ "bearing": "Absolute bearing:",
+ "lockedTo": "Locked by:",
+ "latitude": "Latitude:",
+ "longitude": "Longitude:"
+ },
+ "myNode": {
+ "tooltip": "This device"
+ }
+}
diff --git a/packages/web/public/i18n/locales/hu-HU/messages.json b/packages/web/public/i18n/locales/hu-HU/messages.json
index a98b6046..f1d65c73 100644
--- a/packages/web/public/i18n/locales/hu-HU/messages.json
+++ b/packages/web/public/i18n/locales/hu-HU/messages.json
@@ -1,39 +1,39 @@
{
- "page": {
- "title": "Messages: {{chatName}}",
- "placeholder": "Enter Message"
- },
- "emptyState": {
- "title": "Select a Chat",
- "text": "No messages yet."
- },
- "selectChatPrompt": {
- "text": "Select a channel or node to start messaging."
- },
- "sendMessage": {
- "placeholder": "Enter your message here...",
- "sendButton": "Küldeni"
- },
- "actionsMenu": {
- "addReactionLabel": "Add Reaction",
- "replyLabel": "Válasz"
- },
- "deliveryStatus": {
- "delivered": {
- "label": "Message delivered",
- "displayText": "Message delivered"
- },
- "failed": {
- "label": "Message delivery failed",
- "displayText": "Delivery failed"
- },
- "unknown": {
- "label": "Message status unknown",
- "displayText": "Unknown state"
- },
- "waiting": {
- "label": "Sending message",
- "displayText": "Waiting for delivery"
- }
- }
+ "page": {
+ "title": "Messages: {{chatName}}",
+ "placeholder": "Enter Message"
+ },
+ "emptyState": {
+ "title": "Select a Chat",
+ "text": "No messages yet."
+ },
+ "selectChatPrompt": {
+ "text": "Select a channel or node to start messaging."
+ },
+ "sendMessage": {
+ "placeholder": "Enter your message here...",
+ "sendButton": "Küldeni"
+ },
+ "actionsMenu": {
+ "addReactionLabel": "Add Reaction",
+ "replyLabel": "Válasz"
+ },
+ "deliveryStatus": {
+ "delivered": {
+ "label": "Message delivered",
+ "displayText": "Message delivered"
+ },
+ "failed": {
+ "label": "Message delivery failed",
+ "displayText": "Delivery failed"
+ },
+ "unknown": {
+ "label": "Message status unknown",
+ "displayText": "Unknown state"
+ },
+ "waiting": {
+ "label": "Sending message",
+ "displayText": "Waiting for delivery"
+ }
+ }
}
diff --git a/packages/web/public/i18n/locales/hu-HU/moduleConfig.json b/packages/web/public/i18n/locales/hu-HU/moduleConfig.json
index 24a37808..dad63d8d 100644
--- a/packages/web/public/i18n/locales/hu-HU/moduleConfig.json
+++ b/packages/web/public/i18n/locales/hu-HU/moduleConfig.json
@@ -1,448 +1,448 @@
{
- "page": {
- "tabAmbientLighting": "Környezeti fény",
- "tabAudio": "Hang",
- "tabCannedMessage": "Canned",
- "tabDetectionSensor": "Érzékelő szenzor",
- "tabExternalNotification": "Ext Notif",
- "tabMqtt": "MQTT",
- "tabNeighborInfo": "Szomszéd-információ",
- "tabPaxcounter": "PaxCounter",
- "tabRangeTest": "Hatótáv-teszt",
- "tabSerial": "Soros port",
- "tabStoreAndForward": "S&F",
- "tabTelemetry": "Telemetria"
- },
- "ambientLighting": {
- "title": "Ambient Lighting Settings",
- "description": "Settings for the Ambient Lighting module",
- "ledState": {
- "label": "LED State",
- "description": "Sets LED to on or off"
- },
- "current": {
- "label": "Áramerősség",
- "description": "Sets the current for the LED output. Default is 10"
- },
- "red": {
- "label": "Piros",
- "description": "Sets the red LED level. Values are 0-255"
- },
- "green": {
- "label": "Zöld",
- "description": "Sets the green LED level. Values are 0-255"
- },
- "blue": {
- "label": "Kék",
- "description": "Sets the blue LED level. Values are 0-255"
- }
- },
- "audio": {
- "title": "Audio Settings",
- "description": "Settings for the Audio module",
- "codec2Enabled": {
- "label": "Codec 2 Enabled",
- "description": "Enable Codec 2 audio encoding"
- },
- "pttPin": {
- "label": "PTT Pin",
- "description": "GPIO pin to use for PTT"
- },
- "bitrate": {
- "label": "Bitrate",
- "description": "Bitrate to use for audio encoding"
- },
- "i2sWs": {
- "label": "i2S WS",
- "description": "GPIO pin to use for i2S WS"
- },
- "i2sSd": {
- "label": "i2S SD",
- "description": "GPIO pin to use for i2S SD"
- },
- "i2sDin": {
- "label": "i2S DIN",
- "description": "GPIO pin to use for i2S DIN"
- },
- "i2sSck": {
- "label": "i2S SCK",
- "description": "GPIO pin to use for i2S SCK"
- }
- },
- "cannedMessage": {
- "title": "Canned Message Settings",
- "description": "Settings for the Canned Message module",
- "moduleEnabled": {
- "label": "Module Enabled",
- "description": "Enable Canned Message"
- },
- "rotary1Enabled": {
- "label": "Rotary Encoder #1 Enabled",
- "description": "Enable the rotary encoder"
- },
- "inputbrokerPinA": {
- "label": "Encoder Pin A",
- "description": "GPIO Pin Value (1-39) For encoder port A"
- },
- "inputbrokerPinB": {
- "label": "Encoder Pin B",
- "description": "GPIO Pin Value (1-39) For encoder port B"
- },
- "inputbrokerPinPress": {
- "label": "Encoder Pin Press",
- "description": "GPIO Pin Value (1-39) For encoder Press"
- },
- "inputbrokerEventCw": {
- "label": "Clockwise event",
- "description": "Select input event."
- },
- "inputbrokerEventCcw": {
- "label": "Counter Clockwise event",
- "description": "Select input event."
- },
- "inputbrokerEventPress": {
- "label": "Press event",
- "description": "Select input event"
- },
- "updown1Enabled": {
- "label": "Up Down enabled",
- "description": "Enable the up / down encoder"
- },
- "allowInputSource": {
- "label": "Allow Input Source",
- "description": "Select from: '_any', 'rotEnc1', 'upDownEnc1', 'cardkb'"
- },
- "sendBell": {
- "label": "Send Bell",
- "description": "Sends a bell character with each message"
- }
- },
- "detectionSensor": {
- "title": "Detection Sensor Settings",
- "description": "Settings for the Detection Sensor module",
- "enabled": {
- "label": "Enabled",
- "description": "Enable or disable Detection Sensor Module"
- },
- "minimumBroadcastSecs": {
- "label": "Minimum Broadcast Seconds",
- "description": "The interval in seconds of how often we can send a message to the mesh when a state change is detected"
- },
- "stateBroadcastSecs": {
- "label": "State Broadcast Seconds",
- "description": "The interval in seconds of how often we should send a message to the mesh with the current state regardless of changes"
- },
- "sendBell": {
- "label": "Send Bell",
- "description": "Send ASCII bell with alert message"
- },
- "name": {
- "label": "Friendly Name",
- "description": "Used to format the message sent to mesh, max 20 Characters"
- },
- "monitorPin": {
- "label": "Monitor Pin",
- "description": "The GPIO pin to monitor for state changes"
- },
- "detectionTriggerType": {
- "label": "Detection Triggered Type",
- "description": "The type of trigger event to be used"
- },
- "usePullup": {
- "label": "Use Pullup",
- "description": "Whether or not use INPUT_PULLUP mode for GPIO pin"
- }
- },
- "externalNotification": {
- "title": "External Notification Settings",
- "description": "Configure the external notification module",
- "enabled": {
- "label": "Module Enabled",
- "description": "Enable External Notification"
- },
- "outputMs": {
- "label": "Output MS",
- "description": "Output MS"
- },
- "output": {
- "label": "Output",
- "description": "Output"
- },
- "outputVibra": {
- "label": "Output Vibrate",
- "description": "Output Vibrate"
- },
- "outputBuzzer": {
- "label": "Output Buzzer",
- "description": "Output Buzzer"
- },
- "active": {
- "label": "Active",
- "description": "Active"
- },
- "alertMessage": {
- "label": "Alert Message",
- "description": "Alert Message"
- },
- "alertMessageVibra": {
- "label": "Alert Message Vibrate",
- "description": "Alert Message Vibrate"
- },
- "alertMessageBuzzer": {
- "label": "Alert Message Buzzer",
- "description": "Alert Message Buzzer"
- },
- "alertBell": {
- "label": "Alert Bell",
- "description": "Should an alert be triggered when receiving an incoming bell?"
- },
- "alertBellVibra": {
- "label": "Alert Bell Vibrate",
- "description": "Alert Bell Vibrate"
- },
- "alertBellBuzzer": {
- "label": "Alert Bell Buzzer",
- "description": "Alert Bell Buzzer"
- },
- "usePwm": {
- "label": "Use PWM",
- "description": "Use PWM"
- },
- "nagTimeout": {
- "label": "Nag Timeout",
- "description": "Nag Timeout"
- },
- "useI2sAsBuzzer": {
- "label": "Use I²S Pin as Buzzer",
- "description": "Designate I²S Pin as Buzzer Output"
- }
- },
- "mqtt": {
- "title": "MQTT Settings",
- "description": "Settings for the MQTT module",
- "enabled": {
- "label": "Enabled",
- "description": "Enable or disable MQTT"
- },
- "address": {
- "label": "MQTT Server Address",
- "description": "MQTT server address to use for default/custom servers"
- },
- "username": {
- "label": "MQTT Username",
- "description": "MQTT username to use for default/custom servers"
- },
- "password": {
- "label": "MQTT Password",
- "description": "MQTT password to use for default/custom servers"
- },
- "encryptionEnabled": {
- "label": "Encryption Enabled",
- "description": "Enable or disable MQTT encryption. Note: All messages are sent to the MQTT broker unencrypted if this option is not enabled, even when your uplink channels have encryption keys set. This includes position data."
- },
- "jsonEnabled": {
- "label": "JSON Enabled",
- "description": "Whether to send/consume JSON packets on MQTT"
- },
- "tlsEnabled": {
- "label": "TLS Enabled",
- "description": "Enable or disable TLS"
- },
- "root": {
- "label": "Gyökér téma",
- "description": "MQTT root topic to use for default/custom servers"
- },
- "proxyToClientEnabled": {
- "label": "MQTT Client Proxy Enabled",
- "description": "Utilizes the network connection to proxy MQTT messages to the client."
- },
- "mapReportingEnabled": {
- "label": "Map Reporting Enabled",
- "description": "Your node will periodically send an unencrypted map report packet to the configured MQTT server, this includes id, short and long name, approximate location, hardware model, role, firmware version, LoRa region, modem preset and primary channel name."
- },
- "mapReportSettings": {
- "publishIntervalSecs": {
- "label": "Map Report Publish Interval (s)",
- "description": "Interval in seconds to publish map reports"
- },
- "positionPrecision": {
- "label": "Approximate Location",
- "description": "Position shared will be accurate within this distance",
- "options": {
- "metric_km23": "Within 23 km",
- "metric_km12": "Within 12 km",
- "metric_km5_8": "Within 5.8 km",
- "metric_km2_9": "Within 2.9 km",
- "metric_km1_5": "Within 1.5 km",
- "metric_m700": "Within 700 m",
- "metric_m350": "Within 350 m",
- "metric_m200": "Within 200 m",
- "metric_m90": "Within 90 m",
- "metric_m50": "Within 50 m",
- "imperial_mi15": "Within 15 miles",
- "imperial_mi7_3": "Within 7.3 miles",
- "imperial_mi3_6": "Within 3.6 miles",
- "imperial_mi1_8": "Within 1.8 miles",
- "imperial_mi0_9": "Within 0.9 miles",
- "imperial_mi0_5": "Within 0.5 miles",
- "imperial_mi0_2": "Within 0.2 miles",
- "imperial_ft600": "Within 600 feet",
- "imperial_ft300": "Within 300 feet",
- "imperial_ft150": "Within 150 feet"
- }
- }
- }
- },
- "neighborInfo": {
- "title": "Neighbor Info Settings",
- "description": "Settings for the Neighbor Info module",
- "enabled": {
- "label": "Enabled",
- "description": "Enable or disable Neighbor Info Module"
- },
- "updateInterval": {
- "label": "Update Interval",
- "description": "Interval in seconds of how often we should try to send our Neighbor Info to the mesh"
- }
- },
- "paxcounter": {
- "title": "Paxcounter Settings",
- "description": "Settings for the Paxcounter module",
- "enabled": {
- "label": "Module Enabled",
- "description": "Enable Paxcounter"
- },
- "paxcounterUpdateInterval": {
- "label": "Update Interval (seconds)",
- "description": "How long to wait between sending paxcounter packets"
- },
- "wifiThreshold": {
- "label": "WiFi RSSI Threshold",
- "description": "At what WiFi RSSI level should the counter increase. Defaults to -80."
- },
- "bleThreshold": {
- "label": "BLE RSSI Threshold",
- "description": "At what BLE RSSI level should the counter increase. Defaults to -80."
- }
- },
- "rangeTest": {
- "title": "Range Test Settings",
- "description": "Settings for the Range Test module",
- "enabled": {
- "label": "Module Enabled",
- "description": "Enable Range Test"
- },
- "sender": {
- "label": "Message Interval",
- "description": "How long to wait between sending test packets"
- },
- "save": {
- "label": "Save CSV to storage",
- "description": "ESP32 Only"
- }
- },
- "serial": {
- "title": "Serial Settings",
- "description": "Settings for the Serial module",
- "enabled": {
- "label": "Module Enabled",
- "description": "Enable Serial output"
- },
- "echo": {
- "label": "Echo",
- "description": "Any packets you send will be echoed back to your device"
- },
- "rxd": {
- "label": "Receive Pin",
- "description": "Set the GPIO pin to the RXD pin you have set up."
- },
- "txd": {
- "label": "Transmit Pin",
- "description": "Set the GPIO pin to the TXD pin you have set up."
- },
- "baud": {
- "label": "Baud Rate",
- "description": "The serial baud rate"
- },
- "timeout": {
- "label": "Időtúllépés",
- "description": "Seconds to wait before we consider your packet as 'done'"
- },
- "mode": {
- "label": "Mode",
- "description": "Select Mode"
- },
- "overrideConsoleSerialPort": {
- "label": "Override Console Serial Port",
- "description": "If you have a serial port connected to the console, this will override it."
- }
- },
- "storeForward": {
- "title": "Store & Forward Settings",
- "description": "Settings for the Store & Forward module",
- "enabled": {
- "label": "Module Enabled",
- "description": "Enable Store & Forward"
- },
- "heartbeat": {
- "label": "Heartbeat Enabled",
- "description": "Enable Store & Forward heartbeat"
- },
- "records": {
- "label": "Rekordok száma",
- "description": "Number of records to store"
- },
- "historyReturnMax": {
- "label": "Előzmény-visszaadás maximum",
- "description": "Max number of records to return"
- },
- "historyReturnWindow": {
- "label": "Előzmény-visszaadás időablak",
- "description": "Return records from this time window (minutes)"
- }
- },
- "telemetry": {
- "title": "Telemetry Settings",
- "description": "Settings for the Telemetry module",
- "deviceUpdateInterval": {
- "label": "Device Metrics",
- "description": "Eszközmetrikák frissítési intervalluma (másodperc)"
- },
- "environmentUpdateInterval": {
- "label": "Környezeti metrikák frissítési intervalluma (másodperc)",
- "description": ""
- },
- "environmentMeasurementEnabled": {
- "label": "Module Enabled",
- "description": "Enable the Environment Telemetry"
- },
- "environmentScreenEnabled": {
- "label": "Displayed on Screen",
- "description": "Show the Telemetry Module on the OLED"
- },
- "environmentDisplayFahrenheit": {
- "label": "Display Fahrenheit",
- "description": "Display temp in Fahrenheit"
- },
- "airQualityEnabled": {
- "label": "Air Quality Enabled",
- "description": "Enable the Air Quality Telemetry"
- },
- "airQualityInterval": {
- "label": "Air Quality Update Interval",
- "description": "How often to send Air Quality data over the mesh"
- },
- "powerMeasurementEnabled": {
- "label": "Power Measurement Enabled",
- "description": "Enable the Power Measurement Telemetry"
- },
- "powerUpdateInterval": {
- "label": "Power Update Interval",
- "description": "How often to send Power data over the mesh"
- },
- "powerScreenEnabled": {
- "label": "Power Screen Enabled",
- "description": "Enable the Power Telemetry Screen"
- }
- }
+ "page": {
+ "tabAmbientLighting": "Környezeti fény",
+ "tabAudio": "Hang",
+ "tabCannedMessage": "Canned",
+ "tabDetectionSensor": "Érzékelő szenzor",
+ "tabExternalNotification": "Ext Notif",
+ "tabMqtt": "MQTT",
+ "tabNeighborInfo": "Szomszéd-információ",
+ "tabPaxcounter": "PaxCounter",
+ "tabRangeTest": "Hatótáv-teszt",
+ "tabSerial": "Soros port",
+ "tabStoreAndForward": "S&F",
+ "tabTelemetry": "Telemetria"
+ },
+ "ambientLighting": {
+ "title": "Ambient Lighting Settings",
+ "description": "Settings for the Ambient Lighting module",
+ "ledState": {
+ "label": "LED State",
+ "description": "Sets LED to on or off"
+ },
+ "current": {
+ "label": "Áramerősség",
+ "description": "Sets the current for the LED output. Default is 10"
+ },
+ "red": {
+ "label": "Piros",
+ "description": "Sets the red LED level. Values are 0-255"
+ },
+ "green": {
+ "label": "Zöld",
+ "description": "Sets the green LED level. Values are 0-255"
+ },
+ "blue": {
+ "label": "Kék",
+ "description": "Sets the blue LED level. Values are 0-255"
+ }
+ },
+ "audio": {
+ "title": "Audio Settings",
+ "description": "Settings for the Audio module",
+ "codec2Enabled": {
+ "label": "Codec 2 Enabled",
+ "description": "Enable Codec 2 audio encoding"
+ },
+ "pttPin": {
+ "label": "PTT Pin",
+ "description": "GPIO pin to use for PTT"
+ },
+ "bitrate": {
+ "label": "Bitrate",
+ "description": "Bitrate to use for audio encoding"
+ },
+ "i2sWs": {
+ "label": "i2S WS",
+ "description": "GPIO pin to use for i2S WS"
+ },
+ "i2sSd": {
+ "label": "i2S SD",
+ "description": "GPIO pin to use for i2S SD"
+ },
+ "i2sDin": {
+ "label": "i2S DIN",
+ "description": "GPIO pin to use for i2S DIN"
+ },
+ "i2sSck": {
+ "label": "i2S SCK",
+ "description": "GPIO pin to use for i2S SCK"
+ }
+ },
+ "cannedMessage": {
+ "title": "Canned Message Settings",
+ "description": "Settings for the Canned Message module",
+ "moduleEnabled": {
+ "label": "Module Enabled",
+ "description": "Enable Canned Message"
+ },
+ "rotary1Enabled": {
+ "label": "Rotary Encoder #1 Enabled",
+ "description": "Enable the rotary encoder"
+ },
+ "inputbrokerPinA": {
+ "label": "Encoder Pin A",
+ "description": "GPIO Pin Value (1-39) For encoder port A"
+ },
+ "inputbrokerPinB": {
+ "label": "Encoder Pin B",
+ "description": "GPIO Pin Value (1-39) For encoder port B"
+ },
+ "inputbrokerPinPress": {
+ "label": "Encoder Pin Press",
+ "description": "GPIO Pin Value (1-39) For encoder Press"
+ },
+ "inputbrokerEventCw": {
+ "label": "Clockwise event",
+ "description": "Select input event."
+ },
+ "inputbrokerEventCcw": {
+ "label": "Counter Clockwise event",
+ "description": "Select input event."
+ },
+ "inputbrokerEventPress": {
+ "label": "Press event",
+ "description": "Select input event"
+ },
+ "updown1Enabled": {
+ "label": "Up Down enabled",
+ "description": "Enable the up / down encoder"
+ },
+ "allowInputSource": {
+ "label": "Allow Input Source",
+ "description": "Select from: '_any', 'rotEnc1', 'upDownEnc1', 'cardkb'"
+ },
+ "sendBell": {
+ "label": "Send Bell",
+ "description": "Sends a bell character with each message"
+ }
+ },
+ "detectionSensor": {
+ "title": "Detection Sensor Settings",
+ "description": "Settings for the Detection Sensor module",
+ "enabled": {
+ "label": "Enabled",
+ "description": "Enable or disable Detection Sensor Module"
+ },
+ "minimumBroadcastSecs": {
+ "label": "Minimum Broadcast Seconds",
+ "description": "The interval in seconds of how often we can send a message to the mesh when a state change is detected"
+ },
+ "stateBroadcastSecs": {
+ "label": "State Broadcast Seconds",
+ "description": "The interval in seconds of how often we should send a message to the mesh with the current state regardless of changes"
+ },
+ "sendBell": {
+ "label": "Send Bell",
+ "description": "Send ASCII bell with alert message"
+ },
+ "name": {
+ "label": "Friendly Name",
+ "description": "Used to format the message sent to mesh, max 20 Characters"
+ },
+ "monitorPin": {
+ "label": "Monitor Pin",
+ "description": "The GPIO pin to monitor for state changes"
+ },
+ "detectionTriggerType": {
+ "label": "Detection Triggered Type",
+ "description": "The type of trigger event to be used"
+ },
+ "usePullup": {
+ "label": "Use Pullup",
+ "description": "Whether or not use INPUT_PULLUP mode for GPIO pin"
+ }
+ },
+ "externalNotification": {
+ "title": "External Notification Settings",
+ "description": "Configure the external notification module",
+ "enabled": {
+ "label": "Module Enabled",
+ "description": "Enable External Notification"
+ },
+ "outputMs": {
+ "label": "Output MS",
+ "description": "Output MS"
+ },
+ "output": {
+ "label": "Output",
+ "description": "Output"
+ },
+ "outputVibra": {
+ "label": "Output Vibrate",
+ "description": "Output Vibrate"
+ },
+ "outputBuzzer": {
+ "label": "Output Buzzer",
+ "description": "Output Buzzer"
+ },
+ "active": {
+ "label": "Active",
+ "description": "Active"
+ },
+ "alertMessage": {
+ "label": "Alert Message",
+ "description": "Alert Message"
+ },
+ "alertMessageVibra": {
+ "label": "Alert Message Vibrate",
+ "description": "Alert Message Vibrate"
+ },
+ "alertMessageBuzzer": {
+ "label": "Alert Message Buzzer",
+ "description": "Alert Message Buzzer"
+ },
+ "alertBell": {
+ "label": "Alert Bell",
+ "description": "Should an alert be triggered when receiving an incoming bell?"
+ },
+ "alertBellVibra": {
+ "label": "Alert Bell Vibrate",
+ "description": "Alert Bell Vibrate"
+ },
+ "alertBellBuzzer": {
+ "label": "Alert Bell Buzzer",
+ "description": "Alert Bell Buzzer"
+ },
+ "usePwm": {
+ "label": "Use PWM",
+ "description": "Use PWM"
+ },
+ "nagTimeout": {
+ "label": "Nag Timeout",
+ "description": "Nag Timeout"
+ },
+ "useI2sAsBuzzer": {
+ "label": "Use I²S Pin as Buzzer",
+ "description": "Designate I²S Pin as Buzzer Output"
+ }
+ },
+ "mqtt": {
+ "title": "MQTT Settings",
+ "description": "Settings for the MQTT module",
+ "enabled": {
+ "label": "Enabled",
+ "description": "Enable or disable MQTT"
+ },
+ "address": {
+ "label": "MQTT Server Address",
+ "description": "MQTT server address to use for default/custom servers"
+ },
+ "username": {
+ "label": "MQTT Username",
+ "description": "MQTT username to use for default/custom servers"
+ },
+ "password": {
+ "label": "MQTT Password",
+ "description": "MQTT password to use for default/custom servers"
+ },
+ "encryptionEnabled": {
+ "label": "Encryption Enabled",
+ "description": "Enable or disable MQTT encryption. Note: All messages are sent to the MQTT broker unencrypted if this option is not enabled, even when your uplink channels have encryption keys set. This includes position data."
+ },
+ "jsonEnabled": {
+ "label": "JSON Enabled",
+ "description": "Whether to send/consume JSON packets on MQTT"
+ },
+ "tlsEnabled": {
+ "label": "TLS Enabled",
+ "description": "Enable or disable TLS"
+ },
+ "root": {
+ "label": "Gyökér téma",
+ "description": "MQTT root topic to use for default/custom servers"
+ },
+ "proxyToClientEnabled": {
+ "label": "MQTT Client Proxy Enabled",
+ "description": "Utilizes the network connection to proxy MQTT messages to the client."
+ },
+ "mapReportingEnabled": {
+ "label": "Map Reporting Enabled",
+ "description": "Your node will periodically send an unencrypted map report packet to the configured MQTT server, this includes id, short and long name, approximate location, hardware model, role, firmware version, LoRa region, modem preset and primary channel name."
+ },
+ "mapReportSettings": {
+ "publishIntervalSecs": {
+ "label": "Map Report Publish Interval (s)",
+ "description": "Interval in seconds to publish map reports"
+ },
+ "positionPrecision": {
+ "label": "Approximate Location",
+ "description": "Position shared will be accurate within this distance",
+ "options": {
+ "metric_km23": "Within 23 km",
+ "metric_km12": "Within 12 km",
+ "metric_km5_8": "Within 5.8 km",
+ "metric_km2_9": "Within 2.9 km",
+ "metric_km1_5": "Within 1.5 km",
+ "metric_m700": "Within 700 m",
+ "metric_m350": "Within 350 m",
+ "metric_m200": "Within 200 m",
+ "metric_m90": "Within 90 m",
+ "metric_m50": "Within 50 m",
+ "imperial_mi15": "Within 15 miles",
+ "imperial_mi7_3": "Within 7.3 miles",
+ "imperial_mi3_6": "Within 3.6 miles",
+ "imperial_mi1_8": "Within 1.8 miles",
+ "imperial_mi0_9": "Within 0.9 miles",
+ "imperial_mi0_5": "Within 0.5 miles",
+ "imperial_mi0_2": "Within 0.2 miles",
+ "imperial_ft600": "Within 600 feet",
+ "imperial_ft300": "Within 300 feet",
+ "imperial_ft150": "Within 150 feet"
+ }
+ }
+ }
+ },
+ "neighborInfo": {
+ "title": "Neighbor Info Settings",
+ "description": "Settings for the Neighbor Info module",
+ "enabled": {
+ "label": "Enabled",
+ "description": "Enable or disable Neighbor Info Module"
+ },
+ "updateInterval": {
+ "label": "Update Interval",
+ "description": "Interval in seconds of how often we should try to send our Neighbor Info to the mesh"
+ }
+ },
+ "paxcounter": {
+ "title": "Paxcounter Settings",
+ "description": "Settings for the Paxcounter module",
+ "enabled": {
+ "label": "Module Enabled",
+ "description": "Enable Paxcounter"
+ },
+ "paxcounterUpdateInterval": {
+ "label": "Update Interval (seconds)",
+ "description": "How long to wait between sending paxcounter packets"
+ },
+ "wifiThreshold": {
+ "label": "WiFi RSSI Threshold",
+ "description": "At what WiFi RSSI level should the counter increase. Defaults to -80."
+ },
+ "bleThreshold": {
+ "label": "BLE RSSI Threshold",
+ "description": "At what BLE RSSI level should the counter increase. Defaults to -80."
+ }
+ },
+ "rangeTest": {
+ "title": "Range Test Settings",
+ "description": "Settings for the Range Test module",
+ "enabled": {
+ "label": "Module Enabled",
+ "description": "Enable Range Test"
+ },
+ "sender": {
+ "label": "Message Interval",
+ "description": "How long to wait between sending test packets"
+ },
+ "save": {
+ "label": "Save CSV to storage",
+ "description": "ESP32 Only"
+ }
+ },
+ "serial": {
+ "title": "Serial Settings",
+ "description": "Settings for the Serial module",
+ "enabled": {
+ "label": "Module Enabled",
+ "description": "Enable Serial output"
+ },
+ "echo": {
+ "label": "Echo",
+ "description": "Any packets you send will be echoed back to your device"
+ },
+ "rxd": {
+ "label": "Receive Pin",
+ "description": "Set the GPIO pin to the RXD pin you have set up."
+ },
+ "txd": {
+ "label": "Transmit Pin",
+ "description": "Set the GPIO pin to the TXD pin you have set up."
+ },
+ "baud": {
+ "label": "Baud Rate",
+ "description": "The serial baud rate"
+ },
+ "timeout": {
+ "label": "Időtúllépés",
+ "description": "Seconds to wait before we consider your packet as 'done'"
+ },
+ "mode": {
+ "label": "Mode",
+ "description": "Select Mode"
+ },
+ "overrideConsoleSerialPort": {
+ "label": "Override Console Serial Port",
+ "description": "If you have a serial port connected to the console, this will override it."
+ }
+ },
+ "storeForward": {
+ "title": "Store & Forward Settings",
+ "description": "Settings for the Store & Forward module",
+ "enabled": {
+ "label": "Module Enabled",
+ "description": "Enable Store & Forward"
+ },
+ "heartbeat": {
+ "label": "Heartbeat Enabled",
+ "description": "Enable Store & Forward heartbeat"
+ },
+ "records": {
+ "label": "Rekordok száma",
+ "description": "Number of records to store"
+ },
+ "historyReturnMax": {
+ "label": "Előzmény-visszaadás maximum",
+ "description": "Max number of records to return"
+ },
+ "historyReturnWindow": {
+ "label": "Előzmény-visszaadás időablak",
+ "description": "Return records from this time window (minutes)"
+ }
+ },
+ "telemetry": {
+ "title": "Telemetry Settings",
+ "description": "Settings for the Telemetry module",
+ "deviceUpdateInterval": {
+ "label": "Device Metrics",
+ "description": "Eszközmetrikák frissítési intervalluma (másodperc)"
+ },
+ "environmentUpdateInterval": {
+ "label": "Környezeti metrikák frissítési intervalluma (másodperc)",
+ "description": ""
+ },
+ "environmentMeasurementEnabled": {
+ "label": "Module Enabled",
+ "description": "Enable the Environment Telemetry"
+ },
+ "environmentScreenEnabled": {
+ "label": "Displayed on Screen",
+ "description": "Show the Telemetry Module on the OLED"
+ },
+ "environmentDisplayFahrenheit": {
+ "label": "Display Fahrenheit",
+ "description": "Display temp in Fahrenheit"
+ },
+ "airQualityEnabled": {
+ "label": "Air Quality Enabled",
+ "description": "Enable the Air Quality Telemetry"
+ },
+ "airQualityInterval": {
+ "label": "Air Quality Update Interval",
+ "description": "How often to send Air Quality data over the mesh"
+ },
+ "powerMeasurementEnabled": {
+ "label": "Power Measurement Enabled",
+ "description": "Enable the Power Measurement Telemetry"
+ },
+ "powerUpdateInterval": {
+ "label": "Power Update Interval",
+ "description": "How often to send Power data over the mesh"
+ },
+ "powerScreenEnabled": {
+ "label": "Power Screen Enabled",
+ "description": "Enable the Power Telemetry Screen"
+ }
+ }
}
diff --git a/packages/web/public/i18n/locales/hu-HU/nodes.json b/packages/web/public/i18n/locales/hu-HU/nodes.json
index e72d8df4..1bb186b6 100644
--- a/packages/web/public/i18n/locales/hu-HU/nodes.json
+++ b/packages/web/public/i18n/locales/hu-HU/nodes.json
@@ -1,63 +1,59 @@
{
- "nodeDetail": {
- "publicKeyEnabled": {
- "label": "Public Key Enabled"
- },
- "noPublicKey": {
- "label": "No Public Key"
- },
- "directMessage": {
- "label": "Direct Message {{shortName}}"
- },
- "favorite": {
- "label": "Kedvenc",
- "tooltip": "Add or remove this node from your favorites"
- },
- "notFavorite": {
- "label": "Not a Favorite"
- },
- "error": {
- "label": "Hiba",
- "text": "An error occurred while fetching node details. Please try again later."
- },
- "status": {
- "heard": "Heard",
- "mqtt": "MQTT"
- },
- "elevation": {
- "label": "Elevation"
- },
- "channelUtil": {
- "label": "Channel Util"
- },
- "airtimeUtil": {
- "label": "Airtime Util"
- }
- },
- "nodesTable": {
- "headings": {
- "longName": "Long Name",
- "connection": "Kapcsolat",
- "lastHeard": "Last Heard",
- "encryption": "Encryption",
- "model": "Model",
- "macAddress": "MAC Address"
- },
- "connectionStatus": {
- "direct": "Közvetlen",
- "away": "away",
- "unknown": "-",
- "viaMqtt": ", via MQTT"
- },
- "lastHeardStatus": {
- "never": "Never"
- }
- },
- "actions": {
- "added": "Added",
- "removed": "Removed",
- "ignoreNode": "Ignore Node",
- "unignoreNode": "Unignore Node",
- "requestPosition": "Request Position"
- }
+ "nodeDetail": {
+ "publicKeyEnabled": {
+ "label": "Public Key Enabled"
+ },
+ "noPublicKey": {
+ "label": "No Public Key"
+ },
+ "directMessage": {
+ "label": "Direct Message {{shortName}}"
+ },
+ "favorite": {
+ "label": "Kedvenc",
+ "tooltip": "Add or remove this node from your favorites"
+ },
+ "notFavorite": {
+ "label": "Not a Favorite"
+ },
+ "error": {
+ "label": "Hiba",
+ "text": "An error occurred while fetching node details. Please try again later."
+ },
+ "status": {
+ "heard": "Heard",
+ "mqtt": "MQTT"
+ },
+ "elevation": {
+ "label": "Elevation"
+ },
+ "channelUtil": {
+ "label": "Channel Util"
+ },
+ "airtimeUtil": {
+ "label": "Airtime Util"
+ }
+ },
+ "nodesTable": {
+ "headings": {
+ "longName": "Long Name",
+ "connection": "Kapcsolat",
+ "lastHeard": "Last Heard",
+ "encryption": "Encryption",
+ "model": "Model",
+ "macAddress": "MAC Address"
+ },
+ "connectionStatus": {
+ "direct": "Közvetlen",
+ "away": "away",
+ "viaMqtt": ", via MQTT"
+ }
+ },
+ "actions": {
+ "added": "Added",
+ "removed": "Removed",
+ "ignoreNode": "Ignore Node",
+ "unignoreNode": "Unignore Node",
+ "requestPosition": "Request Position"
+ }
}
diff --git a/packages/web/public/i18n/locales/hu-HU/ui.json b/packages/web/public/i18n/locales/hu-HU/ui.json
index 567ac7a2..3235e55d 100644
--- a/packages/web/public/i18n/locales/hu-HU/ui.json
+++ b/packages/web/public/i18n/locales/hu-HU/ui.json
@@ -1,228 +1,229 @@
{
- "navigation": {
- "title": "Navigation",
- "messages": "Üzenetek",
- "map": "Térkép",
- "config": "Config",
- "radioConfig": "Radio Config",
- "moduleConfig": "Module Config",
- "channels": "Csatornák",
- "nodes": "Csomópontok"
- },
- "app": {
- "title": "Meshtastic",
- "logo": "Meshtastic Logo"
- },
- "sidebar": {
- "collapseToggle": {
- "button": {
- "open": "Open sidebar",
- "close": "Close sidebar"
- }
- },
- "deviceInfo": {
- "volts": "{{voltage}} volts",
- "firmware": {
- "title": "Firmware",
- "version": "v{{version}}",
- "buildDate": "Build date: {{date}}"
- },
- "deviceName": {
- "title": "Device Name",
- "changeName": "Change Device Name",
- "placeholder": "Enter device name"
- },
- "editDeviceName": "Edit device name"
- }
- },
- "batteryStatus": {
- "charging": "{{level}}% charging",
- "pluggedIn": "Plugged in",
- "title": "Akkumulátor"
- },
- "search": {
- "nodes": "Search nodes...",
- "channels": "Search channels...",
- "commandPalette": "Search commands..."
- },
- "toast": {
- "positionRequestSent": {
- "title": "Position request sent."
- },
- "requestingPosition": {
- "title": "Requesting position, please wait..."
- },
- "sendingTraceroute": {
- "title": "Sending Traceroute, please wait..."
- },
- "tracerouteSent": {
- "title": "Traceroute sent."
- },
- "savedChannel": {
- "title": "Saved Channel: {{channelName}}"
- },
- "messages": {
- "pkiEncryption": {
- "title": "Chat is using PKI encryption."
- },
- "pskEncryption": {
- "title": "Chat is using PSK encryption."
- }
- },
- "configSaveError": {
- "title": "Error Saving Config",
- "description": "An error occurred while saving the configuration."
- },
- "validationError": {
- "title": "Config Errors Exist",
- "description": "Please fix the configuration errors before saving."
- },
- "saveSuccess": {
- "title": "Saving Config",
- "description": "The configuration change {{case}} has been saved."
- },
- "favoriteNode": {
- "title": "{{action}} {{nodeName}} {{direction}} favorites.",
- "action": {
- "added": "Added",
- "removed": "Removed",
- "to": "to",
- "from": "from"
- }
- },
- "ignoreNode": {
- "title": "{{action}} {{nodeName}} {{direction}} ignore list",
- "action": {
- "added": "Added",
- "removed": "Removed",
- "to": "to",
- "from": "from"
- }
- }
- },
- "notifications": {
- "copied": {
- "label": "Copied!"
- },
- "copyToClipboard": {
- "label": "Copy to clipboard"
- },
- "hidePassword": {
- "label": "Jelszó elrejtése"
- },
- "showPassword": {
- "label": "Jelszó megjelenítése"
- },
- "deliveryStatus": {
- "delivered": "Delivered",
- "failed": "Delivery Failed",
- "waiting": "Waiting",
- "unknown": "Ismeretlen"
- }
- },
- "general": {
- "label": "General"
- },
- "hardware": {
- "label": "Hardver"
- },
- "metrics": {
- "label": "Metrics"
- },
- "role": {
- "label": "Szerepkör"
- },
- "filter": {
- "label": "Filter"
- },
- "advanced": {
- "label": "Haladó"
- },
- "clearInput": {
- "label": "Clear input"
- },
- "resetFilters": {
- "label": "Reset Filters"
- },
- "nodeName": {
- "label": "Node name/number",
- "placeholder": "Meshtastic 1234"
- },
- "airtimeUtilization": {
- "label": "Airtime Utilization (%)"
- },
- "batteryLevel": {
- "label": "Battery level (%)",
- "labelText": "Battery level (%): {{value}}"
- },
- "batteryVoltage": {
- "label": "Battery voltage (V)",
- "title": "Feszültség"
- },
- "channelUtilization": {
- "label": "Channel Utilization (%)"
- },
- "hops": {
- "direct": "Közvetlen",
- "label": "Number of hops",
- "text": "Number of hops: {{value}}"
- },
- "lastHeard": {
- "label": "Utoljára hallott",
- "labelText": "Last heard: {{value}}",
- "nowLabel": "Now"
- },
- "snr": {
- "label": "SNR (db)"
- },
- "favorites": {
- "label": "Favorites"
- },
- "hide": {
- "label": "Hide"
- },
- "showOnly": {
- "label": "Show Only"
- },
- "viaMqtt": {
- "label": "Connected via MQTT"
- },
- "hopsUnknown": {
- "label": "Unknown number of hops"
- },
- "showUnheard": {
- "label": "Never heard"
- },
- "language": {
- "label": "Nyelv",
- "changeLanguage": "Change Language"
- },
- "theme": {
- "dark": "Sötét",
- "light": "Világos",
- "system": "Automatic",
- "changeTheme": "Change Color Scheme"
- },
- "errorPage": {
- "title": "This is a little embarrassing...",
- "description1": "We are really sorry but an error occurred in the web client that caused it to crash.
This is not supposed to happen, and we are working hard to fix it.",
- "description2": "The best way to prevent this from happening again to you or anyone else is to report the issue to us.",
- "reportInstructions": "Please include the following information in your report:",
- "reportSteps": {
- "step1": "What you were doing when the error occurred",
- "step2": "What you expected to happen",
- "step3": "What actually happened",
- "step4": "Any other relevant information"
- },
- "reportLink": "You can report the issue to our <0>GitHub0>",
- "dashboardLink": "Return to the <0>dashboard0>",
- "detailsSummary": "Error Details",
- "errorMessageLabel": "Error message:",
- "stackTraceLabel": "Stack trace:",
- "fallbackError": "{{error}}"
- },
- "footer": {
- "text": "Powered by <0>▲ Vercel0> | Meshtastic® is a registered trademark of Meshtastic LLC. | <1>Legal Information1>",
- "commitSha": "Commit SHA: {{sha}}"
- }
+ "navigation": {
+ "title": "Navigation",
+ "messages": "Üzenetek",
+ "map": "Térkép",
+ "settings": "Beállítások",
+ "channels": "Csatornák",
+ "radioConfig": "Radio Config",
+ "deviceConfig": "Eszközbeállítások",
+ "moduleConfig": "Module Config",
+ "nodes": "Csomópontok"
+ },
+ "app": {
+ "title": "Meshtastic",
+ "logo": "Meshtastic Logo"
+ },
+ "sidebar": {
+ "collapseToggle": {
+ "button": {
+ "open": "Open sidebar",
+ "close": "Close sidebar"
+ }
+ },
+ "deviceInfo": {
+ "volts": "{{voltage}} volts",
+ "firmware": {
+ "title": "Firmware",
+ "version": "v{{version}}",
+ "buildDate": "Build date: {{date}}"
+ }
+ }
+ },
+ "batteryStatus": {
+ "charging": "{{level}}% charging",
+ "pluggedIn": "Plugged in",
+ "title": "Akkumulátor"
+ },
+ "search": {
+ "nodes": "Search nodes...",
+ "channels": "Search channels...",
+ "commandPalette": "Search commands..."
+ },
+ "toast": {
+ "positionRequestSent": {
+ "title": "Position request sent."
+ },
+ "requestingPosition": {
+ "title": "Requesting position, please wait..."
+ },
+ "sendingTraceroute": {
+ "title": "Sending Traceroute, please wait..."
+ },
+ "tracerouteSent": {
+ "title": "Traceroute sent."
+ },
+ "savedChannel": {
+ "title": "Saved Channel: {{channelName}}"
+ },
+ "messages": {
+ "pkiEncryption": {
+ "title": "Chat is using PKI encryption."
+ },
+ "pskEncryption": {
+ "title": "Chat is using PSK encryption."
+ }
+ },
+ "configSaveError": {
+ "title": "Error Saving Config",
+ "description": "An error occurred while saving the configuration."
+ },
+ "validationError": {
+ "title": "Config Errors Exist",
+ "description": "Please fix the configuration errors before saving."
+ },
+ "saveSuccess": {
+ "title": "Saving Config",
+ "description": "The configuration change {{case}} has been saved."
+ },
+ "saveAllSuccess": {
+ "title": "Saved",
+ "description": "All configuration changes have been saved."
+ },
+ "favoriteNode": {
+ "title": "{{action}} {{nodeName}} {{direction}} favorites.",
+ "action": {
+ "added": "Added",
+ "removed": "Removed",
+ "to": "to",
+ "from": "from"
+ }
+ },
+ "ignoreNode": {
+ "title": "{{action}} {{nodeName}} {{direction}} ignore list",
+ "action": {
+ "added": "Added",
+ "removed": "Removed",
+ "to": "to",
+ "from": "from"
+ }
+ }
+ },
+ "notifications": {
+ "copied": {
+ "label": "Copied!"
+ },
+ "copyToClipboard": {
+ "label": "Copy to clipboard"
+ },
+ "hidePassword": {
+ "label": "Jelszó elrejtése"
+ },
+ "showPassword": {
+ "label": "Jelszó megjelenítése"
+ },
+ "deliveryStatus": {
+ "delivered": "Delivered",
+ "failed": "Delivery Failed",
+ "waiting": "Waiting",
+ "unknown": "Ismeretlen"
+ }
+ },
+ "general": {
+ "label": "General"
+ },
+ "hardware": {
+ "label": "Hardver"
+ },
+ "metrics": {
+ "label": "Metrics"
+ },
+ "role": {
+ "label": "Szerepkör"
+ },
+ "filter": {
+ "label": "Filter"
+ },
+ "advanced": {
+ "label": "Haladó"
+ },
+ "clearInput": {
+ "label": "Clear input"
+ },
+ "resetFilters": {
+ "label": "Reset Filters"
+ },
+ "nodeName": {
+ "label": "Node name/number",
+ "placeholder": "Meshtastic 1234"
+ },
+ "airtimeUtilization": {
+ "label": "Airtime Utilization (%)",
+ "short": "Airtime Util. (%)"
+ },
+ "batteryLevel": {
+ "label": "Battery level (%)",
+ "labelText": "Battery level (%): {{value}}"
+ },
+ "batteryVoltage": {
+ "label": "Battery voltage (V)",
+ "title": "Feszültség"
+ },
+ "channelUtilization": {
+ "label": "Channel Utilization (%)",
+ "short": "Channel Util. (%)"
+ },
+ "hops": {
+ "direct": "Közvetlen",
+ "label": "Number of hops",
+ "text": "Number of hops: {{value}}"
+ },
+ "lastHeard": {
+ "label": "Utoljára hallott",
+ "labelText": "Last heard: {{value}}",
+ "nowLabel": "Now"
+ },
+ "snr": {
+ "label": "SNR (db)"
+ },
+ "favorites": {
+ "label": "Favorites"
+ },
+ "hide": {
+ "label": "Hide"
+ },
+ "showOnly": {
+ "label": "Show Only"
+ },
+ "viaMqtt": {
+ "label": "Connected via MQTT"
+ },
+ "hopsUnknown": {
+ "label": "Unknown number of hops"
+ },
+ "showUnheard": {
+ "label": "Never heard"
+ },
+ "language": {
+ "label": "Nyelv",
+ "changeLanguage": "Change Language"
+ },
+ "theme": {
+ "dark": "Sötét",
+ "light": "Világos",
+ "system": "Automatic",
+ "changeTheme": "Change Color Scheme"
+ },
+ "errorPage": {
+ "title": "This is a little embarrassing...",
+ "description1": "We are really sorry but an error occurred in the web client that caused it to crash.
This is not supposed to happen, and we are working hard to fix it.",
+ "description2": "The best way to prevent this from happening again to you or anyone else is to report the issue to us.",
+ "reportInstructions": "Please include the following information in your report:",
+ "reportSteps": {
+ "step1": "What you were doing when the error occurred",
+ "step2": "What you expected to happen",
+ "step3": "What actually happened",
+ "step4": "Any other relevant information"
+ },
+ "reportLink": "You can report the issue to our <0>GitHub0>",
+ "dashboardLink": "Return to the <0>dashboard0>",
+ "detailsSummary": "Error Details",
+ "errorMessageLabel": "Error message:",
+ "stackTraceLabel": "Stack trace:",
+ "fallbackError": "{{error}}"
+ },
+ "footer": {
+ "text": "Powered by <0>▲ Vercel0> | Meshtastic® is a registered trademark of Meshtastic LLC. | <1>Legal Information1>",
+ "commitSha": "Commit SHA: {{sha}}"
+ }
}
diff --git a/packages/web/public/i18n/locales/it-IT/channels.json b/packages/web/public/i18n/locales/it-IT/channels.json
index 168490fd..a61e63fe 100644
--- a/packages/web/public/i18n/locales/it-IT/channels.json
+++ b/packages/web/public/i18n/locales/it-IT/channels.json
@@ -1,69 +1,71 @@
{
- "page": {
- "sectionLabel": "Canali",
- "channelName": "Canale {{channelName}}",
- "broadcastLabel": "Principale",
- "channelIndex": "Ch {{index}}"
- },
- "validation": {
- "pskInvalid": "Per favore inserisci un PSK valido di {{bits}} bit."
- },
- "settings": {
- "label": "Impostazioni Canale",
- "description": "Impostazioni di Crypto, MQTT e varie"
- },
- "role": {
- "label": "Ruolo",
- "description": "La telemetria del dispositivo è inviata su PRIMARIO. Solo un PRIMARIO è consentito",
- "options": {
- "primary": "PRIMARIO",
- "disabled": "DISABILITATO",
- "secondary": "SECONDARIO"
- }
- },
- "psk": {
- "label": "Chiave Pre-Condivisa",
- "description": "Lunghezze PSK supportate: 256-bit, 128-bit, 8-bit, Vuoto (0-bit)",
- "generate": "Genera"
- },
- "name": {
- "label": "Nome",
- "description": "Un nome univoco per il canale <12 byte, lascia vuoto per default"
- },
- "uplinkEnabled": {
- "label": "Uplink Abilitato",
- "description": "Invia messaggi dalla mesh locale a MQTT"
- },
- "downlinkEnabled": {
- "label": "Uplink Abilitato",
- "description": "Invia messaggi da MQTT alla mesh locale"
- },
- "positionPrecision": {
- "label": "Posizione",
- "description": "La precisione della posizione da condividere con il canale. Può essere disabilitata.",
- "options": {
- "none": "Non condividere la posizione",
- "precise": "Posizione precisa",
- "metric_km23": "Entro 23 chilometri",
- "metric_km12": "Entro 12 chilometri",
- "metric_km5_8": "Entro 5,8 chilometri",
- "metric_km2_9": "Entro 2,9 chilometri",
- "metric_km1_5": "Entro 1,5 chilometri",
- "metric_m700": "Entro 700 metri",
- "metric_m350": "Entro 350 metri",
- "metric_m200": "Entro 200 metri",
- "metric_m90": "Entro 90 metri",
- "metric_m50": "Entro 50 metri",
- "imperial_mi15": "Entro 15 miglia",
- "imperial_mi7_3": "Entro 7,3 miglia",
- "imperial_mi3_6": "Entro 3,6 miglia",
- "imperial_mi1_8": "Entro 1,8 miglia",
- "imperial_mi0_9": "Entro 0,9 miglia",
- "imperial_mi0_5": "Entro 0,5 miglia",
- "imperial_mi0_2": "Entro 0,2 miglia",
- "imperial_ft600": "Entro 600 piedi",
- "imperial_ft300": "Entro 300 piedi",
- "imperial_ft150": "Entro 150 piedi"
- }
- }
+ "page": {
+ "sectionLabel": "Canali",
+ "channelName": "Canale {{channelName}}",
+ "broadcastLabel": "Principale",
+ "channelIndex": "Ch {{index}}",
+ "import": "Importa",
+ "export": "Esporta"
+ },
+ "validation": {
+ "pskInvalid": "Per favore inserisci un PSK valido di {{bits}} bit."
+ },
+ "settings": {
+ "label": "Impostazioni Canale",
+ "description": "Impostazioni di Crypto, MQTT e varie"
+ },
+ "role": {
+ "label": "Ruolo",
+ "description": "La telemetria del dispositivo è inviata su PRIMARIO. Solo un PRIMARIO è consentito",
+ "options": {
+ "primary": "PRIMARIO",
+ "disabled": "DISABILITATO",
+ "secondary": "SECONDARIO"
+ }
+ },
+ "psk": {
+ "label": "Chiave Pre-Condivisa",
+ "description": "Lunghezze PSK supportate: 256-bit, 128-bit, 8-bit, Vuoto (0-bit)",
+ "generate": "Genera"
+ },
+ "name": {
+ "label": "Nome",
+ "description": "Un nome univoco per il canale <12 byte, lascia vuoto per default"
+ },
+ "uplinkEnabled": {
+ "label": "Uplink Abilitato",
+ "description": "Invia messaggi dalla mesh locale a MQTT"
+ },
+ "downlinkEnabled": {
+ "label": "Uplink Abilitato",
+ "description": "Invia messaggi da MQTT alla mesh locale"
+ },
+ "positionPrecision": {
+ "label": "Posizione",
+ "description": "La precisione della posizione da condividere con il canale. Può essere disabilitata.",
+ "options": {
+ "none": "Non condividere la posizione",
+ "precise": "Posizione precisa",
+ "metric_km23": "Entro 23 chilometri",
+ "metric_km12": "Entro 12 chilometri",
+ "metric_km5_8": "Entro 5,8 chilometri",
+ "metric_km2_9": "Entro 2,9 chilometri",
+ "metric_km1_5": "Entro 1,5 chilometri",
+ "metric_m700": "Entro 700 metri",
+ "metric_m350": "Entro 350 metri",
+ "metric_m200": "Entro 200 metri",
+ "metric_m90": "Entro 90 metri",
+ "metric_m50": "Entro 50 metri",
+ "imperial_mi15": "Entro 15 miglia",
+ "imperial_mi7_3": "Entro 7,3 miglia",
+ "imperial_mi3_6": "Entro 3,6 miglia",
+ "imperial_mi1_8": "Entro 1,8 miglia",
+ "imperial_mi0_9": "Entro 0,9 miglia",
+ "imperial_mi0_5": "Entro 0,5 miglia",
+ "imperial_mi0_2": "Entro 0,2 miglia",
+ "imperial_ft600": "Entro 600 piedi",
+ "imperial_ft300": "Entro 300 piedi",
+ "imperial_ft150": "Entro 150 piedi"
+ }
+ }
}
diff --git a/packages/web/public/i18n/locales/it-IT/commandPalette.json b/packages/web/public/i18n/locales/it-IT/commandPalette.json
index 9c48bf15..4daa3122 100644
--- a/packages/web/public/i18n/locales/it-IT/commandPalette.json
+++ b/packages/web/public/i18n/locales/it-IT/commandPalette.json
@@ -15,7 +15,6 @@
"messages": "Messaggi",
"map": "Mappa",
"config": "Configurazione",
- "channels": "Canali",
"nodes": "Nodi"
}
},
@@ -45,7 +44,8 @@
"label": "Debug",
"command": {
"reconfigure": "Riconfigura",
- "clearAllStoredMessages": "Cancella Tutti i Messaggi Memorizzati"
+ "clearAllStoredMessages": "Cancella Tutti i Messaggi Memorizzati",
+ "clearAllStores": "Clear All Local Storage"
}
}
}
diff --git a/packages/web/public/i18n/locales/it-IT/common.json b/packages/web/public/i18n/locales/it-IT/common.json
index aa0ae3b0..94cca341 100644
--- a/packages/web/public/i18n/locales/it-IT/common.json
+++ b/packages/web/public/i18n/locales/it-IT/common.json
@@ -1,142 +1,157 @@
{
- "button": {
- "apply": "Applica",
- "backupKey": "Backup della chiave",
- "cancel": "Annulla",
- "clearMessages": "Cancella Messaggi",
- "close": "Chiudi",
- "confirm": "Conferma",
- "delete": "Elimina",
- "dismiss": "Annulla",
- "download": "Scarica",
- "export": "Esporta",
- "generate": "Genera",
- "regenerate": "Rigenera",
- "import": "Importa",
- "message": "Messaggio",
- "now": "Adesso",
- "ok": "Ok",
- "print": "Stampa",
- "remove": "Elimina",
- "requestNewKeys": "Richiedi Nuove Chiavi",
- "requestPosition": "Richiedi posizione",
- "reset": "Reset",
- "save": "Salva",
- "scanQr": "Scansiona codice QR",
- "traceRoute": "Trace Route",
- "submit": "Submit"
- },
- "app": {
- "title": "Meshtastic",
- "fullTitle": "Meshtastic Web Client"
- },
- "loading": "Caricamento in corso...",
- "unit": {
- "cps": "CPS",
- "dbm": "dBm",
- "hertz": "Hz",
- "hop": {
- "one": "Hop",
- "plural": "Hops"
- },
- "hopsAway": {
- "one": "A {{count}} hop di distanza",
- "plural": "A {{count}} hop di distanza",
- "unknown": "Hop sconosciuti"
- },
- "megahertz": "MHz",
- "raw": "grezzo",
- "meter": {
- "one": "Metro",
- "plural": "Metri",
- "suffix": "m"
- },
- "minute": {
- "one": "Minuto",
- "plural": "Minuti"
- },
- "hour": {
- "one": "Hour",
- "plural": "Hours"
- },
- "millisecond": {
- "one": "Millisecondo",
- "plural": "Millisecondi",
- "suffix": "ms"
- },
- "second": {
- "one": "Secondo",
- "plural": "Secondi"
- },
- "day": {
- "one": "Day",
- "plural": "Days"
- },
- "month": {
- "one": "Month",
- "plural": "Months"
- },
- "year": {
- "one": "Year",
- "plural": "Years"
- },
- "snr": "SNR",
- "volt": {
- "one": "Volt",
- "plural": "Volt",
- "suffix": "V"
- },
- "record": {
- "one": "Record",
- "plural": "Record"
- }
- },
- "security": {
- "0bit": "Empty",
- "8bit": "8 bit",
- "128bit": "128 bit",
- "256bit": "256 bit"
- },
- "unknown": {
- "longName": "Sconosciuto",
- "shortName": "SCON",
- "notAvailable": "N/D",
- "num": "??"
- },
- "nodeUnknownPrefix": "!",
- "unset": "ANNULLA",
- "fallbackName": "Meshtastic {{last4}}",
- "node": "Node",
- "formValidation": {
- "unsavedChanges": "Unsaved changes",
- "tooBig": {
- "string": "Troppo lungo, atteso minore o uguale a {{maximum}} caratteri.",
- "number": "Troppo grande, ci si aspetta un numero minore o uguale a {{maximum}}.",
- "bytes": "Troppo grande, atteso inferiore o uguale a {{params.maximum}} byte."
- },
- "tooSmall": {
- "string": "Troppo breve, atteso più di o uguale a {{minimum}} caratteri.",
- "number": "Troppo piccolo, atteso un numero maggiore o uguale a {{minimum}}."
- },
- "invalidFormat": {
- "ipv4": "Formato non valido, previsto un indirizzo IPv4.",
- "key": "Formato non valido, prevista una chiave pre-condivisa codificata Base64 (PSK)."
- },
- "invalidType": {
- "number": "Tipo non valido, atteso un numero."
- },
- "pskLength": {
- "0bit": "La chiave deve essere vuota.",
- "8bit": "La chiave deve essere una chiave pre-condivisa a 8 bit (PSK).",
- "128bit": "La chiave deve essere una chiave pre-condivisa a 128 bit (PSK).",
- "256bit": "La chiave deve essere una chiave pre-condivisa a 256 bit (PSK)."
- },
- "required": {
- "generic": "Questo campo è obbligatorio.",
- "managed": "Se il nodo è gestito, è richiesta almeno una chiave amministrativa.",
- "key": "La chiave è obbligatoria."
- }
- },
- "yes": "Sì",
- "no": "No"
+ "button": {
+ "apply": "Applica",
+ "backupKey": "Backup della chiave",
+ "cancel": "Annulla",
+ "clearMessages": "Cancella Messaggi",
+ "close": "Chiudi",
+ "confirm": "Conferma",
+ "delete": "Elimina",
+ "dismiss": "Annulla",
+ "download": "Scarica",
+ "export": "Esporta",
+ "generate": "Genera",
+ "regenerate": "Rigenera",
+ "import": "Importa",
+ "message": "Messaggio",
+ "now": "Adesso",
+ "ok": "Ok",
+ "print": "Stampa",
+ "remove": "Elimina",
+ "requestNewKeys": "Richiedi Nuove Chiavi",
+ "requestPosition": "Richiedi posizione",
+ "reset": "Reset",
+ "save": "Salva",
+ "scanQr": "Scansiona codice QR",
+ "traceRoute": "Trace Route",
+ "submit": "Submit"
+ },
+ "app": {
+ "title": "Meshtastic",
+ "fullTitle": "Meshtastic Web Client"
+ },
+ "loading": "Caricamento in corso...",
+ "unit": {
+ "cps": "CPS",
+ "dbm": "dBm",
+ "hertz": "Hz",
+ "hop": {
+ "one": "Hop",
+ "plural": "Hops"
+ },
+ "hopsAway": {
+ "one": "A {{count}} hop di distanza",
+ "plural": "A {{count}} hop di distanza",
+ "unknown": "Hop sconosciuti"
+ },
+ "megahertz": "MHz",
+ "raw": "grezzo",
+ "meter": {
+ "one": "Metro",
+ "plural": "Metri",
+ "suffix": "m"
+ },
+ "kilometer": {
+ "one": "Kilometer",
+ "plural": "Kilometers",
+ "suffix": "km"
+ },
+ "minute": {
+ "one": "Minuto",
+ "plural": "Minuti"
+ },
+ "hour": {
+ "one": "Hour",
+ "plural": "Hours"
+ },
+ "millisecond": {
+ "one": "Millisecondo",
+ "plural": "Millisecondi",
+ "suffix": "ms"
+ },
+ "second": {
+ "one": "Secondo",
+ "plural": "Secondi"
+ },
+ "day": {
+ "one": "Day",
+ "plural": "Days",
+ "today": "Today",
+ "yesterday": "Yesterday"
+ },
+ "month": {
+ "one": "Month",
+ "plural": "Months"
+ },
+ "year": {
+ "one": "Year",
+ "plural": "Years"
+ },
+ "snr": "SNR",
+ "volt": {
+ "one": "Volt",
+ "plural": "Volt",
+ "suffix": "V"
+ },
+ "record": {
+ "one": "Record",
+ "plural": "Record"
+ },
+ "degree": {
+ "one": "Degree",
+ "plural": "Degrees",
+ "suffix": "°"
+ }
+ },
+ "security": {
+ "0bit": "Empty",
+ "8bit": "8 bit",
+ "128bit": "128 bit",
+ "256bit": "256 bit"
+ },
+ "unknown": {
+ "longName": "Sconosciuto",
+ "shortName": "SCON",
+ "notAvailable": "N/D",
+ "num": "??"
+ },
+ "nodeUnknownPrefix": "!",
+ "unset": "ANNULLA",
+ "fallbackName": "Meshtastic {{last4}}",
+ "node": "Node",
+ "formValidation": {
+ "unsavedChanges": "Unsaved changes",
+ "tooBig": {
+ "string": "Troppo lungo, atteso minore o uguale a {{maximum}} caratteri.",
+ "number": "Troppo grande, ci si aspetta un numero minore o uguale a {{maximum}}.",
+ "bytes": "Troppo grande, atteso inferiore o uguale a {{params.maximum}} byte."
+ },
+ "tooSmall": {
+ "string": "Troppo breve, atteso più di o uguale a {{minimum}} caratteri.",
+ "number": "Troppo piccolo, atteso un numero maggiore o uguale a {{minimum}}."
+ },
+ "invalidFormat": {
+ "ipv4": "Formato non valido, previsto un indirizzo IPv4.",
+ "key": "Formato non valido, prevista una chiave pre-condivisa codificata Base64 (PSK)."
+ },
+ "invalidType": {
+ "number": "Tipo non valido, atteso un numero."
+ },
+ "pskLength": {
+ "0bit": "La chiave deve essere vuota.",
+ "8bit": "La chiave deve essere una chiave pre-condivisa a 8 bit (PSK).",
+ "128bit": "La chiave deve essere una chiave pre-condivisa a 128 bit (PSK).",
+ "256bit": "La chiave deve essere una chiave pre-condivisa a 256 bit (PSK)."
+ },
+ "required": {
+ "generic": "Questo campo è obbligatorio.",
+ "managed": "Se il nodo è gestito, è richiesta almeno una chiave amministrativa.",
+ "key": "La chiave è obbligatoria."
+ },
+ "invalidOverrideFreq": {
+ "number": "Invalid format, expected a value in the range 410-930 MHz or 0 (use default)."
+ }
+ },
+ "yes": "Sì",
+ "no": "No"
}
diff --git a/packages/web/public/i18n/locales/it-IT/config.json b/packages/web/public/i18n/locales/it-IT/config.json
new file mode 100644
index 00000000..1d499015
--- /dev/null
+++ b/packages/web/public/i18n/locales/it-IT/config.json
@@ -0,0 +1,458 @@
+{
+ "page": {
+ "title": "Impostazioni",
+ "tabUser": "Utente",
+ "tabChannels": "Canali",
+ "tabBluetooth": "Bluetooth",
+ "tabDevice": "Dispositivo",
+ "tabDisplay": "Schermo",
+ "tabLora": "LoRa",
+ "tabNetwork": "Rete",
+ "tabPosition": "Posizione",
+ "tabPower": "Alimentazione",
+ "tabSecurity": "Sicurezza"
+ },
+ "sidebar": {
+ "label": "Configurazione"
+ },
+ "device": {
+ "title": "Impostazioni del dispositivo",
+ "description": "Le impostazioni del dispositivo",
+ "buttonPin": {
+ "description": "Sovrascrivi pin pulsante",
+ "label": "Pulsante Pin"
+ },
+ "buzzerPin": {
+ "description": "Sovrascrivi pin buzzer",
+ "label": "Pin Buzzer"
+ },
+ "disableTripleClick": {
+ "description": "Disabilita triplo-click",
+ "label": "Disabilita triplo-click"
+ },
+ "doubleTapAsButtonPress": {
+ "description": "Tratta il doppio tocco come pressione pulsante",
+ "label": "Doppio tocco come pressione pulsante"
+ },
+ "ledHeartbeatDisabled": {
+ "description": "Disabilita il LED lampeggiante predefinito",
+ "label": "LED Heartbeat Disabilitato"
+ },
+ "nodeInfoBroadcastInterval": {
+ "description": "Quante volte trasmettere informazioni sul nodo",
+ "label": "Intervallo Di Trasmissione Info Nodo"
+ },
+ "posixTimezone": {
+ "description": "La stringa di fuso orario POSIX per il dispositivo",
+ "label": "POSIX Timezone"
+ },
+ "rebroadcastMode": {
+ "description": "Come gestire il rebroadcasting",
+ "label": "Modalità Rebroadcast"
+ },
+ "role": {
+ "description": "Quale ruolo il dispositivo svolge sulla mesh",
+ "label": "Ruolo"
+ }
+ },
+ "bluetooth": {
+ "title": "Impostazioni Bluetooth",
+ "description": "Impostazioni per il modulo Bluetooth",
+ "note": "Nota: alcuni dispositivi (ESP32) non possono utilizzare contemporaneamente Bluetooth e WiFi.",
+ "enabled": {
+ "description": "Abilita o disabilita Bluetooth",
+ "label": "Abilitato"
+ },
+ "pairingMode": {
+ "description": "Comportamento di selezione pin.",
+ "label": "Modalità abbinamento"
+ },
+ "pin": {
+ "description": "Pin da usare durante l'abbinamento",
+ "label": "Pin"
+ }
+ },
+ "display": {
+ "description": "Impostazioni per il display del dispositivo",
+ "title": "Impostazioni Display",
+ "headingBold": {
+ "description": "Metti in grassetto il testo dell'intestazione",
+ "label": "Intestazione in grassetto"
+ },
+ "carouselDelay": {
+ "description": "Quanto velocemente scorrere attraverso le finestre",
+ "label": "Ritardo Carosello"
+ },
+ "compassNorthTop": {
+ "description": "Fissare il nord fino alla parte superiore della bussola",
+ "label": "Bussola Nord In Alto"
+ },
+ "displayMode": {
+ "description": "Variante layout schermo",
+ "label": "Modalità di visualizzazione"
+ },
+ "displayUnits": {
+ "description": "Mostra unità metriche o imperiali",
+ "label": "Mostra Unità"
+ },
+ "flipScreen": {
+ "description": "Rifletti la visualizzazione di 180 gradi",
+ "label": "Capovolgi schermo"
+ },
+ "gpsDisplayUnits": {
+ "description": "Formato coordinate",
+ "label": "Unità Display GPS"
+ },
+ "oledType": {
+ "description": "Tipo di schermo OLED collegato al dispositivo",
+ "label": "Tipo OLED"
+ },
+ "screenTimeout": {
+ "description": "Spegni lo schermo dopo questo lungo periodo",
+ "label": "Timeout Schermo"
+ },
+ "twelveHourClock": {
+ "description": "Usa formato orologio 12 ore",
+ "label": "Orologio 12 Ore"
+ },
+ "wakeOnTapOrMotion": {
+ "description": "Risveglia il dispositivo al tocco o al movimento",
+ "label": "Sveglia al tocco o al movimento"
+ }
+ },
+ "lora": {
+ "title": "Impostazioni Mesh",
+ "description": "Impostazioni per la mesh LoRa",
+ "bandwidth": {
+ "description": "Larghezza di banda del canale in MHz",
+ "label": "Larghezza di banda"
+ },
+ "boostedRxGain": {
+ "description": "Guadagno RX potenziato",
+ "label": "Guadagno RX potenziato"
+ },
+ "codingRate": {
+ "description": "Il denominatore della velocità di codifica",
+ "label": "Velocità di codifica"
+ },
+ "frequencyOffset": {
+ "description": "Offset di frequenza per correggere gli errori di calibrazione del cristallo",
+ "label": "Offset Di Frequenza"
+ },
+ "frequencySlot": {
+ "description": "Numero canale di frequenza LoRa",
+ "label": "Slot di frequenza"
+ },
+ "hopLimit": {
+ "description": "Numero massimo di hop",
+ "label": "Limite di hop"
+ },
+ "ignoreMqtt": {
+ "description": "Non inoltrare i messaggi MQTT sulla mesh",
+ "label": "Ignora MQTT"
+ },
+ "modemPreset": {
+ "description": "Preimpostazione modem da usare",
+ "label": "Configurazione Modem"
+ },
+ "okToMqtt": {
+ "description": "Quando impostato su true, questa configurazione indica che l'utente approva il caricamento del pacchetto su MQTT. Se impostato su false, ai nodi remoti viene richiesto di non inoltrare i pacchetti a MQTT",
+ "label": "OK per MQTT"
+ },
+ "overrideDutyCycle": {
+ "description": "Ignora limite di Duty Cycle",
+ "label": "Ignora limite di Duty Cycle"
+ },
+ "overrideFrequency": {
+ "description": "Sovrascrivi frequenza",
+ "label": "Sovrascrivi frequenza"
+ },
+ "region": {
+ "description": "Imposta la regione del tuo nodo",
+ "label": "Regione"
+ },
+ "spreadingFactor": {
+ "description": "Indica il numero di chirp per simbolo",
+ "label": "Spreading Factor"
+ },
+ "transmitEnabled": {
+ "description": "Abilita/Disabilita la trasmissione (TX) dalla radio LoRa",
+ "label": "Trasmissione Abilitata"
+ },
+ "transmitPower": {
+ "description": "Potenza massima di trasmissione",
+ "label": "Potenza Di Trasmissione"
+ },
+ "usePreset": {
+ "description": "Usa una delle preimpostazioni predefinite del modem",
+ "label": "Utilizza il preset"
+ },
+ "meshSettings": {
+ "description": "Impostazioni per la mesh LoRa",
+ "label": "Impostazioni Mesh"
+ },
+ "waveformSettings": {
+ "description": "Impostazioni per la forma d'onda LoRa",
+ "label": "Impostazioni Forma d'onda"
+ },
+ "radioSettings": {
+ "label": "Impostazioni Radio",
+ "description": "Impostazioni per la radio LoRa"
+ }
+ },
+ "network": {
+ "title": "Configurazione WiFi",
+ "description": "Configurazione radio WiFi",
+ "note": "Nota: alcuni dispositivi (ESP32) non possono utilizzare contemporaneamente Bluetooth e WiFi.",
+ "addressMode": {
+ "description": "Selezione assegnazione indirizzo",
+ "label": "Modalità Indirizzo"
+ },
+ "dns": {
+ "description": "Server DNS",
+ "label": "DNS"
+ },
+ "ethernetEnabled": {
+ "description": "Abilita o disabilita la porta Ethernet",
+ "label": "Abilitato"
+ },
+ "gateway": {
+ "description": "Gateway predefinito",
+ "label": "Gateway"
+ },
+ "ip": {
+ "description": "Indirizzo IP",
+ "label": "IP"
+ },
+ "psk": {
+ "description": "Password di rete",
+ "label": "PSK"
+ },
+ "ssid": {
+ "description": "Nome rete",
+ "label": "SSID"
+ },
+ "subnet": {
+ "description": "Subnet mask",
+ "label": "Subnet"
+ },
+ "wifiEnabled": {
+ "description": "Abilita o disabilita la radio WiFi",
+ "label": "Abilitato"
+ },
+ "meshViaUdp": {
+ "label": "Mesh via UDP"
+ },
+ "ntpServer": {
+ "label": "Server NTP"
+ },
+ "rsyslogServer": {
+ "label": "Server rsyslog"
+ },
+ "ethernetConfigSettings": {
+ "description": "Configurazione porta Ethernet",
+ "label": "Configurazione Ethernet"
+ },
+ "ipConfigSettings": {
+ "description": "Configurazione IP",
+ "label": "Configurazione IP"
+ },
+ "ntpConfigSettings": {
+ "description": "Configurazione NTP",
+ "label": "Configurazione NTP"
+ },
+ "rsyslogConfigSettings": {
+ "description": "Configurazione di Rsyslog",
+ "label": "Configurazione di Rsyslog"
+ },
+ "udpConfigSettings": {
+ "description": "Configurazione UDP over Mesh",
+ "label": "Configurazione UDP"
+ }
+ },
+ "position": {
+ "title": "Impostazioni Posizione",
+ "description": "Impostazioni per il modulo di posizione",
+ "broadcastInterval": {
+ "description": "Quante volte la tua posizione viene inviata attraverso la mesh",
+ "label": "Intervallo Di Trasmissione"
+ },
+ "enablePin": {
+ "description": "Modulo GPS abilita pin override",
+ "label": "Abilita Pin"
+ },
+ "fixedPosition": {
+ "description": "Non segnalare la posizione GPS, ma specificane una manualmente",
+ "label": "Posizione Fissa"
+ },
+ "gpsMode": {
+ "description": "Configura se il GPS del dispositivo è abilitato, disabilitato o non presente",
+ "label": "Modalità GPS"
+ },
+ "gpsUpdateInterval": {
+ "description": "Quante volte una correzione GPS dovrebbe essere acquisita",
+ "label": "Intervallo di aggiornamento GPS"
+ },
+ "positionFlags": {
+ "description": "Campi opzionali da includere quando si assemblano messaggi di posizione. Più i campi sono selezionati, più grande sarà il messaggio porterà a un utilizzo più lungo del tempo di volo e un rischio più elevato di perdite dei pacchetti.",
+ "label": "Flag Di Posizione"
+ },
+ "receivePin": {
+ "description": "Sovrascrivi RX pin del Modulo GPS",
+ "label": "Pin di ricezione"
+ },
+ "smartPositionEnabled": {
+ "description": "Invia posizione solo quando c'è stato un cambiamento significativo nella posizione",
+ "label": "Abilita Posizione Intelligente"
+ },
+ "smartPositionMinDistance": {
+ "description": "Distanza minima (in metri) che deve essere percorsa prima di inviare un aggiornamento di posizione",
+ "label": "Distanza Minima Posizione Intelligente"
+ },
+ "smartPositionMinInterval": {
+ "description": "Intervallo minimo (in secondi) che deve passare prima di inviare un aggiornamento della posizione",
+ "label": "Intervallo Minimo Posizione Intelligente"
+ },
+ "transmitPin": {
+ "description": "Sovrascrivi TX pin del Modulo GPS",
+ "label": "Pin di trasmissione"
+ },
+ "intervalsSettings": {
+ "description": "Quante volte inviare aggiornamenti di posizione",
+ "label": "Intervalli"
+ },
+ "flags": {
+ "placeholder": "Seleziona flag di posizione...",
+ "altitude": "Altitudine",
+ "altitudeGeoidalSeparation": "Altitudine Separazione Geoidale",
+ "altitudeMsl": "L'altitudine è riferita al livello medio del mare",
+ "dop": "Diluizione del PDOP di precisione (DOP) utilizzato per impostazione predefinita",
+ "hdopVdop": "Se DOP è impostato, usa i valori HDOP / VDOP invece di PDOP",
+ "numSatellites": "Numero di satelliti",
+ "sequenceNumber": "Numero sequenza",
+ "timestamp": "Data e ora",
+ "unset": "Non impostato",
+ "vehicleHeading": "Direzione del veicolo",
+ "vehicleSpeed": "Velocità del veicolo"
+ }
+ },
+ "power": {
+ "adcMultiplierOverride": {
+ "description": "Utilizzato per modificare la lettura della tensione della batteria",
+ "label": "Sovrascrivi rapporto moltiplicatore ADC"
+ },
+ "ina219Address": {
+ "description": "Indirizzo del monitor batteria INA219",
+ "label": "Indirizzo INA219"
+ },
+ "lightSleepDuration": {
+ "description": "Per quanto tempo il dispositivo sarà in light sleep",
+ "label": "Durata light sleep"
+ },
+ "minimumWakeTime": {
+ "description": "Quantità minima di tempo che il dispositivo rimarrà attivo per dopo aver ricevuto un pacchetto",
+ "label": "Tempo Di Risveglio Minimo"
+ },
+ "noConnectionBluetoothDisabled": {
+ "description": "Se il dispositivo non riceve una connessione Bluetooth, la radio BLE sarà disattivata dopo questo lungo periodo",
+ "label": "Nessuna Connessione Bluetooth Disabilitata"
+ },
+ "powerSavingEnabled": {
+ "description": "Selezionare se alimentato da una fonte a bassa corrente (cioè solare) per minimizzare il consumo energetico il più possibile.",
+ "label": "Abilita modalità risparmio energetico"
+ },
+ "shutdownOnBatteryDelay": {
+ "description": "Spegnimento automatico del nodo dopo questo lungo quando la batteria, 0 per indefinito",
+ "label": "Arresto in ritardo della batteria"
+ },
+ "superDeepSleepDuration": {
+ "description": "Per quanto tempo il dispositivo sarà in deep sleep",
+ "label": "Durata Super Deep Sleep"
+ },
+ "powerConfigSettings": {
+ "description": "Impostazioni per il modulo di alimentazione",
+ "label": "Configurazione Alimentazione"
+ },
+ "sleepSettings": {
+ "description": "Impostazioni di sospensione per il modulo di alimentazione",
+ "label": "Impostazioni Sleep"
+ }
+ },
+ "security": {
+ "description": "Impostazioni per la configurazione di sicurezza",
+ "title": "Impostazioni di Sicurezza",
+ "button_backupKey": "Chiave Di Backup",
+ "adminChannelEnabled": {
+ "description": "Consenti il controllo del dispositivo in arrivo sul canale di amministrazione ereditato insicuro",
+ "label": "Consenti Amministrazione Legacy"
+ },
+ "enableDebugLogApi": {
+ "description": "Output live debug logging su seriale, visualizza ed esporta i log di posizione dei dispositivi redatti su Bluetooth",
+ "label": "Abilita Debug Log API"
+ },
+ "managed": {
+ "description": "Se abilitata, le opzioni di configurazione del dispositivo possono essere modificate solo in remoto da un nodo di amministrazione remota tramite messaggi amministratori. Non abilitare questa opzione a meno che non sia stato configurato almeno un nodo Admin Remoto adatto, e la chiave pubblica è memorizzata in uno dei campi precedenti.",
+ "label": "Gestito"
+ },
+ "privateKey": {
+ "description": "Usato per creare una chiave condivisa con un dispositivo remoto",
+ "label": "Chiave Privata"
+ },
+ "publicKey": {
+ "description": "Inviato ad altri nodi sulla mesh per consentire loro di calcolare una chiave segreta condivisa",
+ "label": "Chiave Pubblica"
+ },
+ "primaryAdminKey": {
+ "description": "La chiave pubblica primaria autorizzata a inviare messaggi di amministrazione a questo nodo",
+ "label": "Chiave Primaria Dell'Amministratore"
+ },
+ "secondaryAdminKey": {
+ "description": "La chiave pubblica secondaria autorizzata a inviare messaggi di amministrazione a questo nodo",
+ "label": "Chiave Secondaria Dell'Amministratore"
+ },
+ "serialOutputEnabled": {
+ "description": "Console seriale attraverso la Stream API",
+ "label": "Output Seriale Abilitato"
+ },
+ "tertiaryAdminKey": {
+ "description": "La chiave pubblica terziaria autorizzata a inviare messaggi di amministrazione a questo nodo",
+ "label": "Chiave Di Amministrazione Terziaria"
+ },
+ "adminSettings": {
+ "description": "Impostazioni per Amministratore",
+ "label": "Impostazioni Amministratore"
+ },
+ "loggingSettings": {
+ "description": "Impostazioni per il logging",
+ "label": "Impostazioni Di Logging"
+ }
+ },
+ "user": {
+ "title": "User Settings",
+ "description": "Configure your device name and identity settings",
+ "longName": {
+ "label": "Nome Lungo",
+ "description": "Your full display name (1-40 characters)",
+ "validation": {
+ "min": "Long name must be at least 1 character",
+ "max": "Long name must be at most 40 characters"
+ }
+ },
+ "shortName": {
+ "label": "Nome Breve",
+ "description": "Your abbreviated name (2-4 characters)",
+ "validation": {
+ "min": "Short name must be at least 2 characters",
+ "max": "Short name must be at most 4 characters"
+ }
+ },
+ "isUnmessageable": {
+ "label": "Non messaggabile",
+ "description": "Used to identify unmonitored or infrastructure nodes so that messaging is not available to nodes that will never respond."
+ },
+ "isLicensed": {
+ "label": "Radioamatori con licenza (HAM)",
+ "description": "Enable if you are a licensed amateur radio operator, enabling this option disables encryption and is not compatible with the default Meshtastic network."
+ }
+ }
+}
diff --git a/packages/web/public/i18n/locales/it-IT/dashboard.json b/packages/web/public/i18n/locales/it-IT/dashboard.json
index e92dc5ad..c31423a9 100644
--- a/packages/web/public/i18n/locales/it-IT/dashboard.json
+++ b/packages/web/public/i18n/locales/it-IT/dashboard.json
@@ -1,12 +1,12 @@
{
- "dashboard": {
- "title": "Dispositivi Connessi",
- "description": "Gestisci i tuoi dispositivi Meshtastic collegati.",
- "connectionType_ble": "BLE",
- "connectionType_serial": "Seriale",
- "connectionType_network": "Rete",
- "noDevicesTitle": "Nessun dispositivo connesso",
- "noDevicesDescription": "Connetti un nuovo dispositivo per iniziare.",
- "button_newConnection": "Nuova connessione"
- }
+ "dashboard": {
+ "title": "Dispositivi Connessi",
+ "description": "Gestisci i tuoi dispositivi Meshtastic collegati.",
+ "connectionType_ble": "BLE",
+ "connectionType_serial": "Seriale",
+ "connectionType_network": "Rete",
+ "noDevicesTitle": "Nessun dispositivo connesso",
+ "noDevicesDescription": "Connetti un nuovo dispositivo per iniziare.",
+ "button_newConnection": "Nuova connessione"
+ }
}
diff --git a/packages/web/public/i18n/locales/it-IT/dialog.json b/packages/web/public/i18n/locales/it-IT/dialog.json
index f7bac97a..39da617e 100644
--- a/packages/web/public/i18n/locales/it-IT/dialog.json
+++ b/packages/web/public/i18n/locales/it-IT/dialog.json
@@ -1,193 +1,221 @@
{
- "deleteMessages": {
- "description": "Questa azione cancellerà tutta la cronologia dei messaggi. Non può essere annullata. Sei sicuro di voler continuare?",
- "title": "Cancella Tutti I Messaggi"
- },
- "deviceName": {
- "description": "Il dispositivo verrà riavviato una volta salvata la configurazione.",
- "longName": "Nome Lungo",
- "shortName": "Nome Breve",
- "title": "Cambia Nome Dispositivo",
- "validation": {
- "longNameMax": "Long name must not be more than 40 characters",
- "shortNameMax": "Short name must not be more than 4 characters",
- "longNameMin": "Long name must have at least 1 character",
- "shortNameMin": "Short name must have at least 1 character"
- }
- },
- "import": {
- "description": "La configurazione attuale di LoRa sarà sovrascritta.",
- "error": {
- "invalidUrl": "URL Meshtastic non valido"
- },
- "channelPrefix": "Canale: ",
- "channelSetUrl": "URL del Set di Canali/Codice QR",
- "channels": "Canali:",
- "usePreset": "Utilizza il preset?",
- "title": "Importa Set Canale"
- },
- "locationResponse": {
- "title": "Posizione: {{identifier}}",
- "altitude": "Altitudine: ",
- "coordinates": "Coordinate: ",
- "noCoordinates": "No Coordinates"
- },
- "pkiRegenerateDialog": {
- "title": "Rigenerare La Chiave Pre-Condivisa?",
- "description": "Sei sicuro di voler rigenerare la chiave pre-condivisa?",
- "regenerate": "Rigenera"
- },
- "newDeviceDialog": {
- "title": "Connetti Nuovo Dispositivo",
- "https": "https",
- "http": "http",
- "tabHttp": "HTTP",
- "tabBluetooth": "Bluetooth",
- "tabSerial": "Seriale",
- "useHttps": "Usa HTTPS",
- "connecting": "Connessione in corso...",
- "connect": "Connetti",
- "connectionFailedAlert": {
- "title": "Connessione fallita",
- "descriptionPrefix": "Impossibile connettersi al dispositivo.",
- "httpsHint": "Se si utilizza HTTPS, potrebbe essere necessario prima accettare un certificato autofirmato. ",
- "openLinkPrefix": "Apri per favore ",
- "openLinkSuffix": " in una nuova scheda",
- "acceptTlsWarningSuffix": ", accetta eventuali avvisi TLS se richiesto, quindi riprova",
- "learnMoreLink": "Maggiori informazioni"
- },
- "httpConnection": {
- "label": "Indirizzo IP/Hostname",
- "placeholder": "000.000.000.000 / meshtastic.local"
- },
- "serialConnection": {
- "noDevicesPaired": "Nessun dispositivo ancora abbinato.",
- "newDeviceButton": "Nuovo dispositivo",
- "deviceIdentifier": "# {{index}} - {{vendorId}} - {{productId}}"
- },
- "bluetoothConnection": {
- "noDevicesPaired": "Nessun dispositivo ancora abbinato.",
- "newDeviceButton": "Nuovo dispositivo",
- "connectionFailed": "Connection failed",
- "deviceDisconnected": "Device disconnected",
- "unknownDevice": "Unknown Device",
- "errorLoadingDevices": "Error loading devices",
- "unknownErrorLoadingDevices": "Unknown error loading devices"
- },
- "validation": {
- "requiresWebBluetooth": "This connection type requires <0>Web Bluetooth0>. Please use a supported browser, like Chrome or Edge.",
- "requiresWebSerial": "This connection type requires <0>Web Serial0>. Please use a supported browser, like Chrome or Edge.",
- "requiresSecureContext": "Questa applicazione richiede un <0>contesto sicuro0>. Si prega di connettersi utilizzando HTTPS o localhost.",
- "additionallyRequiresSecureContext": "Inoltre, richiede un <0>contesto sicuro0>. Si prega di connettersi utilizzando HTTPS o localhost."
- }
- },
- "nodeDetails": {
- "message": "Messaggio",
- "requestPosition": "Richiedi posizione",
- "traceRoute": "Trace Route",
- "airTxUtilization": "Tempo di Trasmissione Utilizzato",
- "allRawMetrics": "Tutte Le Metriche Grezze:",
- "batteryLevel": "Livello batteria",
- "channelUtilization": "Utilizzo Canale",
- "details": "Dettagli:",
- "deviceMetrics": "Metriche Dispositivo:",
- "hardware": "Hardware: ",
- "lastHeard": "Ultimo Contatto: ",
- "nodeHexPrefix": "Node Hex: ",
- "nodeNumber": "Numero Nodo: ",
- "position": "Posizione:",
- "role": "Ruolo: ",
- "uptime": "Tempo di attività: ",
- "voltage": "Tensione",
- "title": "Dettagli nodo per {{identifier}}",
- "ignoreNode": "Ignora nodo",
- "removeNode": "Rimuovi Nodo",
- "unignoreNode": "Non ignorare più nodo",
- "security": "Security:",
- "publicKey": "Public Key: ",
- "messageable": "Messageable: ",
- "KeyManuallyVerifiedTrue": "Public Key has been manually verified",
- "KeyManuallyVerifiedFalse": "Public Key is not manually verified"
- },
- "pkiBackup": {
- "loseKeysWarning": "Se perdi le tue chiavi, dovrai reimpostare il tuo dispositivo.",
- "secureBackup": "È importante eseguire il backup delle chiavi pubbliche e private e memorizzare il backup in modo sicuro!",
- "footer": "=== END OF KEYS ===",
- "header": "=== MESHTASTIC KEYS FOR {{longName}} ({{shortName}}) ===",
- "privateKey": "Chiave Privata:",
- "publicKey": "Chiave Pubblica:",
- "fileName": "meshtastic_keys_{{longName}}_{{shortName}}.txt",
- "title": "Backup chiavi"
- },
- "pkiBackupReminder": {
- "description": "Ti consigliamo di eseguire regolarmente il backup delle tue chiavi. Vuoi eseguire un backup?",
- "title": "Backup Reminder",
- "remindLaterPrefix": "Remind me in",
- "remindNever": "Never remind me",
- "backupNow": "Back up now"
- },
- "pkiRegenerate": {
- "description": "Sei sicuro di voler rigenerare la coppia di chiavi?",
- "title": "Rigenera Coppia Chiavi"
- },
- "qr": {
- "addChannels": "Aggiungi canali",
- "replaceChannels": "Sostituisci Canali",
- "description": "Anche l'attuale configurazione di LoRa verrà condivisa.",
- "sharableUrl": "URL Condivisibile",
- "title": "Genera codice QR"
- },
- "reboot": {
- "title": "Reboot device",
- "description": "Reboot now or schedule a reboot of the connected node. Optionally, you can choose to reboot into OTA (Over-the-Air) mode.",
- "ota": "Reboot into OTA mode",
- "enterDelay": "Enter delay",
- "scheduled": "Il riavvio è stato pianificato",
- "schedule": "Schedule reboot",
- "now": "Reboot now",
- "cancel": "Cancel scheduled reboot"
- },
- "refreshKeys": {
- "description": {
- "acceptNewKeys": "Questo rimuoverà il nodo dal dispositivo e richiederà nuove chiavi.",
- "keyMismatchReasonSuffix": ". Ciò è dovuto alla chiave pubblica corrente del nodo remoto che non corrisponde alla chiave precedentemente memorizzata per questo nodo.",
- "unableToSendDmPrefix": "Il nodo non è in grado di inviare un messaggio diretto al nodo: "
- },
- "acceptNewKeys": "Accetta Nuove Chiavi",
- "title": "Chiavi Non Corrispondenti - {{identifier}}"
- },
- "removeNode": {
- "description": "Sei sicuro di voler rimuovere questo nodo?",
- "title": "Rimuovi Nodo?"
- },
- "shutdown": {
- "title": "Pianifica Spegnimento",
- "description": "Spegni il nodo connesso dopo x minuti."
- },
- "traceRoute": {
- "routeToDestination": "Percorso di destinazione:",
- "routeBack": "Percorso indietro:"
- },
- "tracerouteResponse": {
- "title": "Traceroute: {{identifier}}"
- },
- "unsafeRoles": {
- "confirmUnderstanding": "Sì, so cosa sto facendo",
- "conjunction": " e il blog post su ",
- "postamble": " e capisco le implicazioni di un cambiamento di ruolo.",
- "preamble": "Dichiaro di aver letto i ",
- "choosingRightDeviceRole": "Scegliere il ruolo corretto del dispositivo",
- "deviceRoleDocumentation": "Documentazione sul ruolo del dispositivo",
- "title": "Sei sicuro?"
- },
- "managedMode": {
- "confirmUnderstanding": "Sì, so cosa sto facendo",
- "title": "Sei sicuro?",
- "description": "Enabling Managed Mode blocks client applications (including the web client) from writing configurations to a radio. Once enabled, radio configurations can only be changed through Remote Admin messages. This setting is not required for remote node administration."
- },
- "clientNotification": {
- "title": "Notifiche Client",
- "TraceRoute can only be sent once every 30 seconds": "TraceRoute can only be sent once every 30 seconds",
- "Compromised keys were detected and regenerated.": "Compromised keys were detected and regenerated."
- }
+ "deleteMessages": {
+ "description": "Questa azione cancellerà tutta la cronologia dei messaggi. Non può essere annullata. Sei sicuro di voler continuare?",
+ "title": "Cancella Tutti I Messaggi"
+ },
+ "deviceName": {
+ "description": "Il dispositivo verrà riavviato una volta salvata la configurazione.",
+ "longName": "Nome Lungo",
+ "shortName": "Nome Breve",
+ "title": "Cambia Nome Dispositivo",
+ "validation": {
+ "longNameMax": "Long name must not be more than 40 characters",
+ "shortNameMax": "Short name must not be more than 4 characters",
+ "longNameMin": "Long name must have at least 1 character",
+ "shortNameMin": "Short name must have at least 1 character"
+ }
+ },
+ "import": {
+ "description": "La configurazione attuale di LoRa sarà sovrascritta.",
+ "error": {
+ "invalidUrl": "URL Meshtastic non valido"
+ },
+ "channelPrefix": "Canale: ",
+ "primary": "Primary ",
+ "doNotImport": "No not import",
+ "channelName": "Nome",
+ "channelSlot": "Slot",
+ "channelSetUrl": "URL del Set di Canali/Codice QR",
+ "useLoraConfig": "Import LoRa Config",
+ "presetDescription": "The current LoRa Config will be replaced.",
+ "title": "Importa Set Canale"
+ },
+ "locationResponse": {
+ "title": "Posizione: {{identifier}}",
+ "altitude": "Altitudine: ",
+ "coordinates": "Coordinate: ",
+ "noCoordinates": "No Coordinates"
+ },
+ "pkiRegenerateDialog": {
+ "title": "Rigenerare La Chiave Pre-Condivisa?",
+ "description": "Sei sicuro di voler rigenerare la chiave pre-condivisa?",
+ "regenerate": "Rigenera"
+ },
+ "newDeviceDialog": {
+ "title": "Connetti Nuovo Dispositivo",
+ "https": "https",
+ "http": "http",
+ "tabHttp": "HTTP",
+ "tabBluetooth": "Bluetooth",
+ "tabSerial": "Seriale",
+ "useHttps": "Usa HTTPS",
+ "connecting": "Connessione in corso...",
+ "connect": "Connetti",
+ "connectionFailedAlert": {
+ "title": "Connessione fallita",
+ "descriptionPrefix": "Impossibile connettersi al dispositivo.",
+ "httpsHint": "Se si utilizza HTTPS, potrebbe essere necessario prima accettare un certificato autofirmato. ",
+ "openLinkPrefix": "Apri per favore ",
+ "openLinkSuffix": " in una nuova scheda",
+ "acceptTlsWarningSuffix": ", accetta eventuali avvisi TLS se richiesto, quindi riprova",
+ "learnMoreLink": "Maggiori informazioni"
+ },
+ "httpConnection": {
+ "label": "Indirizzo IP/Hostname",
+ "placeholder": "000.000.000.000 / meshtastic.local"
+ },
+ "serialConnection": {
+ "noDevicesPaired": "Nessun dispositivo ancora abbinato.",
+ "newDeviceButton": "Nuovo dispositivo",
+ "deviceIdentifier": "# {{index}} - {{vendorId}} - {{productId}}"
+ },
+ "bluetoothConnection": {
+ "noDevicesPaired": "Nessun dispositivo ancora abbinato.",
+ "newDeviceButton": "Nuovo dispositivo",
+ "connectionFailed": "Connection failed",
+ "deviceDisconnected": "Device disconnected",
+ "unknownDevice": "Unknown Device",
+ "errorLoadingDevices": "Error loading devices",
+ "unknownErrorLoadingDevices": "Unknown error loading devices"
+ },
+ "validation": {
+ "requiresWebBluetooth": "This connection type requires <0>Web Bluetooth0>. Please use a supported browser, like Chrome or Edge.",
+ "requiresWebSerial": "This connection type requires <0>Web Serial0>. Please use a supported browser, like Chrome or Edge.",
+ "requiresSecureContext": "Questa applicazione richiede un <0>contesto sicuro0>. Si prega di connettersi utilizzando HTTPS o localhost.",
+ "additionallyRequiresSecureContext": "Inoltre, richiede un <0>contesto sicuro0>. Si prega di connettersi utilizzando HTTPS o localhost."
+ }
+ },
+ "nodeDetails": {
+ "message": "Messaggio",
+ "requestPosition": "Richiedi posizione",
+ "traceRoute": "Trace Route",
+ "airTxUtilization": "Tempo di Trasmissione Utilizzato",
+ "allRawMetrics": "Tutte Le Metriche Grezze:",
+ "batteryLevel": "Livello batteria",
+ "channelUtilization": "Utilizzo Canale",
+ "details": "Dettagli:",
+ "deviceMetrics": "Metriche Dispositivo:",
+ "hardware": "Hardware: ",
+ "lastHeard": "Ultimo Contatto: ",
+ "nodeHexPrefix": "Node Hex: ",
+ "nodeNumber": "Numero Nodo: ",
+ "position": "Posizione:",
+ "role": "Ruolo: ",
+ "uptime": "Tempo di attività: ",
+ "voltage": "Tensione",
+ "title": "Dettagli nodo per {{identifier}}",
+ "ignoreNode": "Ignora nodo",
+ "removeNode": "Rimuovi Nodo",
+ "unignoreNode": "Non ignorare più nodo",
+ "security": "Security:",
+ "publicKey": "Public Key: ",
+ "messageable": "Messageable: ",
+ "KeyManuallyVerifiedTrue": "Public Key has been manually verified",
+ "KeyManuallyVerifiedFalse": "Public Key is not manually verified"
+ },
+ "pkiBackup": {
+ "loseKeysWarning": "Se perdi le tue chiavi, dovrai reimpostare il tuo dispositivo.",
+ "secureBackup": "È importante eseguire il backup delle chiavi pubbliche e private e memorizzare il backup in modo sicuro!",
+ "footer": "=== END OF KEYS ===",
+ "header": "=== MESHTASTIC KEYS FOR {{longName}} ({{shortName}}) ===",
+ "privateKey": "Chiave Privata:",
+ "publicKey": "Chiave Pubblica:",
+ "fileName": "meshtastic_keys_{{longName}}_{{shortName}}.txt",
+ "title": "Backup chiavi"
+ },
+ "pkiBackupReminder": {
+ "description": "Ti consigliamo di eseguire regolarmente il backup delle tue chiavi. Vuoi eseguire un backup?",
+ "title": "Backup Reminder",
+ "remindLaterPrefix": "Remind me in",
+ "remindNever": "Never remind me",
+ "backupNow": "Back up now"
+ },
+ "pkiRegenerate": {
+ "description": "Sei sicuro di voler rigenerare la coppia di chiavi?",
+ "title": "Rigenera Coppia Chiavi"
+ },
+ "qr": {
+ "addChannels": "Aggiungi canali",
+ "replaceChannels": "Sostituisci Canali",
+ "description": "Anche l'attuale configurazione di LoRa verrà condivisa.",
+ "sharableUrl": "URL Condivisibile",
+ "title": "Genera codice QR"
+ },
+ "reboot": {
+ "title": "Reboot device",
+ "description": "Reboot now or schedule a reboot of the connected node. Optionally, you can choose to reboot into OTA (Over-the-Air) mode.",
+ "ota": "Reboot into OTA mode",
+ "enterDelay": "Enter delay",
+ "scheduled": "Il riavvio è stato pianificato",
+ "schedule": "Schedule reboot",
+ "now": "Reboot now",
+ "cancel": "Cancel scheduled reboot"
+ },
+ "refreshKeys": {
+ "description": {
+ "acceptNewKeys": "Questo rimuoverà il nodo dal dispositivo e richiederà nuove chiavi.",
+ "keyMismatchReasonSuffix": ". Ciò è dovuto alla chiave pubblica corrente del nodo remoto che non corrisponde alla chiave precedentemente memorizzata per questo nodo.",
+ "unableToSendDmPrefix": "Il nodo non è in grado di inviare un messaggio diretto al nodo: "
+ },
+ "acceptNewKeys": "Accetta Nuove Chiavi",
+ "title": "Chiavi Non Corrispondenti - {{identifier}}"
+ },
+ "removeNode": {
+ "description": "Sei sicuro di voler rimuovere questo nodo?",
+ "title": "Rimuovi Nodo?"
+ },
+ "shutdown": {
+ "title": "Pianifica Spegnimento",
+ "description": "Spegni il nodo connesso dopo x minuti."
+ },
+ "traceRoute": {
+ "routeToDestination": "Percorso di destinazione:",
+ "routeBack": "Percorso indietro:"
+ },
+ "tracerouteResponse": {
+ "title": "Traceroute: {{identifier}}"
+ },
+ "unsafeRoles": {
+ "confirmUnderstanding": "Sì, so cosa sto facendo",
+ "conjunction": " e il blog post su ",
+ "postamble": " e capisco le implicazioni di un cambiamento di ruolo.",
+ "preamble": "Dichiaro di aver letto i ",
+ "choosingRightDeviceRole": "Scegliere il ruolo corretto del dispositivo",
+ "deviceRoleDocumentation": "Documentazione sul ruolo del dispositivo",
+ "title": "Sei sicuro?"
+ },
+ "managedMode": {
+ "confirmUnderstanding": "Sì, so cosa sto facendo",
+ "title": "Sei sicuro?",
+ "description": "Enabling Managed Mode blocks client applications (including the web client) from writing configurations to a radio. Once enabled, radio configurations can only be changed through Remote Admin messages. This setting is not required for remote node administration."
+ },
+ "clientNotification": {
+ "title": "Notifiche Client",
+ "TraceRoute can only be sent once every 30 seconds": "TraceRoute can only be sent once every 30 seconds",
+ "Compromised keys were detected and regenerated.": "Compromised keys were detected and regenerated."
+ },
+ "resetNodeDb": {
+ "title": "Reset Node Database",
+ "description": "This will clear all nodes from the connected device's node database and clear all message history in the client. This cannot be undone. Are you sure you want to continue?",
+ "confirm": "Reset Node Database",
+ "failedTitle": "There was an error resetting the Node DB. Please try again."
+ },
+ "clearAllStores": {
+ "title": "Clear All Local Storage",
+ "description": "This will clear all locally stored data, including message history and node databases for all previously connected devices. This will require you to reconnect to your node once complete and cannot be undone. Are you sure you want to continue?",
+ "confirm": "Clear all local storage",
+ "failedTitle": "There was an error clearing local storage. Please try again."
+ },
+ "factoryResetDevice": {
+ "title": "Factory reset dispositivo",
+ "description": "This will factory reset the connected device, erasing all configurations and data on the device as well as all nodes and messages saved in the client. This cannot be undone. Are you sure you want to continue?",
+ "confirm": "Factory reset dispositivo",
+ "failedTitle": "There was an error performing the factory reset. Please try again."
+ },
+ "factoryResetConfig": {
+ "title": "Factory reset impostazioni",
+ "description": "This will factory reset the configuration on the connected device, erasing all configurations on the device. This cannot be undone. Are you sure you want to continue?",
+ "confirm": "Factory reset impostazioni",
+ "failedTitle": "There was an error performing the factory reset. Please try again."
+ }
}
diff --git a/packages/web/public/i18n/locales/it-IT/map.json b/packages/web/public/i18n/locales/it-IT/map.json
new file mode 100644
index 00000000..810ce272
--- /dev/null
+++ b/packages/web/public/i18n/locales/it-IT/map.json
@@ -0,0 +1,38 @@
+{
+ "maplibre": {
+ "GeolocateControl.FindMyLocation": "Find my location",
+ "NavigationControl.ZoomIn": "Zoom in",
+ "NavigationControl.ZoomOut": "Zoom out",
+ "CooperativeGesturesHandler.WindowsHelpText": "Use Ctrl + scroll to zoom the map",
+ "CooperativeGesturesHandler.MacHelpText": "Use ⌘ + scroll to zoom the map",
+ "CooperativeGesturesHandler.MobileHelpText": "Use two fingers to move the map"
+ },
+ "layerTool": {
+ "nodeMarkers": "Show nodes",
+ "directNeighbors": "Show direct connections",
+ "remoteNeighbors": "Show remote connections",
+ "positionPrecision": "Show position precision",
+ "traceroutes": "Show traceroutes",
+ "waypoints": "Show waypoints"
+ },
+ "mapMenu": {
+ "locateAria": "Locate my node",
+ "layersAria": "Change map style"
+ },
+ "waypointDetail": {
+ "edit": "Modifica",
+ "description": "Description:",
+ "createdBy": "Edited by:",
+ "createdDate": "Created:",
+ "updated": "Updated:",
+ "expires": "Expires:",
+ "distance": "Distance:",
+ "bearing": "Absolute bearing:",
+ "lockedTo": "Locked by:",
+ "latitude": "Latitude:",
+ "longitude": "Longitude:"
+ },
+ "myNode": {
+ "tooltip": "This device"
+ }
+}
diff --git a/packages/web/public/i18n/locales/it-IT/messages.json b/packages/web/public/i18n/locales/it-IT/messages.json
index 645c22df..7a8cd6bd 100644
--- a/packages/web/public/i18n/locales/it-IT/messages.json
+++ b/packages/web/public/i18n/locales/it-IT/messages.json
@@ -1,39 +1,39 @@
{
- "page": {
- "title": "Messaggi: {{chatName}}",
- "placeholder": "Enter Message"
- },
- "emptyState": {
- "title": "Seleziona una chat",
- "text": "Ancora nessun messaggio."
- },
- "selectChatPrompt": {
- "text": "Selezionare un canale o un nodo per iniziare a messaggiare."
- },
- "sendMessage": {
- "placeholder": "Enter your message here...",
- "sendButton": "Invia"
- },
- "actionsMenu": {
- "addReactionLabel": "Aggiungi una Reazione",
- "replyLabel": "Rispondi"
- },
- "deliveryStatus": {
- "delivered": {
- "label": "Messaggio inviato",
- "displayText": "Messaggio inviato"
- },
- "failed": {
- "label": "Invio messaggio non riuscito",
- "displayText": "Invio fallito"
- },
- "unknown": {
- "label": "Stato messaggio sconosciuto",
- "displayText": "Stato sconosciuto"
- },
- "waiting": {
- "label": "Inviando il messaggio...",
- "displayText": "In attesa della consegna"
- }
- }
+ "page": {
+ "title": "Messaggi: {{chatName}}",
+ "placeholder": "Enter Message"
+ },
+ "emptyState": {
+ "title": "Seleziona una chat",
+ "text": "Ancora nessun messaggio."
+ },
+ "selectChatPrompt": {
+ "text": "Selezionare un canale o un nodo per iniziare a messaggiare."
+ },
+ "sendMessage": {
+ "placeholder": "Enter your message here...",
+ "sendButton": "Invia"
+ },
+ "actionsMenu": {
+ "addReactionLabel": "Aggiungi una Reazione",
+ "replyLabel": "Rispondi"
+ },
+ "deliveryStatus": {
+ "delivered": {
+ "label": "Messaggio inviato",
+ "displayText": "Messaggio inviato"
+ },
+ "failed": {
+ "label": "Invio messaggio non riuscito",
+ "displayText": "Invio fallito"
+ },
+ "unknown": {
+ "label": "Stato messaggio sconosciuto",
+ "displayText": "Stato sconosciuto"
+ },
+ "waiting": {
+ "label": "Inviando il messaggio...",
+ "displayText": "In attesa della consegna"
+ }
+ }
}
diff --git a/packages/web/public/i18n/locales/it-IT/moduleConfig.json b/packages/web/public/i18n/locales/it-IT/moduleConfig.json
index 0882edb4..78052629 100644
--- a/packages/web/public/i18n/locales/it-IT/moduleConfig.json
+++ b/packages/web/public/i18n/locales/it-IT/moduleConfig.json
@@ -1,448 +1,448 @@
{
- "page": {
- "tabAmbientLighting": "Luce Ambientale",
- "tabAudio": "Audio",
- "tabCannedMessage": "Predefiniti",
- "tabDetectionSensor": "Sensore Di Rilevamento",
- "tabExternalNotification": "Notifica Esterna",
- "tabMqtt": "MQTT",
- "tabNeighborInfo": "Informazioni Vicinato",
- "tabPaxcounter": "Paxcounter",
- "tabRangeTest": "Test Distanza",
- "tabSerial": "Seriale",
- "tabStoreAndForward": "S&I",
- "tabTelemetry": "Telemetria"
- },
- "ambientLighting": {
- "title": "Configurazione Illuminazione Ambientale",
- "description": "Impostazioni per il modulo Illuminazione Ambientale",
- "ledState": {
- "label": "Stato LED",
- "description": "Imposta LED su acceso o spento"
- },
- "current": {
- "label": "Attuale",
- "description": "Imposta la corrente per l'uscita LED. Il valore predefinito è 10"
- },
- "red": {
- "label": "Rosso",
- "description": "Imposta il livello rosso del LED. I valori sono 0-255"
- },
- "green": {
- "label": "Verde",
- "description": "Imposta il livello verde del LED. I valori sono 0-255"
- },
- "blue": {
- "label": "Blu",
- "description": "Imposta il livello blu del LED. I valori sono 0-255"
- }
- },
- "audio": {
- "title": "Impostazioni audio",
- "description": "Impostazioni per il modulo audio",
- "codec2Enabled": {
- "label": "Codec 2 Abilitato",
- "description": "Abilita la codifica audio Codec 2"
- },
- "pttPin": {
- "label": "Pin PTT",
- "description": "GPIO pin da utilizzare per PTT"
- },
- "bitrate": {
- "label": "Bitrate",
- "description": "Bitrate da usare per la codifica audio"
- },
- "i2sWs": {
- "label": "i2S WS",
- "description": "GPIO pin da usare per i2S WS"
- },
- "i2sSd": {
- "label": "i2S SD",
- "description": "GPIO pin da usare per i2S SD"
- },
- "i2sDin": {
- "label": "i2S DIN",
- "description": "GPIO pin da usare per i2S DIN"
- },
- "i2sSck": {
- "label": "i2S SCK",
- "description": "GPIO pin da usare per i2S SCK"
- }
- },
- "cannedMessage": {
- "title": "Impostazioni Messaggi Predefiniti",
- "description": "Impostazioni per i Messaggi Predefiniti",
- "moduleEnabled": {
- "label": "Modulo abilitato",
- "description": "Abilita Messaggi Predefiniti"
- },
- "rotary1Enabled": {
- "label": "Encoder Rotativo #1 Abilitato",
- "description": "Abilita l'encoder rotativo"
- },
- "inputbrokerPinA": {
- "label": "Encoder Pin A",
- "description": "Valore Pin GPIO (1-39) Per porta encoder A"
- },
- "inputbrokerPinB": {
- "label": "Encoder Pin B",
- "description": "Valore Pin GPIO (1-39) Per porta encoder B"
- },
- "inputbrokerPinPress": {
- "label": "Pin Pressione Encoder",
- "description": "Valore Pin GPIO (1-39) Per la pressione dell'encoder"
- },
- "inputbrokerEventCw": {
- "label": "Evento in senso orario",
- "description": "Seleziona evento in ingresso."
- },
- "inputbrokerEventCcw": {
- "label": "Evento in senso antiorario",
- "description": "Seleziona evento in ingresso."
- },
- "inputbrokerEventPress": {
- "label": "Evento pressione",
- "description": "Seleziona evento in ingresso"
- },
- "updown1Enabled": {
- "label": "Su Giù abilitato",
- "description": "Abilita l'encoder su / giù"
- },
- "allowInputSource": {
- "label": "Consenti sorgente di input",
- "description": "Seleziona da: '_any', 'rotEnc1', 'upDownEnc1', 'cardkb'"
- },
- "sendBell": {
- "label": "Invia Campanella",
- "description": "Invia un carattere campanella con ogni messaggio"
- }
- },
- "detectionSensor": {
- "title": "Configurazione Sensore Rilevamento",
- "description": "Impostazioni per il modulo sensore di rilevamento",
- "enabled": {
- "label": "Abilitato",
- "description": "Abilita o disabilita il modulo del sensore di rilevamento"
- },
- "minimumBroadcastSecs": {
- "label": "Secondi Di Trasmissione Minimi",
- "description": "L'intervallo in secondi di quanto spesso possiamo inviare un messaggio alla mesh quando viene rilevato un cambiamento di stato"
- },
- "stateBroadcastSecs": {
- "label": "Secondi Trasmissione di Stato",
- "description": "L'intervallo in secondi di quanto spesso dovremmo inviare un messaggio alla mesh con lo stato attuale indipendentemente dai cambiamenti"
- },
- "sendBell": {
- "label": "Invia Campanella",
- "description": "Invia campanella ASCII con messaggio di avviso"
- },
- "name": {
- "label": "Nome Descrittivo",
- "description": "Usato per formattare il messaggio inviato a mesh, max 20 Caratteri"
- },
- "monitorPin": {
- "label": "Pin Monitor",
- "description": "Il pin GPIO da monitorare per i cambiamenti di stato"
- },
- "detectionTriggerType": {
- "label": "Tipo di trigger di rilevamento",
- "description": "Il tipo di evento di trigger da usare"
- },
- "usePullup": {
- "label": "Usa Pullup",
- "description": "Indica se usare o meno la modalità INPUT_PULLUP per il pin GPIO"
- }
- },
- "externalNotification": {
- "title": "Configurazione Notifiche Esterne",
- "description": "Configura il modulo notifiche esterno",
- "enabled": {
- "label": "Modulo abilitato",
- "description": "Abilita Notifiche Esterne"
- },
- "outputMs": {
- "label": "Output MS",
- "description": "Output MS"
- },
- "output": {
- "label": "Output",
- "description": "Output"
- },
- "outputVibra": {
- "label": "Vibrazione Output",
- "description": "Vibrazione Output"
- },
- "outputBuzzer": {
- "label": "Buzzer Output",
- "description": "Buzzer Output"
- },
- "active": {
- "label": "Attivo",
- "description": "Attivo"
- },
- "alertMessage": {
- "label": "Messaggio di allerta",
- "description": "Messaggio di allerta"
- },
- "alertMessageVibra": {
- "label": "Vibrazione Messaggio Di Allerta",
- "description": "Vibrazione Messaggio Di Allerta"
- },
- "alertMessageBuzzer": {
- "label": "Buzzer Messaggio Di Allerta",
- "description": "Buzzer Messaggio Di Allerta"
- },
- "alertBell": {
- "label": "Campanella Di Allarme",
- "description": "Occorre attivare una segnalazione quando si riceve un campanello in entrata?"
- },
- "alertBellVibra": {
- "label": "Vibrazione campanella di allarme",
- "description": "Vibrazione campanella di allarme"
- },
- "alertBellBuzzer": {
- "label": "Buzzer campanella di allarme",
- "description": "Buzzer campanella di allarme"
- },
- "usePwm": {
- "label": "Usa PWM",
- "description": "Usa PWM"
- },
- "nagTimeout": {
- "label": "Nag Timeout",
- "description": "Nag Timeout"
- },
- "useI2sAsBuzzer": {
- "label": "Usa I2S come buzzer",
- "description": "Designa il Pin I²S come Uscita Buzzer"
- }
- },
- "mqtt": {
- "title": "Impostazioni MQTT",
- "description": "Impostazioni per il modulo MQTT",
- "enabled": {
- "label": "Abilitato",
- "description": "Abilita o disabilita MQTT"
- },
- "address": {
- "label": "Indirizzo Server MQTT",
- "description": "Indirizzo server MQTT da usare per i server predefiniti/personalizzati"
- },
- "username": {
- "label": "Username MQTT",
- "description": "Username MQTT da usare per i server predefiniti/personalizzati"
- },
- "password": {
- "label": "Password MQTT",
- "description": "Password MQTT da usare per server predefiniti/personalizzati"
- },
- "encryptionEnabled": {
- "label": "Crittografia Abilitata",
- "description": "Abilita o disabilita la crittografia MQTT. Nota: Tutti i messaggi sono inviati al broker MQTT non cifrati se questa opzione non è abilitata, anche quando i canali uplink hanno chiavi di crittografia impostate. Ciò include i dati di posizione."
- },
- "jsonEnabled": {
- "label": "JSON Abilitato",
- "description": "Indica se inviare/consumare pacchetti JSON su MQTT"
- },
- "tlsEnabled": {
- "label": "TLS abilitato",
- "description": "Abilita o disabilita MQTT"
- },
- "root": {
- "label": "Root topic",
- "description": "Topic root MQTT da utilizzare per server predefiniti/personalizzati"
- },
- "proxyToClientEnabled": {
- "label": "Proxy Client MQTT Abilitato",
- "description": "Utilizza la connessione di rete per fare da proxy ai messaggi MQTT verso il client."
- },
- "mapReportingEnabled": {
- "label": "Segnalazione sulla Mappa Abilitata",
- "description": "Il tuo nodo invierà periodicamente un pacchetto di segnalazione mappa non criptato al server MQTT configurato, questo include id, nome breve e lungo, posizione approssimativa, modello hardware, ruolo, versione del firmware, regione LoRa, preset del modem e nome del canale primario."
- },
- "mapReportSettings": {
- "publishIntervalSecs": {
- "label": "Intervallo di Pubblicazione Segnalazione Mappa (s)",
- "description": "Intervallo in secondi per pubblicare le segnalazioni mappa"
- },
- "positionPrecision": {
- "label": "Posizione Approssimativa",
- "description": "La posizione condivisa sarà accurata entro questa distanza",
- "options": {
- "metric_km23": "Entro 23 km",
- "metric_km12": "Entro 12 km",
- "metric_km5_8": "Entro 5,8 km",
- "metric_km2_9": "Entro 2,9 km",
- "metric_km1_5": "Entro 1,5 km",
- "metric_m700": "Entro 700 m",
- "metric_m350": "Entro 350 m",
- "metric_m200": "Entro 200 m",
- "metric_m90": "Entro 90 m",
- "metric_m50": "Entro 50 m",
- "imperial_mi15": "Entro 15 miglia",
- "imperial_mi7_3": "Entro 7,3 miglia",
- "imperial_mi3_6": "Entro 3,6 miglia",
- "imperial_mi1_8": "Entro 1,8 miglia",
- "imperial_mi0_9": "Entro 0,9 miglia",
- "imperial_mi0_5": "Entro 0,5 miglia",
- "imperial_mi0_2": "Entro 0,2 miglia",
- "imperial_ft600": "Entro 600 piedi",
- "imperial_ft300": "Entro 300 piedi",
- "imperial_ft150": "Entro 150 piedi"
- }
- }
- }
- },
- "neighborInfo": {
- "title": "Impostazioni Informazioni Vicini",
- "description": "Impostazioni per il modulo Informazioni Vicini",
- "enabled": {
- "label": "Abilitato",
- "description": "Abilita o disabilita Modulo Info Vicini"
- },
- "updateInterval": {
- "label": "Intervallo di Aggiornamento",
- "description": "Intervallo in secondi di quanto spesso dovremmo cercare di inviare le nostre Info Vicini alla mesh"
- }
- },
- "paxcounter": {
- "title": "Impostazioni Paxcounter",
- "description": "Impostazioni per il modulo Paxcounter",
- "enabled": {
- "label": "Modulo abilitato",
- "description": "Abilita Paxcounter"
- },
- "paxcounterUpdateInterval": {
- "label": "Intervallo di aggiornamento (secondi)",
- "description": "Per quanto tempo attendere tra l'invio di pacchetti paxcounter"
- },
- "wifiThreshold": {
- "label": "Soglia RSSI WiFi",
- "description": "A quale livello RSSI WiFi dovrebbe aumentare il contatore. Predefinito a -80."
- },
- "bleThreshold": {
- "label": "Soglia RSSI BLE",
- "description": "A quale livello RSSI BLE dovrebbe aumentare il contatore. Predefinito a -80."
- }
- },
- "rangeTest": {
- "title": "Impostazioni Di Range Test",
- "description": "Impostazioni per il modulo Range Test",
- "enabled": {
- "label": "Modulo abilitato",
- "description": "Abilita Range Test"
- },
- "sender": {
- "label": "Intervallo Dei Messaggi",
- "description": "Per quanto tempo attendere tra l'invio dei pacchetti di test"
- },
- "save": {
- "label": "Salva CSV nella memoria",
- "description": "Solo ESP32"
- }
- },
- "serial": {
- "title": "Impostazioni Seriale",
- "description": "Impostazioni per il modulo seriale",
- "enabled": {
- "label": "Modulo abilitato",
- "description": "Abilita output seriale"
- },
- "echo": {
- "label": "Echo",
- "description": "Tutti i pacchetti che invii verranno rimandati indietro al tuo dispositivo"
- },
- "rxd": {
- "label": "Pin di ricezione",
- "description": "Imposta il pin GPIO al pin RXD che hai configurato."
- },
- "txd": {
- "label": "Pin di trasmissione",
- "description": "Imposta il pin GPIO al pin TXD che hai configurato."
- },
- "baud": {
- "label": "Baud rate",
- "description": "La velocità di trasmissione seriale"
- },
- "timeout": {
- "label": "Timeout",
- "description": "Secondi da attesa prima di considerare il tuo pacchetto come 'fatto'"
- },
- "mode": {
- "label": "Modalità",
- "description": "Seleziona modalità"
- },
- "overrideConsoleSerialPort": {
- "label": "Sovrascrivi La Porta Seriale Della Console",
- "description": "Se si dispone di una porta seriale collegata alla console, questa verrà sostituita."
- }
- },
- "storeForward": {
- "title": "Configurazione Salva & Inoltra",
- "description": "Impostazioni per il modulo Salva & Inoltra",
- "enabled": {
- "label": "Modulo abilitato",
- "description": "Abilita Salva & Inoltra"
- },
- "heartbeat": {
- "label": "Heartbeat Abilitato",
- "description": "Abilita heartbeat Store & Forward"
- },
- "records": {
- "label": "Numero di record",
- "description": "Numero di record da memorizzare"
- },
- "historyReturnMax": {
- "label": "Cronologia ritorno max",
- "description": "Numero massimo di record da restituire"
- },
- "historyReturnWindow": {
- "label": "Finestra di ritorno cronologia",
- "description": "Restituisce i record da questa finestra temporale (minuti)"
- }
- },
- "telemetry": {
- "title": "Impostazioni Telemetria",
- "description": "Impostazioni per il modulo Telemetria",
- "deviceUpdateInterval": {
- "label": "Metriche Dispositivo",
- "description": "Intervallo aggiornamento metriche dispositivo (secondi)"
- },
- "environmentUpdateInterval": {
- "label": "Intervallo aggiornamento metriche ambientali (secondi)",
- "description": ""
- },
- "environmentMeasurementEnabled": {
- "label": "Modulo abilitato",
- "description": "Abilita la telemetria Ambiente"
- },
- "environmentScreenEnabled": {
- "label": "Visualizzato sullo schermo",
- "description": "Mostra il modulo di telemetria sull'OLED"
- },
- "environmentDisplayFahrenheit": {
- "label": "Mostra Fahrenheit",
- "description": "Mostra la temperatura in Fahrenheit"
- },
- "airQualityEnabled": {
- "label": "Qualità Dell'Aria Abilitata",
- "description": "Abilita la telemetria della qualità dell'aria"
- },
- "airQualityInterval": {
- "label": "Intervallo Di Aggiornamento Qualità Dell'Aria",
- "description": "Quanto spesso inviare dati sulla qualità dell'aria sulla mesh"
- },
- "powerMeasurementEnabled": {
- "label": "Misurazione Alimentazione Abilitata",
- "description": "Abilita la telemetria di misura della alimentazione"
- },
- "powerUpdateInterval": {
- "label": "Intervallo Di Aggiornamento Alimentazione",
- "description": "Quanto spesso inviare i dati di alimentazione sulla mesh"
- },
- "powerScreenEnabled": {
- "label": "Schermo Di Alimentazione Abilitato",
- "description": "Abilita lo schermo di Telemetria di alimentazione"
- }
- }
+ "page": {
+ "tabAmbientLighting": "Luce Ambientale",
+ "tabAudio": "Audio",
+ "tabCannedMessage": "Predefiniti",
+ "tabDetectionSensor": "Sensore Di Rilevamento",
+ "tabExternalNotification": "Notifica Esterna",
+ "tabMqtt": "MQTT",
+ "tabNeighborInfo": "Informazioni Vicinato",
+ "tabPaxcounter": "Paxcounter",
+ "tabRangeTest": "Test Distanza",
+ "tabSerial": "Seriale",
+ "tabStoreAndForward": "S&I",
+ "tabTelemetry": "Telemetria"
+ },
+ "ambientLighting": {
+ "title": "Configurazione Illuminazione Ambientale",
+ "description": "Impostazioni per il modulo Illuminazione Ambientale",
+ "ledState": {
+ "label": "Stato LED",
+ "description": "Imposta LED su acceso o spento"
+ },
+ "current": {
+ "label": "Attuale",
+ "description": "Imposta la corrente per l'uscita LED. Il valore predefinito è 10"
+ },
+ "red": {
+ "label": "Rosso",
+ "description": "Imposta il livello rosso del LED. I valori sono 0-255"
+ },
+ "green": {
+ "label": "Verde",
+ "description": "Imposta il livello verde del LED. I valori sono 0-255"
+ },
+ "blue": {
+ "label": "Blu",
+ "description": "Imposta il livello blu del LED. I valori sono 0-255"
+ }
+ },
+ "audio": {
+ "title": "Impostazioni audio",
+ "description": "Impostazioni per il modulo audio",
+ "codec2Enabled": {
+ "label": "Codec 2 Abilitato",
+ "description": "Abilita la codifica audio Codec 2"
+ },
+ "pttPin": {
+ "label": "Pin PTT",
+ "description": "GPIO pin da utilizzare per PTT"
+ },
+ "bitrate": {
+ "label": "Bitrate",
+ "description": "Bitrate da usare per la codifica audio"
+ },
+ "i2sWs": {
+ "label": "i2S WS",
+ "description": "GPIO pin da usare per i2S WS"
+ },
+ "i2sSd": {
+ "label": "i2S SD",
+ "description": "GPIO pin da usare per i2S SD"
+ },
+ "i2sDin": {
+ "label": "i2S DIN",
+ "description": "GPIO pin da usare per i2S DIN"
+ },
+ "i2sSck": {
+ "label": "i2S SCK",
+ "description": "GPIO pin da usare per i2S SCK"
+ }
+ },
+ "cannedMessage": {
+ "title": "Impostazioni Messaggi Predefiniti",
+ "description": "Impostazioni per i Messaggi Predefiniti",
+ "moduleEnabled": {
+ "label": "Modulo abilitato",
+ "description": "Abilita Messaggi Predefiniti"
+ },
+ "rotary1Enabled": {
+ "label": "Encoder Rotativo #1 Abilitato",
+ "description": "Abilita l'encoder rotativo"
+ },
+ "inputbrokerPinA": {
+ "label": "Encoder Pin A",
+ "description": "Valore Pin GPIO (1-39) Per porta encoder A"
+ },
+ "inputbrokerPinB": {
+ "label": "Encoder Pin B",
+ "description": "Valore Pin GPIO (1-39) Per porta encoder B"
+ },
+ "inputbrokerPinPress": {
+ "label": "Pin Pressione Encoder",
+ "description": "Valore Pin GPIO (1-39) Per la pressione dell'encoder"
+ },
+ "inputbrokerEventCw": {
+ "label": "Evento in senso orario",
+ "description": "Seleziona evento in ingresso."
+ },
+ "inputbrokerEventCcw": {
+ "label": "Evento in senso antiorario",
+ "description": "Seleziona evento in ingresso."
+ },
+ "inputbrokerEventPress": {
+ "label": "Evento pressione",
+ "description": "Seleziona evento in ingresso"
+ },
+ "updown1Enabled": {
+ "label": "Su Giù abilitato",
+ "description": "Abilita l'encoder su / giù"
+ },
+ "allowInputSource": {
+ "label": "Consenti sorgente di input",
+ "description": "Seleziona da: '_any', 'rotEnc1', 'upDownEnc1', 'cardkb'"
+ },
+ "sendBell": {
+ "label": "Invia Campanella",
+ "description": "Invia un carattere campanella con ogni messaggio"
+ }
+ },
+ "detectionSensor": {
+ "title": "Configurazione Sensore Rilevamento",
+ "description": "Impostazioni per il modulo sensore di rilevamento",
+ "enabled": {
+ "label": "Abilitato",
+ "description": "Abilita o disabilita il modulo del sensore di rilevamento"
+ },
+ "minimumBroadcastSecs": {
+ "label": "Secondi Di Trasmissione Minimi",
+ "description": "L'intervallo in secondi di quanto spesso possiamo inviare un messaggio alla mesh quando viene rilevato un cambiamento di stato"
+ },
+ "stateBroadcastSecs": {
+ "label": "Secondi Trasmissione di Stato",
+ "description": "L'intervallo in secondi di quanto spesso dovremmo inviare un messaggio alla mesh con lo stato attuale indipendentemente dai cambiamenti"
+ },
+ "sendBell": {
+ "label": "Invia Campanella",
+ "description": "Invia campanella ASCII con messaggio di avviso"
+ },
+ "name": {
+ "label": "Nome Descrittivo",
+ "description": "Usato per formattare il messaggio inviato a mesh, max 20 Caratteri"
+ },
+ "monitorPin": {
+ "label": "Pin Monitor",
+ "description": "Il pin GPIO da monitorare per i cambiamenti di stato"
+ },
+ "detectionTriggerType": {
+ "label": "Tipo di trigger di rilevamento",
+ "description": "Il tipo di evento di trigger da usare"
+ },
+ "usePullup": {
+ "label": "Usa Pullup",
+ "description": "Indica se usare o meno la modalità INPUT_PULLUP per il pin GPIO"
+ }
+ },
+ "externalNotification": {
+ "title": "Configurazione Notifiche Esterne",
+ "description": "Configura il modulo notifiche esterno",
+ "enabled": {
+ "label": "Modulo abilitato",
+ "description": "Abilita Notifiche Esterne"
+ },
+ "outputMs": {
+ "label": "Output MS",
+ "description": "Output MS"
+ },
+ "output": {
+ "label": "Output",
+ "description": "Output"
+ },
+ "outputVibra": {
+ "label": "Vibrazione Output",
+ "description": "Vibrazione Output"
+ },
+ "outputBuzzer": {
+ "label": "Buzzer Output",
+ "description": "Buzzer Output"
+ },
+ "active": {
+ "label": "Attivo",
+ "description": "Attivo"
+ },
+ "alertMessage": {
+ "label": "Messaggio di allerta",
+ "description": "Messaggio di allerta"
+ },
+ "alertMessageVibra": {
+ "label": "Vibrazione Messaggio Di Allerta",
+ "description": "Vibrazione Messaggio Di Allerta"
+ },
+ "alertMessageBuzzer": {
+ "label": "Buzzer Messaggio Di Allerta",
+ "description": "Buzzer Messaggio Di Allerta"
+ },
+ "alertBell": {
+ "label": "Campanella Di Allarme",
+ "description": "Occorre attivare una segnalazione quando si riceve un campanello in entrata?"
+ },
+ "alertBellVibra": {
+ "label": "Vibrazione campanella di allarme",
+ "description": "Vibrazione campanella di allarme"
+ },
+ "alertBellBuzzer": {
+ "label": "Buzzer campanella di allarme",
+ "description": "Buzzer campanella di allarme"
+ },
+ "usePwm": {
+ "label": "Usa PWM",
+ "description": "Usa PWM"
+ },
+ "nagTimeout": {
+ "label": "Nag Timeout",
+ "description": "Nag Timeout"
+ },
+ "useI2sAsBuzzer": {
+ "label": "Usa I2S come buzzer",
+ "description": "Designa il Pin I²S come Uscita Buzzer"
+ }
+ },
+ "mqtt": {
+ "title": "Impostazioni MQTT",
+ "description": "Impostazioni per il modulo MQTT",
+ "enabled": {
+ "label": "Abilitato",
+ "description": "Abilita o disabilita MQTT"
+ },
+ "address": {
+ "label": "Indirizzo Server MQTT",
+ "description": "Indirizzo server MQTT da usare per i server predefiniti/personalizzati"
+ },
+ "username": {
+ "label": "Username MQTT",
+ "description": "Username MQTT da usare per i server predefiniti/personalizzati"
+ },
+ "password": {
+ "label": "Password MQTT",
+ "description": "Password MQTT da usare per server predefiniti/personalizzati"
+ },
+ "encryptionEnabled": {
+ "label": "Crittografia Abilitata",
+ "description": "Abilita o disabilita la crittografia MQTT. Nota: Tutti i messaggi sono inviati al broker MQTT non cifrati se questa opzione non è abilitata, anche quando i canali uplink hanno chiavi di crittografia impostate. Ciò include i dati di posizione."
+ },
+ "jsonEnabled": {
+ "label": "JSON Abilitato",
+ "description": "Indica se inviare/consumare pacchetti JSON su MQTT"
+ },
+ "tlsEnabled": {
+ "label": "TLS abilitato",
+ "description": "Abilita o disabilita MQTT"
+ },
+ "root": {
+ "label": "Root topic",
+ "description": "Topic root MQTT da utilizzare per server predefiniti/personalizzati"
+ },
+ "proxyToClientEnabled": {
+ "label": "Proxy Client MQTT Abilitato",
+ "description": "Utilizza la connessione di rete per fare da proxy ai messaggi MQTT verso il client."
+ },
+ "mapReportingEnabled": {
+ "label": "Segnalazione sulla Mappa Abilitata",
+ "description": "Il tuo nodo invierà periodicamente un pacchetto di segnalazione mappa non criptato al server MQTT configurato, questo include id, nome breve e lungo, posizione approssimativa, modello hardware, ruolo, versione del firmware, regione LoRa, preset del modem e nome del canale primario."
+ },
+ "mapReportSettings": {
+ "publishIntervalSecs": {
+ "label": "Intervallo di Pubblicazione Segnalazione Mappa (s)",
+ "description": "Intervallo in secondi per pubblicare le segnalazioni mappa"
+ },
+ "positionPrecision": {
+ "label": "Posizione Approssimativa",
+ "description": "La posizione condivisa sarà accurata entro questa distanza",
+ "options": {
+ "metric_km23": "Entro 23 km",
+ "metric_km12": "Entro 12 km",
+ "metric_km5_8": "Entro 5,8 km",
+ "metric_km2_9": "Entro 2,9 km",
+ "metric_km1_5": "Entro 1,5 km",
+ "metric_m700": "Entro 700 m",
+ "metric_m350": "Entro 350 m",
+ "metric_m200": "Entro 200 m",
+ "metric_m90": "Entro 90 m",
+ "metric_m50": "Entro 50 m",
+ "imperial_mi15": "Entro 15 miglia",
+ "imperial_mi7_3": "Entro 7,3 miglia",
+ "imperial_mi3_6": "Entro 3,6 miglia",
+ "imperial_mi1_8": "Entro 1,8 miglia",
+ "imperial_mi0_9": "Entro 0,9 miglia",
+ "imperial_mi0_5": "Entro 0,5 miglia",
+ "imperial_mi0_2": "Entro 0,2 miglia",
+ "imperial_ft600": "Entro 600 piedi",
+ "imperial_ft300": "Entro 300 piedi",
+ "imperial_ft150": "Entro 150 piedi"
+ }
+ }
+ }
+ },
+ "neighborInfo": {
+ "title": "Impostazioni Informazioni Vicini",
+ "description": "Impostazioni per il modulo Informazioni Vicini",
+ "enabled": {
+ "label": "Abilitato",
+ "description": "Abilita o disabilita Modulo Info Vicini"
+ },
+ "updateInterval": {
+ "label": "Intervallo di Aggiornamento",
+ "description": "Intervallo in secondi di quanto spesso dovremmo cercare di inviare le nostre Info Vicini alla mesh"
+ }
+ },
+ "paxcounter": {
+ "title": "Impostazioni Paxcounter",
+ "description": "Impostazioni per il modulo Paxcounter",
+ "enabled": {
+ "label": "Modulo abilitato",
+ "description": "Abilita Paxcounter"
+ },
+ "paxcounterUpdateInterval": {
+ "label": "Intervallo di aggiornamento (secondi)",
+ "description": "Per quanto tempo attendere tra l'invio di pacchetti paxcounter"
+ },
+ "wifiThreshold": {
+ "label": "Soglia RSSI WiFi",
+ "description": "A quale livello RSSI WiFi dovrebbe aumentare il contatore. Predefinito a -80."
+ },
+ "bleThreshold": {
+ "label": "Soglia RSSI BLE",
+ "description": "A quale livello RSSI BLE dovrebbe aumentare il contatore. Predefinito a -80."
+ }
+ },
+ "rangeTest": {
+ "title": "Impostazioni Di Range Test",
+ "description": "Impostazioni per il modulo Range Test",
+ "enabled": {
+ "label": "Modulo abilitato",
+ "description": "Abilita Range Test"
+ },
+ "sender": {
+ "label": "Intervallo Dei Messaggi",
+ "description": "Per quanto tempo attendere tra l'invio dei pacchetti di test"
+ },
+ "save": {
+ "label": "Salva CSV nella memoria",
+ "description": "Solo ESP32"
+ }
+ },
+ "serial": {
+ "title": "Impostazioni Seriale",
+ "description": "Impostazioni per il modulo seriale",
+ "enabled": {
+ "label": "Modulo abilitato",
+ "description": "Abilita output seriale"
+ },
+ "echo": {
+ "label": "Echo",
+ "description": "Tutti i pacchetti che invii verranno rimandati indietro al tuo dispositivo"
+ },
+ "rxd": {
+ "label": "Pin di ricezione",
+ "description": "Imposta il pin GPIO al pin RXD che hai configurato."
+ },
+ "txd": {
+ "label": "Pin di trasmissione",
+ "description": "Imposta il pin GPIO al pin TXD che hai configurato."
+ },
+ "baud": {
+ "label": "Baud rate",
+ "description": "La velocità di trasmissione seriale"
+ },
+ "timeout": {
+ "label": "Timeout",
+ "description": "Secondi da attesa prima di considerare il tuo pacchetto come 'fatto'"
+ },
+ "mode": {
+ "label": "Modalità",
+ "description": "Seleziona modalità"
+ },
+ "overrideConsoleSerialPort": {
+ "label": "Sovrascrivi La Porta Seriale Della Console",
+ "description": "Se si dispone di una porta seriale collegata alla console, questa verrà sostituita."
+ }
+ },
+ "storeForward": {
+ "title": "Configurazione Salva & Inoltra",
+ "description": "Impostazioni per il modulo Salva & Inoltra",
+ "enabled": {
+ "label": "Modulo abilitato",
+ "description": "Abilita Salva & Inoltra"
+ },
+ "heartbeat": {
+ "label": "Heartbeat Abilitato",
+ "description": "Abilita heartbeat Store & Forward"
+ },
+ "records": {
+ "label": "Numero di record",
+ "description": "Numero di record da memorizzare"
+ },
+ "historyReturnMax": {
+ "label": "Cronologia ritorno max",
+ "description": "Numero massimo di record da restituire"
+ },
+ "historyReturnWindow": {
+ "label": "Finestra di ritorno cronologia",
+ "description": "Return records from this time window (minutes)"
+ }
+ },
+ "telemetry": {
+ "title": "Impostazioni Telemetria",
+ "description": "Impostazioni per il modulo Telemetria",
+ "deviceUpdateInterval": {
+ "label": "Metriche Dispositivo",
+ "description": "Intervallo aggiornamento metriche dispositivo (secondi)"
+ },
+ "environmentUpdateInterval": {
+ "label": "Intervallo aggiornamento metriche ambientali (secondi)",
+ "description": ""
+ },
+ "environmentMeasurementEnabled": {
+ "label": "Modulo abilitato",
+ "description": "Abilita la telemetria Ambiente"
+ },
+ "environmentScreenEnabled": {
+ "label": "Visualizzato sullo schermo",
+ "description": "Mostra il modulo di telemetria sull'OLED"
+ },
+ "environmentDisplayFahrenheit": {
+ "label": "Mostra Fahrenheit",
+ "description": "Mostra la temperatura in Fahrenheit"
+ },
+ "airQualityEnabled": {
+ "label": "Qualità Dell'Aria Abilitata",
+ "description": "Abilita la telemetria della qualità dell'aria"
+ },
+ "airQualityInterval": {
+ "label": "Intervallo Di Aggiornamento Qualità Dell'Aria",
+ "description": "Quanto spesso inviare dati sulla qualità dell'aria sulla mesh"
+ },
+ "powerMeasurementEnabled": {
+ "label": "Misurazione Alimentazione Abilitata",
+ "description": "Abilita la telemetria di misura della alimentazione"
+ },
+ "powerUpdateInterval": {
+ "label": "Intervallo Di Aggiornamento Alimentazione",
+ "description": "Quanto spesso inviare i dati di alimentazione sulla mesh"
+ },
+ "powerScreenEnabled": {
+ "label": "Schermo Di Alimentazione Abilitato",
+ "description": "Abilita lo schermo di Telemetria di alimentazione"
+ }
+ }
}
diff --git a/packages/web/public/i18n/locales/it-IT/nodes.json b/packages/web/public/i18n/locales/it-IT/nodes.json
index ee0fd6e1..9346dd70 100644
--- a/packages/web/public/i18n/locales/it-IT/nodes.json
+++ b/packages/web/public/i18n/locales/it-IT/nodes.json
@@ -1,63 +1,59 @@
{
- "nodeDetail": {
- "publicKeyEnabled": {
- "label": "Chiave Pubblica Abilitata"
- },
- "noPublicKey": {
- "label": "Nessuna Chiave Pubblica"
- },
- "directMessage": {
- "label": "Messaggio Diretto {{shortName}}"
- },
- "favorite": {
- "label": "Preferito",
- "tooltip": "Add or remove this node from your favorites"
- },
- "notFavorite": {
- "label": "Non è un preferito"
- },
- "error": {
- "label": "Errori",
- "text": "An error occurred while fetching node details. Please try again later."
- },
- "status": {
- "heard": "Sentito",
- "mqtt": "MQTT"
- },
- "elevation": {
- "label": "Altezza"
- },
- "channelUtil": {
- "label": "Utilizzo Canale"
- },
- "airtimeUtil": {
- "label": "Utilizzo Airtime"
- }
- },
- "nodesTable": {
- "headings": {
- "longName": "Nome Lungo",
- "connection": "Connessione",
- "lastHeard": "Ultimo Contatto",
- "encryption": "Crittografia",
- "model": "Modello",
- "macAddress": "Indirizzo MAC"
- },
- "connectionStatus": {
- "direct": "Diretto",
- "away": "assente",
- "unknown": "-",
- "viaMqtt": ", tramite MQTT"
- },
- "lastHeardStatus": {
- "never": "Mai"
- }
- },
- "actions": {
- "added": "Added",
- "removed": "Removed",
- "ignoreNode": "Ignore Node",
- "unignoreNode": "Unignore Node",
- "requestPosition": "Richiedi posizione"
- }
+ "nodeDetail": {
+ "publicKeyEnabled": {
+ "label": "Chiave Pubblica Abilitata"
+ },
+ "noPublicKey": {
+ "label": "Nessuna Chiave Pubblica"
+ },
+ "directMessage": {
+ "label": "Messaggio Diretto {{shortName}}"
+ },
+ "favorite": {
+ "label": "Preferito",
+ "tooltip": "Add or remove this node from your favorites"
+ },
+ "notFavorite": {
+ "label": "Non è un preferito"
+ },
+ "error": {
+ "label": "Errori",
+ "text": "An error occurred while fetching node details. Please try again later."
+ },
+ "status": {
+ "heard": "Sentito",
+ "mqtt": "MQTT"
+ },
+ "elevation": {
+ "label": "Altezza"
+ },
+ "channelUtil": {
+ "label": "Utilizzo Canale"
+ },
+ "airtimeUtil": {
+ "label": "Utilizzo Airtime"
+ }
+ },
+ "nodesTable": {
+ "headings": {
+ "longName": "Nome Lungo",
+ "connection": "Connessione",
+ "lastHeard": "Ultimo Contatto",
+ "encryption": "Crittografia",
+ "model": "Modello",
+ "macAddress": "Indirizzo MAC"
+ },
+ "connectionStatus": {
+ "direct": "Diretto",
+ "away": "assente",
+ "viaMqtt": ", tramite MQTT"
+ }
+ },
+ "actions": {
+ "added": "Added",
+ "removed": "Removed",
+ "ignoreNode": "Ignore Node",
+ "unignoreNode": "Unignore Node",
+ "requestPosition": "Richiedi posizione"
+ }
}
diff --git a/packages/web/public/i18n/locales/it-IT/ui.json b/packages/web/public/i18n/locales/it-IT/ui.json
index f5d925cd..d1c2163e 100644
--- a/packages/web/public/i18n/locales/it-IT/ui.json
+++ b/packages/web/public/i18n/locales/it-IT/ui.json
@@ -1,228 +1,229 @@
{
- "navigation": {
- "title": "Navigazione",
- "messages": "Messaggi",
- "map": "Mappa",
- "config": "Configurazione",
- "radioConfig": "Configurazione Radio",
- "moduleConfig": "Configurazione Modulo",
- "channels": "Canali",
- "nodes": "Nodi"
- },
- "app": {
- "title": "Meshtastic",
- "logo": "Logo Meshtastic"
- },
- "sidebar": {
- "collapseToggle": {
- "button": {
- "open": "Apri barra laterale",
- "close": "Chiudi barra laterale"
- }
- },
- "deviceInfo": {
- "volts": "{{voltage}} volt",
- "firmware": {
- "title": "Firmware",
- "version": "v{{version}}",
- "buildDate": "Data di build: {{date}}"
- },
- "deviceName": {
- "title": "Nome del dispositivo",
- "changeName": "Cambia Nome Del Dispositivo",
- "placeholder": "Inserisci il nome del dispositivo"
- },
- "editDeviceName": "Modifica il nome del dispositivo"
- }
- },
- "batteryStatus": {
- "charging": "{{level}}% in carica",
- "pluggedIn": "Alimentato",
- "title": "Batteria"
- },
- "search": {
- "nodes": "Cerca nodi...",
- "channels": "Cerca canali...",
- "commandPalette": "Cerca comandi..."
- },
- "toast": {
- "positionRequestSent": {
- "title": "Richiesta di posizione inviata."
- },
- "requestingPosition": {
- "title": "Richiesta di posizione, attendere prego..."
- },
- "sendingTraceroute": {
- "title": "Invio di Traceroute, attendere prego..."
- },
- "tracerouteSent": {
- "title": "Traceroute inviato."
- },
- "savedChannel": {
- "title": "Canale Salvato: {{channelName}}"
- },
- "messages": {
- "pkiEncryption": {
- "title": "La chat sta usando la crittografia PKI."
- },
- "pskEncryption": {
- "title": "La chat sta usando la crittografia PSK."
- }
- },
- "configSaveError": {
- "title": "Errore Salvataggio Configurazione",
- "description": "Si è verificato un errore durante il salvataggio di questa configurazione."
- },
- "validationError": {
- "title": "Esistono errori di configurazione",
- "description": "Correggi gli errori di configurazione prima di salvare."
- },
- "saveSuccess": {
- "title": "Salvataggio Configurazione",
- "description": "La modifica di configurazione {{case}} è stata salvata."
- },
- "favoriteNode": {
- "title": "{{action}} {{nodeName}} {{direction}} favorites.",
- "action": {
- "added": "Added",
- "removed": "Removed",
- "to": "to",
- "from": "from"
- }
- },
- "ignoreNode": {
- "title": "{{action}} {{nodeName}} {{direction}} ignore list",
- "action": {
- "added": "Added",
- "removed": "Removed",
- "to": "to",
- "from": "from"
- }
- }
- },
- "notifications": {
- "copied": {
- "label": "Copiato!"
- },
- "copyToClipboard": {
- "label": "Copia negli appunti"
- },
- "hidePassword": {
- "label": "Nascondi password"
- },
- "showPassword": {
- "label": "Visualizza password"
- },
- "deliveryStatus": {
- "delivered": "Consegnato",
- "failed": "Consegna Fallita",
- "waiting": "In attesa",
- "unknown": "Sconosciuto"
- }
- },
- "general": {
- "label": "Generale"
- },
- "hardware": {
- "label": "Hardware"
- },
- "metrics": {
- "label": "Statistiche"
- },
- "role": {
- "label": "Ruolo"
- },
- "filter": {
- "label": "Filtro"
- },
- "advanced": {
- "label": "Advanced"
- },
- "clearInput": {
- "label": "Cancella input"
- },
- "resetFilters": {
- "label": "Ripristina Filtri"
- },
- "nodeName": {
- "label": "Nome/numero del nodo",
- "placeholder": "Meshtastic 1234"
- },
- "airtimeUtilization": {
- "label": "Tempo di Trasmissione Utilizzato (%)"
- },
- "batteryLevel": {
- "label": "Livello batteria (%)",
- "labelText": "Livello batteria (%): {{value}}"
- },
- "batteryVoltage": {
- "label": "Tensione della Batteria (V)",
- "title": "Tensione"
- },
- "channelUtilization": {
- "label": "Utilizzo Canale (%)"
- },
- "hops": {
- "direct": "Diretto",
- "label": "Numero di hop",
- "text": "Numero di hop: {{value}}"
- },
- "lastHeard": {
- "label": "Ricevuto più di recente",
- "labelText": "Ultimo contatto: {{value}}",
- "nowLabel": "Adesso"
- },
- "snr": {
- "label": "SNR (dB)"
- },
- "favorites": {
- "label": "Preferiti"
- },
- "hide": {
- "label": "Nascondi"
- },
- "showOnly": {
- "label": "Mostra Solo"
- },
- "viaMqtt": {
- "label": "Connesso tramite MQTT"
- },
- "hopsUnknown": {
- "label": "Unknown number of hops"
- },
- "showUnheard": {
- "label": "Never heard"
- },
- "language": {
- "label": "Lingua",
- "changeLanguage": "Cambia Lingua"
- },
- "theme": {
- "dark": "Scuro",
- "light": "Chiaro",
- "system": "Automatico",
- "changeTheme": "Modifica lo schema dei colori"
- },
- "errorPage": {
- "title": "Questo è un po' imbarazzante...",
- "description1": "Siamo davvero spiacenti, ma si è verificato un errore nel client web che ha causato il crash.
Questo non dovrebbe accadere e stiamo lavorando duramente per risolverlo.",
- "description2": "Il modo migliore per evitare che ciò accada di nuovo a voi o a chiunque altro è quello di riferire la questione a noi.",
- "reportInstructions": "Per favore includi le seguenti informazioni nel tuo report:",
- "reportSteps": {
- "step1": "Cosa stavi facendo quando si è verificato l'errore",
- "step2": "Cosa ti aspettavi succedesse",
- "step3": "Quello che è successo realmente",
- "step4": "Altre informazioni rilevanti"
- },
- "reportLink": "Puoi segnalare il problema al nostro <0>GitHub0>",
- "dashboardLink": "Ritorna alla <0>dashboard0>",
- "detailsSummary": "Dettagli Errore",
- "errorMessageLabel": "Messaggio di errore:",
- "stackTraceLabel": "Stack trace:",
- "fallbackError": "{{error}}"
- },
- "footer": {
- "text": "Powered by <0>▲ Vercel0> | Meshtastic® è un marchio registrato di Meshtastic LLC. | <1>Informazioni Legali1>",
- "commitSha": "Commit SHA: {{sha}}"
- }
+ "navigation": {
+ "title": "Navigazione",
+ "messages": "Messaggi",
+ "map": "Mappa",
+ "settings": "Impostazioni",
+ "channels": "Canali",
+ "radioConfig": "Configurazione Radio",
+ "deviceConfig": "Configurazione Dispositivo",
+ "moduleConfig": "Configurazione Modulo",
+ "nodes": "Nodi"
+ },
+ "app": {
+ "title": "Meshtastic",
+ "logo": "Logo Meshtastic"
+ },
+ "sidebar": {
+ "collapseToggle": {
+ "button": {
+ "open": "Apri barra laterale",
+ "close": "Chiudi barra laterale"
+ }
+ },
+ "deviceInfo": {
+ "volts": "{{voltage}} volt",
+ "firmware": {
+ "title": "Firmware",
+ "version": "v{{version}}",
+ "buildDate": "Data di build: {{date}}"
+ }
+ }
+ },
+ "batteryStatus": {
+ "charging": "{{level}}% in carica",
+ "pluggedIn": "Alimentato",
+ "title": "Batteria"
+ },
+ "search": {
+ "nodes": "Cerca nodi...",
+ "channels": "Cerca canali...",
+ "commandPalette": "Cerca comandi..."
+ },
+ "toast": {
+ "positionRequestSent": {
+ "title": "Richiesta di posizione inviata."
+ },
+ "requestingPosition": {
+ "title": "Richiesta di posizione, attendere prego..."
+ },
+ "sendingTraceroute": {
+ "title": "Invio di Traceroute, attendere prego..."
+ },
+ "tracerouteSent": {
+ "title": "Traceroute inviato."
+ },
+ "savedChannel": {
+ "title": "Canale Salvato: {{channelName}}"
+ },
+ "messages": {
+ "pkiEncryption": {
+ "title": "La chat sta usando la crittografia PKI."
+ },
+ "pskEncryption": {
+ "title": "La chat sta usando la crittografia PSK."
+ }
+ },
+ "configSaveError": {
+ "title": "Errore Salvataggio Configurazione",
+ "description": "Si è verificato un errore durante il salvataggio di questa configurazione."
+ },
+ "validationError": {
+ "title": "Esistono errori di configurazione",
+ "description": "Correggi gli errori di configurazione prima di salvare."
+ },
+ "saveSuccess": {
+ "title": "Salvataggio Configurazione",
+ "description": "La modifica di configurazione {{case}} è stata salvata."
+ },
+ "saveAllSuccess": {
+ "title": "Saved",
+ "description": "All configuration changes have been saved."
+ },
+ "favoriteNode": {
+ "title": "{{action}} {{nodeName}} {{direction}} favorites.",
+ "action": {
+ "added": "Added",
+ "removed": "Removed",
+ "to": "to",
+ "from": "from"
+ }
+ },
+ "ignoreNode": {
+ "title": "{{action}} {{nodeName}} {{direction}} ignore list",
+ "action": {
+ "added": "Added",
+ "removed": "Removed",
+ "to": "to",
+ "from": "from"
+ }
+ }
+ },
+ "notifications": {
+ "copied": {
+ "label": "Copiato!"
+ },
+ "copyToClipboard": {
+ "label": "Copia negli appunti"
+ },
+ "hidePassword": {
+ "label": "Nascondi password"
+ },
+ "showPassword": {
+ "label": "Visualizza password"
+ },
+ "deliveryStatus": {
+ "delivered": "Consegnato",
+ "failed": "Consegna Fallita",
+ "waiting": "In attesa",
+ "unknown": "Sconosciuto"
+ }
+ },
+ "general": {
+ "label": "Generale"
+ },
+ "hardware": {
+ "label": "Hardware"
+ },
+ "metrics": {
+ "label": "Statistiche"
+ },
+ "role": {
+ "label": "Ruolo"
+ },
+ "filter": {
+ "label": "Filtro"
+ },
+ "advanced": {
+ "label": "Advanced"
+ },
+ "clearInput": {
+ "label": "Cancella input"
+ },
+ "resetFilters": {
+ "label": "Ripristina Filtri"
+ },
+ "nodeName": {
+ "label": "Nome/numero del nodo",
+ "placeholder": "Meshtastic 1234"
+ },
+ "airtimeUtilization": {
+ "label": "Tempo di Trasmissione Utilizzato (%)",
+ "short": "Airtime Util. (%)"
+ },
+ "batteryLevel": {
+ "label": "Livello batteria (%)",
+ "labelText": "Livello batteria (%): {{value}}"
+ },
+ "batteryVoltage": {
+ "label": "Tensione della Batteria (V)",
+ "title": "Tensione"
+ },
+ "channelUtilization": {
+ "label": "Utilizzo Canale (%)",
+ "short": "Channel Util. (%)"
+ },
+ "hops": {
+ "direct": "Diretto",
+ "label": "Numero di hop",
+ "text": "Numero di hop: {{value}}"
+ },
+ "lastHeard": {
+ "label": "Ricevuto più di recente",
+ "labelText": "Ultimo contatto: {{value}}",
+ "nowLabel": "Adesso"
+ },
+ "snr": {
+ "label": "SNR (dB)"
+ },
+ "favorites": {
+ "label": "Preferiti"
+ },
+ "hide": {
+ "label": "Nascondi"
+ },
+ "showOnly": {
+ "label": "Mostra Solo"
+ },
+ "viaMqtt": {
+ "label": "Connesso tramite MQTT"
+ },
+ "hopsUnknown": {
+ "label": "Unknown number of hops"
+ },
+ "showUnheard": {
+ "label": "Never heard"
+ },
+ "language": {
+ "label": "Lingua",
+ "changeLanguage": "Cambia Lingua"
+ },
+ "theme": {
+ "dark": "Scuro",
+ "light": "Chiaro",
+ "system": "Automatico",
+ "changeTheme": "Modifica lo schema dei colori"
+ },
+ "errorPage": {
+ "title": "Questo è un po' imbarazzante...",
+ "description1": "Siamo davvero spiacenti, ma si è verificato un errore nel client web che ha causato il crash.
Questo non dovrebbe accadere e stiamo lavorando duramente per risolverlo.",
+ "description2": "Il modo migliore per evitare che ciò accada di nuovo a voi o a chiunque altro è quello di riferire la questione a noi.",
+ "reportInstructions": "Per favore includi le seguenti informazioni nel tuo report:",
+ "reportSteps": {
+ "step1": "Cosa stavi facendo quando si è verificato l'errore",
+ "step2": "Cosa ti aspettavi succedesse",
+ "step3": "Quello che è successo realmente",
+ "step4": "Altre informazioni rilevanti"
+ },
+ "reportLink": "Puoi segnalare il problema al nostro <0>GitHub0>",
+ "dashboardLink": "Ritorna alla <0>dashboard0>",
+ "detailsSummary": "Dettagli Errore",
+ "errorMessageLabel": "Messaggio di errore:",
+ "stackTraceLabel": "Stack trace:",
+ "fallbackError": "{{error}}"
+ },
+ "footer": {
+ "text": "Powered by <0>▲ Vercel0> | Meshtastic® è un marchio registrato di Meshtastic LLC. | <1>Informazioni Legali1>",
+ "commitSha": "Commit SHA: {{sha}}"
+ }
}
diff --git a/packages/web/public/i18n/locales/ja-JP/channels.json b/packages/web/public/i18n/locales/ja-JP/channels.json
index 594dc7ad..79991430 100644
--- a/packages/web/public/i18n/locales/ja-JP/channels.json
+++ b/packages/web/public/i18n/locales/ja-JP/channels.json
@@ -1,69 +1,71 @@
{
- "page": {
- "sectionLabel": "チャンネル",
- "channelName": "Channel: {{channelName}}",
- "broadcastLabel": "プライマリ",
- "channelIndex": "Ch {{index}}"
- },
- "validation": {
- "pskInvalid": "Please enter a valid {{bits}} bit PSK."
- },
- "settings": {
- "label": "チャンネル設定",
- "description": "Crypto, MQTT & misc settings"
- },
- "role": {
- "label": "役割",
- "description": "Device telemetry is sent over PRIMARY. Only one PRIMARY allowed",
- "options": {
- "primary": "PRIMARY",
- "disabled": "DISABLED",
- "secondary": "SECONDARY"
- }
- },
- "psk": {
- "label": "Pre-Shared Key",
- "description": "Supported PSK lengths: 256-bit, 128-bit, 8-bit, Empty (0-bit)",
- "generate": "Generate"
- },
- "name": {
- "label": "名前",
- "description": "A unique name for the channel <12 bytes, leave blank for default"
- },
- "uplinkEnabled": {
- "label": "Uplink Enabled",
- "description": "Send messages from the local mesh to MQTT"
- },
- "downlinkEnabled": {
- "label": "Downlink Enabled",
- "description": "Send messages from MQTT to the local mesh"
- },
- "positionPrecision": {
- "label": "Location",
- "description": "The precision of the location to share with the channel. Can be disabled.",
- "options": {
- "none": "Do not share location",
- "precise": "Precise Location",
- "metric_km23": "Within 23 kilometers",
- "metric_km12": "Within 12 kilometers",
- "metric_km5_8": "Within 5.8 kilometers",
- "metric_km2_9": "Within 2.9 kilometers",
- "metric_km1_5": "Within 1.5 kilometers",
- "metric_m700": "Within 700 meters",
- "metric_m350": "Within 350 meters",
- "metric_m200": "Within 200 meters",
- "metric_m90": "Within 90 meters",
- "metric_m50": "Within 50 meters",
- "imperial_mi15": "Within 15 miles",
- "imperial_mi7_3": "Within 7.3 miles",
- "imperial_mi3_6": "Within 3.6 miles",
- "imperial_mi1_8": "Within 1.8 miles",
- "imperial_mi0_9": "Within 0.9 miles",
- "imperial_mi0_5": "Within 0.5 miles",
- "imperial_mi0_2": "Within 0.2 miles",
- "imperial_ft600": "Within 600 feet",
- "imperial_ft300": "Within 300 feet",
- "imperial_ft150": "Within 150 feet"
- }
- }
+ "page": {
+ "sectionLabel": "チャンネル",
+ "channelName": "Channel: {{channelName}}",
+ "broadcastLabel": "プライマリ",
+ "channelIndex": "Ch {{index}}",
+ "import": "インポート",
+ "export": "Export"
+ },
+ "validation": {
+ "pskInvalid": "Please enter a valid {{bits}} bit PSK."
+ },
+ "settings": {
+ "label": "チャンネル設定",
+ "description": "Crypto, MQTT & misc settings"
+ },
+ "role": {
+ "label": "役割",
+ "description": "Device telemetry is sent over PRIMARY. Only one PRIMARY allowed",
+ "options": {
+ "primary": "PRIMARY",
+ "disabled": "DISABLED",
+ "secondary": "SECONDARY"
+ }
+ },
+ "psk": {
+ "label": "Pre-Shared Key",
+ "description": "Supported PSK lengths: 256-bit, 128-bit, 8-bit, Empty (0-bit)",
+ "generate": "Generate"
+ },
+ "name": {
+ "label": "名前",
+ "description": "A unique name for the channel <12 bytes, leave blank for default"
+ },
+ "uplinkEnabled": {
+ "label": "Uplink Enabled",
+ "description": "Send messages from the local mesh to MQTT"
+ },
+ "downlinkEnabled": {
+ "label": "Downlink Enabled",
+ "description": "Send messages from MQTT to the local mesh"
+ },
+ "positionPrecision": {
+ "label": "Location",
+ "description": "The precision of the location to share with the channel. Can be disabled.",
+ "options": {
+ "none": "Do not share location",
+ "precise": "Precise Location",
+ "metric_km23": "Within 23 kilometers",
+ "metric_km12": "Within 12 kilometers",
+ "metric_km5_8": "Within 5.8 kilometers",
+ "metric_km2_9": "Within 2.9 kilometers",
+ "metric_km1_5": "Within 1.5 kilometers",
+ "metric_m700": "Within 700 meters",
+ "metric_m350": "Within 350 meters",
+ "metric_m200": "Within 200 meters",
+ "metric_m90": "Within 90 meters",
+ "metric_m50": "Within 50 meters",
+ "imperial_mi15": "Within 15 miles",
+ "imperial_mi7_3": "Within 7.3 miles",
+ "imperial_mi3_6": "Within 3.6 miles",
+ "imperial_mi1_8": "Within 1.8 miles",
+ "imperial_mi0_9": "Within 0.9 miles",
+ "imperial_mi0_5": "Within 0.5 miles",
+ "imperial_mi0_2": "Within 0.2 miles",
+ "imperial_ft600": "Within 600 feet",
+ "imperial_ft300": "Within 300 feet",
+ "imperial_ft150": "Within 150 feet"
+ }
+ }
}
diff --git a/packages/web/public/i18n/locales/ja-JP/commandPalette.json b/packages/web/public/i18n/locales/ja-JP/commandPalette.json
index 8f8b06fc..aa0c2e65 100644
--- a/packages/web/public/i18n/locales/ja-JP/commandPalette.json
+++ b/packages/web/public/i18n/locales/ja-JP/commandPalette.json
@@ -15,7 +15,6 @@
"messages": "メッセージ",
"map": "地図",
"config": "Config",
- "channels": "チャンネル",
"nodes": "ノード"
}
},
@@ -45,7 +44,8 @@
"label": "Debug",
"command": {
"reconfigure": "Reconfigure",
- "clearAllStoredMessages": "Clear All Stored Message"
+ "clearAllStoredMessages": "Clear All Stored Message",
+ "clearAllStores": "Clear All Local Storage"
}
}
}
diff --git a/packages/web/public/i18n/locales/ja-JP/common.json b/packages/web/public/i18n/locales/ja-JP/common.json
index 2dfbfefe..9c9c9643 100644
--- a/packages/web/public/i18n/locales/ja-JP/common.json
+++ b/packages/web/public/i18n/locales/ja-JP/common.json
@@ -1,142 +1,157 @@
{
- "button": {
- "apply": "適用",
- "backupKey": "Backup Key",
- "cancel": "キャンセル",
- "clearMessages": "Clear Messages",
- "close": "終了",
- "confirm": "Confirm",
- "delete": "削除",
- "dismiss": "Dismiss",
- "download": "Download",
- "export": "Export",
- "generate": "Generate",
- "regenerate": "Regenerate",
- "import": "インポート",
- "message": "メッセージ",
- "now": "Now",
- "ok": "OK",
- "print": "Print",
- "remove": "削除",
- "requestNewKeys": "Request New Keys",
- "requestPosition": "Request Position",
- "reset": "リセット",
- "save": "保存",
- "scanQr": "QRコードをスキャン",
- "traceRoute": "Trace Route",
- "submit": "Submit"
- },
- "app": {
- "title": "Meshtastic",
- "fullTitle": "Meshtastic Web Client"
- },
- "loading": "Loading...",
- "unit": {
- "cps": "CPS",
- "dbm": "dBm",
- "hertz": "Hz",
- "hop": {
- "one": "Hop",
- "plural": "Hops"
- },
- "hopsAway": {
- "one": "{{count}} hop away",
- "plural": "{{count}} hops away",
- "unknown": "Unknown hops away"
- },
- "megahertz": "MHz",
- "raw": "raw",
- "meter": {
- "one": "Meter",
- "plural": "Meters",
- "suffix": "m"
- },
- "minute": {
- "one": "Minute",
- "plural": "Minutes"
- },
- "hour": {
- "one": "Hour",
- "plural": "Hours"
- },
- "millisecond": {
- "one": "Millisecond",
- "plural": "Milliseconds",
- "suffix": "ms"
- },
- "second": {
- "one": "Second",
- "plural": "Seconds"
- },
- "day": {
- "one": "Day",
- "plural": "Days"
- },
- "month": {
- "one": "Month",
- "plural": "Months"
- },
- "year": {
- "one": "Year",
- "plural": "Years"
- },
- "snr": "SN比",
- "volt": {
- "one": "Volt",
- "plural": "Volts",
- "suffix": "V"
- },
- "record": {
- "one": "Records",
- "plural": "Records"
- }
- },
- "security": {
- "0bit": "Empty",
- "8bit": "8 bit",
- "128bit": "128 bit",
- "256bit": "256 bit"
- },
- "unknown": {
- "longName": "Unknown",
- "shortName": "UNK",
- "notAvailable": "N/A",
- "num": "??"
- },
- "nodeUnknownPrefix": "!",
- "unset": "UNSET",
- "fallbackName": "Meshtastic {{last4}}",
- "node": "Node",
- "formValidation": {
- "unsavedChanges": "Unsaved changes",
- "tooBig": {
- "string": "Too long, expected less than or equal to {{maximum}} characters.",
- "number": "Too big, expected a number smaller than or equal to {{maximum}}.",
- "bytes": "Too big, expected less than or equal to {{params.maximum}} bytes."
- },
- "tooSmall": {
- "string": "Too short, expected more than or equal to {{minimum}} characters.",
- "number": "Too small, expected a number larger than or equal to {{minimum}}."
- },
- "invalidFormat": {
- "ipv4": "Invalid format, expected an IPv4 address.",
- "key": "Invalid format, expected a Base64 encoded pre-shared key (PSK)."
- },
- "invalidType": {
- "number": "Invalid type, expected a number."
- },
- "pskLength": {
- "0bit": "Key is required to be empty.",
- "8bit": "Key is required to be an 8 bit pre-shared key (PSK).",
- "128bit": "Key is required to be a 128 bit pre-shared key (PSK).",
- "256bit": "Key is required to be a 256 bit pre-shared key (PSK)."
- },
- "required": {
- "generic": "This field is required.",
- "managed": "At least one admin key is requred if the node is managed.",
- "key": "Key is required."
- }
- },
- "yes": "Yes",
- "no": "No"
+ "button": {
+ "apply": "適用",
+ "backupKey": "Backup Key",
+ "cancel": "キャンセル",
+ "clearMessages": "Clear Messages",
+ "close": "終了",
+ "confirm": "Confirm",
+ "delete": "削除",
+ "dismiss": "Dismiss",
+ "download": "Download",
+ "export": "Export",
+ "generate": "Generate",
+ "regenerate": "Regenerate",
+ "import": "インポート",
+ "message": "メッセージ",
+ "now": "Now",
+ "ok": "OK",
+ "print": "Print",
+ "remove": "削除",
+ "requestNewKeys": "Request New Keys",
+ "requestPosition": "Request Position",
+ "reset": "リセット",
+ "save": "保存",
+ "scanQr": "QRコードをスキャン",
+ "traceRoute": "Trace Route",
+ "submit": "Submit"
+ },
+ "app": {
+ "title": "Meshtastic",
+ "fullTitle": "Meshtastic Web Client"
+ },
+ "loading": "Loading...",
+ "unit": {
+ "cps": "CPS",
+ "dbm": "dBm",
+ "hertz": "Hz",
+ "hop": {
+ "one": "Hop",
+ "plural": "Hops"
+ },
+ "hopsAway": {
+ "one": "{{count}} hop away",
+ "plural": "{{count}} hops away",
+ "unknown": "Unknown hops away"
+ },
+ "megahertz": "MHz",
+ "raw": "raw",
+ "meter": {
+ "one": "Meter",
+ "plural": "Meters",
+ "suffix": "m"
+ },
+ "kilometer": {
+ "one": "Kilometer",
+ "plural": "Kilometers",
+ "suffix": "km"
+ },
+ "minute": {
+ "one": "Minute",
+ "plural": "Minutes"
+ },
+ "hour": {
+ "one": "Hour",
+ "plural": "Hours"
+ },
+ "millisecond": {
+ "one": "Millisecond",
+ "plural": "Milliseconds",
+ "suffix": "ms"
+ },
+ "second": {
+ "one": "Second",
+ "plural": "Seconds"
+ },
+ "day": {
+ "one": "Day",
+ "plural": "Days",
+ "today": "Today",
+ "yesterday": "Yesterday"
+ },
+ "month": {
+ "one": "Month",
+ "plural": "Months"
+ },
+ "year": {
+ "one": "Year",
+ "plural": "Years"
+ },
+ "snr": "SN比",
+ "volt": {
+ "one": "Volt",
+ "plural": "Volts",
+ "suffix": "V"
+ },
+ "record": {
+ "one": "Records",
+ "plural": "Records"
+ },
+ "degree": {
+ "one": "Degree",
+ "plural": "Degrees",
+ "suffix": "°"
+ }
+ },
+ "security": {
+ "0bit": "Empty",
+ "8bit": "8 bit",
+ "128bit": "128 bit",
+ "256bit": "256 bit"
+ },
+ "unknown": {
+ "longName": "Unknown",
+ "shortName": "UNK",
+ "notAvailable": "N/A",
+ "num": "??"
+ },
+ "nodeUnknownPrefix": "!",
+ "unset": "UNSET",
+ "fallbackName": "Meshtastic {{last4}}",
+ "node": "Node",
+ "formValidation": {
+ "unsavedChanges": "Unsaved changes",
+ "tooBig": {
+ "string": "Too long, expected less than or equal to {{maximum}} characters.",
+ "number": "Too big, expected a number smaller than or equal to {{maximum}}.",
+ "bytes": "Too big, expected less than or equal to {{params.maximum}} bytes."
+ },
+ "tooSmall": {
+ "string": "Too short, expected more than or equal to {{minimum}} characters.",
+ "number": "Too small, expected a number larger than or equal to {{minimum}}."
+ },
+ "invalidFormat": {
+ "ipv4": "Invalid format, expected an IPv4 address.",
+ "key": "Invalid format, expected a Base64 encoded pre-shared key (PSK)."
+ },
+ "invalidType": {
+ "number": "Invalid type, expected a number."
+ },
+ "pskLength": {
+ "0bit": "Key is required to be empty.",
+ "8bit": "Key is required to be an 8 bit pre-shared key (PSK).",
+ "128bit": "Key is required to be a 128 bit pre-shared key (PSK).",
+ "256bit": "Key is required to be a 256 bit pre-shared key (PSK)."
+ },
+ "required": {
+ "generic": "This field is required.",
+ "managed": "At least one admin key is requred if the node is managed.",
+ "key": "Key is required."
+ },
+ "invalidOverrideFreq": {
+ "number": "Invalid format, expected a value in the range 410-930 MHz or 0 (use default)."
+ }
+ },
+ "yes": "Yes",
+ "no": "No"
}
diff --git a/packages/web/public/i18n/locales/ja-JP/config.json b/packages/web/public/i18n/locales/ja-JP/config.json
new file mode 100644
index 00000000..a2b92281
--- /dev/null
+++ b/packages/web/public/i18n/locales/ja-JP/config.json
@@ -0,0 +1,458 @@
+{
+ "page": {
+ "title": "設定",
+ "tabUser": "ユーザー",
+ "tabChannels": "チャンネル",
+ "tabBluetooth": "Bluetooth",
+ "tabDevice": "接続するデバイスを選択",
+ "tabDisplay": "表示",
+ "tabLora": "LoRa",
+ "tabNetwork": "ネットワーク",
+ "tabPosition": "位置",
+ "tabPower": "電源",
+ "tabSecurity": "セキュリティ"
+ },
+ "sidebar": {
+ "label": "Configuration"
+ },
+ "device": {
+ "title": "Device Settings",
+ "description": "Settings for the device",
+ "buttonPin": {
+ "description": "Button pin override",
+ "label": "Button Pin"
+ },
+ "buzzerPin": {
+ "description": "Buzzer pin override",
+ "label": "Buzzer Pin"
+ },
+ "disableTripleClick": {
+ "description": "Disable triple click",
+ "label": "Disable Triple Click"
+ },
+ "doubleTapAsButtonPress": {
+ "description": "Treat double tap as button press",
+ "label": "Double Tap as Button Press"
+ },
+ "ledHeartbeatDisabled": {
+ "description": "Disable default blinking LED",
+ "label": "LED Heartbeat Disabled"
+ },
+ "nodeInfoBroadcastInterval": {
+ "description": "How often to broadcast node info",
+ "label": "Node Info Broadcast Interval"
+ },
+ "posixTimezone": {
+ "description": "The POSIX timezone string for the device",
+ "label": "POSIX 時間帯"
+ },
+ "rebroadcastMode": {
+ "description": "How to handle rebroadcasting",
+ "label": "Rebroadcast Mode"
+ },
+ "role": {
+ "description": "What role the device performs on the mesh",
+ "label": "役割"
+ }
+ },
+ "bluetooth": {
+ "title": "Bluetooth Settings",
+ "description": "Settings for the Bluetooth module",
+ "note": "Note: Some devices (ESP32) cannot use both Bluetooth and WiFi at the same time.",
+ "enabled": {
+ "description": "Enable or disable Bluetooth",
+ "label": "Enabled"
+ },
+ "pairingMode": {
+ "description": "Pin selection behaviour.",
+ "label": "ペアリングモード"
+ },
+ "pin": {
+ "description": "Pin to use when pairing",
+ "label": "Pin"
+ }
+ },
+ "display": {
+ "description": "Settings for the device display",
+ "title": "Display Settings",
+ "headingBold": {
+ "description": "Bolden the heading text",
+ "label": "Bold Heading"
+ },
+ "carouselDelay": {
+ "description": "How fast to cycle through windows",
+ "label": "Carousel Delay"
+ },
+ "compassNorthTop": {
+ "description": "Fix north to the top of compass",
+ "label": "Compass North Top"
+ },
+ "displayMode": {
+ "description": "Screen layout variant",
+ "label": "Display Mode"
+ },
+ "displayUnits": {
+ "description": "Display metric or imperial units",
+ "label": "Display Units"
+ },
+ "flipScreen": {
+ "description": "Flip display 180 degrees",
+ "label": "Flip Screen"
+ },
+ "gpsDisplayUnits": {
+ "description": "Coordinate display format",
+ "label": "GPS Display Units"
+ },
+ "oledType": {
+ "description": "Type of OLED screen attached to the device",
+ "label": "OLED Type"
+ },
+ "screenTimeout": {
+ "description": "Turn off the display after this long",
+ "label": "Screen Timeout"
+ },
+ "twelveHourClock": {
+ "description": "Use 12-hour clock format",
+ "label": "12-Hour Clock"
+ },
+ "wakeOnTapOrMotion": {
+ "description": "Wake the device on tap or motion",
+ "label": "Wake on Tap or Motion"
+ }
+ },
+ "lora": {
+ "title": "Mesh Settings",
+ "description": "Settings for the LoRa mesh",
+ "bandwidth": {
+ "description": "Channel bandwidth in MHz",
+ "label": "帯域"
+ },
+ "boostedRxGain": {
+ "description": "Boosted RX gain",
+ "label": "Boosted RX Gain"
+ },
+ "codingRate": {
+ "description": "The denominator of the coding rate",
+ "label": "Coding Rate"
+ },
+ "frequencyOffset": {
+ "description": "Frequency offset to correct for crystal calibration errors",
+ "label": "Frequency Offset"
+ },
+ "frequencySlot": {
+ "description": "LoRa frequency channel number",
+ "label": "Frequency Slot"
+ },
+ "hopLimit": {
+ "description": "Maximum number of hops",
+ "label": "Hop Limit"
+ },
+ "ignoreMqtt": {
+ "description": "Don't forward MQTT messages over the mesh",
+ "label": "MQTT を無視"
+ },
+ "modemPreset": {
+ "description": "Modem preset to use",
+ "label": "モデムプリセット"
+ },
+ "okToMqtt": {
+ "description": "When set to true, this configuration indicates that the user approves the packet to be uploaded to MQTT. If set to false, remote nodes are requested not to forward packets to MQTT",
+ "label": "MQTTを許可"
+ },
+ "overrideDutyCycle": {
+ "description": "デューティサイクルを上書き",
+ "label": "デューティサイクルを上書き"
+ },
+ "overrideFrequency": {
+ "description": "Override frequency",
+ "label": "Override Frequency"
+ },
+ "region": {
+ "description": "Sets the region for your node",
+ "label": "リージョン"
+ },
+ "spreadingFactor": {
+ "description": "Indicates the number of chirps per symbol",
+ "label": "Spreading Factor"
+ },
+ "transmitEnabled": {
+ "description": "Enable/Disable transmit (TX) from the LoRa radio",
+ "label": "Transmit Enabled"
+ },
+ "transmitPower": {
+ "description": "Max transmit power",
+ "label": "Transmit Power"
+ },
+ "usePreset": {
+ "description": "Use one of the predefined modem presets",
+ "label": "Use Preset"
+ },
+ "meshSettings": {
+ "description": "Settings for the LoRa mesh",
+ "label": "Mesh Settings"
+ },
+ "waveformSettings": {
+ "description": "Settings for the LoRa waveform",
+ "label": "Waveform Settings"
+ },
+ "radioSettings": {
+ "label": "Radio Settings",
+ "description": "Settings for the LoRa radio"
+ }
+ },
+ "network": {
+ "title": "WiFi Config",
+ "description": "WiFi radio configuration",
+ "note": "Note: Some devices (ESP32) cannot use both Bluetooth and WiFi at the same time.",
+ "addressMode": {
+ "description": "Address assignment selection",
+ "label": "Address Mode"
+ },
+ "dns": {
+ "description": "DNS Server",
+ "label": "DNS"
+ },
+ "ethernetEnabled": {
+ "description": "Enable or disable the Ethernet port",
+ "label": "Enabled"
+ },
+ "gateway": {
+ "description": "Default Gateway",
+ "label": "ゲートウェイ"
+ },
+ "ip": {
+ "description": "IP Address",
+ "label": "IP"
+ },
+ "psk": {
+ "description": "Network password",
+ "label": "PSK"
+ },
+ "ssid": {
+ "description": "Network name",
+ "label": "SSID"
+ },
+ "subnet": {
+ "description": "Subnet Mask",
+ "label": "サブネット"
+ },
+ "wifiEnabled": {
+ "description": "Enable or disable the WiFi radio",
+ "label": "Enabled"
+ },
+ "meshViaUdp": {
+ "label": "Mesh via UDP"
+ },
+ "ntpServer": {
+ "label": "NTP Server"
+ },
+ "rsyslogServer": {
+ "label": "Rsyslog Server"
+ },
+ "ethernetConfigSettings": {
+ "description": "Ethernet port configuration",
+ "label": "Ethernet Config"
+ },
+ "ipConfigSettings": {
+ "description": "IP configuration",
+ "label": "IP Config"
+ },
+ "ntpConfigSettings": {
+ "description": "NTP configuration",
+ "label": "NTP Config"
+ },
+ "rsyslogConfigSettings": {
+ "description": "Rsyslog configuration",
+ "label": "Rsyslog Config"
+ },
+ "udpConfigSettings": {
+ "description": "UDP over Mesh configuration",
+ "label": "UDP Config"
+ }
+ },
+ "position": {
+ "title": "Position Settings",
+ "description": "Settings for the position module",
+ "broadcastInterval": {
+ "description": "How often your position is sent out over the mesh",
+ "label": "Broadcast Interval"
+ },
+ "enablePin": {
+ "description": "GPS module enable pin override",
+ "label": "Enable Pin"
+ },
+ "fixedPosition": {
+ "description": "Don't report GPS position, but a manually-specified one",
+ "label": "Fixed Position"
+ },
+ "gpsMode": {
+ "description": "Configure whether device GPS is Enabled, Disabled, or Not Present",
+ "label": "GPS Mode"
+ },
+ "gpsUpdateInterval": {
+ "description": "How often a GPS fix should be acquired",
+ "label": "GPS Update Interval"
+ },
+ "positionFlags": {
+ "description": "Optional fields to include when assembling position messages. The more fields are selected, the larger the message will be leading to longer airtime usage and a higher risk of packet loss.",
+ "label": "Position Flags"
+ },
+ "receivePin": {
+ "description": "GPS module RX pin override",
+ "label": "Receive Pin"
+ },
+ "smartPositionEnabled": {
+ "description": "Only send position when there has been a meaningful change in location",
+ "label": "Enable Smart Position"
+ },
+ "smartPositionMinDistance": {
+ "description": "Minimum distance (in meters) that must be traveled before a position update is sent",
+ "label": "Smart Position Minimum Distance"
+ },
+ "smartPositionMinInterval": {
+ "description": "Minimum interval (in seconds) that must pass before a position update is sent",
+ "label": "Smart Position Minimum Interval"
+ },
+ "transmitPin": {
+ "description": "GPS module TX pin override",
+ "label": "Transmit Pin"
+ },
+ "intervalsSettings": {
+ "description": "How often to send position updates",
+ "label": "Intervals"
+ },
+ "flags": {
+ "placeholder": "Select position flags...",
+ "altitude": "Altitude",
+ "altitudeGeoidalSeparation": "Altitude Geoidal Separation",
+ "altitudeMsl": "Altitude is Mean Sea Level",
+ "dop": "Dilution of precision (DOP) PDOP used by default",
+ "hdopVdop": "If DOP is set, use HDOP / VDOP values instead of PDOP",
+ "numSatellites": "Number of satellites",
+ "sequenceNumber": "Sequence number",
+ "timestamp": "タイムスタンプ",
+ "unset": "削除",
+ "vehicleHeading": "Vehicle heading",
+ "vehicleSpeed": "Vehicle speed"
+ }
+ },
+ "power": {
+ "adcMultiplierOverride": {
+ "description": "Used for tweaking battery voltage reading",
+ "label": "ADC Multiplier Override ratio"
+ },
+ "ina219Address": {
+ "description": "Address of the INA219 battery monitor",
+ "label": "INA219 Address"
+ },
+ "lightSleepDuration": {
+ "description": "How long the device will be in light sleep for",
+ "label": "Light Sleep Duration"
+ },
+ "minimumWakeTime": {
+ "description": "Minimum amount of time the device will stay awake for after receiving a packet",
+ "label": "Minimum Wake Time"
+ },
+ "noConnectionBluetoothDisabled": {
+ "description": "If the device does not receive a Bluetooth connection, the BLE radio will be disabled after this long",
+ "label": "No Connection Bluetooth Disabled"
+ },
+ "powerSavingEnabled": {
+ "description": "Select if powered from a low-current source (i.e. solar), to minimize power consumption as much as possible.",
+ "label": "省電力モードを有効化"
+ },
+ "shutdownOnBatteryDelay": {
+ "description": "Automatically shutdown node after this long when on battery, 0 for indefinite",
+ "label": "Shutdown on battery delay"
+ },
+ "superDeepSleepDuration": {
+ "description": "How long the device will be in super deep sleep for",
+ "label": "Super Deep Sleep Duration"
+ },
+ "powerConfigSettings": {
+ "description": "Settings for the power module",
+ "label": "電源設定"
+ },
+ "sleepSettings": {
+ "description": "Sleep settings for the power module",
+ "label": "Sleep Settings"
+ }
+ },
+ "security": {
+ "description": "Settings for the Security configuration",
+ "title": "Security Settings",
+ "button_backupKey": "Backup Key",
+ "adminChannelEnabled": {
+ "description": "Allow incoming device control over the insecure legacy admin channel",
+ "label": "Allow Legacy Admin"
+ },
+ "enableDebugLogApi": {
+ "description": "Output live debug logging over serial, view and export position-redacted device logs over Bluetooth",
+ "label": "Enable Debug Log API"
+ },
+ "managed": {
+ "description": "If enabled, device configuration options are only able to be changed remotely by a Remote Admin node via admin messages. Do not enable this option unless at least one suitable Remote Admin node has been setup, and the public key is stored in one of the fields above.",
+ "label": "Managed"
+ },
+ "privateKey": {
+ "description": "Used to create a shared key with a remote device",
+ "label": "秘密鍵"
+ },
+ "publicKey": {
+ "description": "Sent out to other nodes on the mesh to allow them to compute a shared secret key",
+ "label": "公開鍵"
+ },
+ "primaryAdminKey": {
+ "description": "The primary public key authorized to send admin messages to this node",
+ "label": "Primary Admin Key"
+ },
+ "secondaryAdminKey": {
+ "description": "The secondary public key authorized to send admin messages to this node",
+ "label": "Secondary Admin Key"
+ },
+ "serialOutputEnabled": {
+ "description": "Serial Console over the Stream API",
+ "label": "Serial Output Enabled"
+ },
+ "tertiaryAdminKey": {
+ "description": "The tertiary public key authorized to send admin messages to this node",
+ "label": "Tertiary Admin Key"
+ },
+ "adminSettings": {
+ "description": "Settings for Admin",
+ "label": "Admin Settings"
+ },
+ "loggingSettings": {
+ "description": "Settings for Logging",
+ "label": "Logging Settings"
+ }
+ },
+ "user": {
+ "title": "User Settings",
+ "description": "Configure your device name and identity settings",
+ "longName": {
+ "label": "Long Name",
+ "description": "Your full display name (1-40 characters)",
+ "validation": {
+ "min": "Long name must be at least 1 character",
+ "max": "Long name must be at most 40 characters"
+ }
+ },
+ "shortName": {
+ "label": "Short Name",
+ "description": "Your abbreviated name (2-4 characters)",
+ "validation": {
+ "min": "Short name must be at least 2 characters",
+ "max": "Short name must be at most 4 characters"
+ }
+ },
+ "isUnmessageable": {
+ "label": "メッセージ不可",
+ "description": "Used to identify unmonitored or infrastructure nodes so that messaging is not available to nodes that will never respond."
+ },
+ "isLicensed": {
+ "label": "アマチュア無線免許所持者向け (HAM)",
+ "description": "Enable if you are a licensed amateur radio operator, enabling this option disables encryption and is not compatible with the default Meshtastic network."
+ }
+ }
+}
diff --git a/packages/web/public/i18n/locales/ja-JP/dashboard.json b/packages/web/public/i18n/locales/ja-JP/dashboard.json
index eda0d592..890b4644 100644
--- a/packages/web/public/i18n/locales/ja-JP/dashboard.json
+++ b/packages/web/public/i18n/locales/ja-JP/dashboard.json
@@ -1,12 +1,12 @@
{
- "dashboard": {
- "title": "Connected Devices",
- "description": "Manage your connected Meshtastic devices.",
- "connectionType_ble": "BLE",
- "connectionType_serial": "シリアル",
- "connectionType_network": "ネットワーク",
- "noDevicesTitle": "No devices connected",
- "noDevicesDescription": "Connect a new device to get started.",
- "button_newConnection": "New Connection"
- }
+ "dashboard": {
+ "title": "Connected Devices",
+ "description": "Manage your connected Meshtastic devices.",
+ "connectionType_ble": "BLE",
+ "connectionType_serial": "シリアル",
+ "connectionType_network": "ネットワーク",
+ "noDevicesTitle": "No devices connected",
+ "noDevicesDescription": "Connect a new device to get started.",
+ "button_newConnection": "New Connection"
+ }
}
diff --git a/packages/web/public/i18n/locales/ja-JP/dialog.json b/packages/web/public/i18n/locales/ja-JP/dialog.json
index da289ba3..2b12cd96 100644
--- a/packages/web/public/i18n/locales/ja-JP/dialog.json
+++ b/packages/web/public/i18n/locales/ja-JP/dialog.json
@@ -1,193 +1,221 @@
{
- "deleteMessages": {
- "description": "This action will clear all message history. This cannot be undone. Are you sure you want to continue?",
- "title": "Clear All Messages"
- },
- "deviceName": {
- "description": "The Device will restart once the config is saved.",
- "longName": "Long Name",
- "shortName": "Short Name",
- "title": "Change Device Name",
- "validation": {
- "longNameMax": "Long name must not be more than 40 characters",
- "shortNameMax": "Short name must not be more than 4 characters",
- "longNameMin": "Long name must have at least 1 character",
- "shortNameMin": "Short name must have at least 1 character"
- }
- },
- "import": {
- "description": "The current LoRa configuration will be overridden.",
- "error": {
- "invalidUrl": "Invalid Meshtastic URL"
- },
- "channelPrefix": "Channel: ",
- "channelSetUrl": "Channel Set/QR Code URL",
- "channels": "Channels:",
- "usePreset": "Use Preset?",
- "title": "Import Channel Set"
- },
- "locationResponse": {
- "title": "Location: {{identifier}}",
- "altitude": "Altitude: ",
- "coordinates": "Coordinates: ",
- "noCoordinates": "No Coordinates"
- },
- "pkiRegenerateDialog": {
- "title": "Regenerate Pre-Shared Key?",
- "description": "Are you sure you want to regenerate the pre-shared key?",
- "regenerate": "Regenerate"
- },
- "newDeviceDialog": {
- "title": "Connect New Device",
- "https": "https",
- "http": "http",
- "tabHttp": "HTTP",
- "tabBluetooth": "Bluetooth",
- "tabSerial": "シリアル",
- "useHttps": "Use HTTPS",
- "connecting": "Connecting...",
- "connect": "Connect",
- "connectionFailedAlert": {
- "title": "Connection Failed",
- "descriptionPrefix": "Could not connect to the device. ",
- "httpsHint": "If using HTTPS, you may need to accept a self-signed certificate first. ",
- "openLinkPrefix": "Please open ",
- "openLinkSuffix": " in a new tab",
- "acceptTlsWarningSuffix": ", accept any TLS warnings if prompted, then try again",
- "learnMoreLink": "Learn more"
- },
- "httpConnection": {
- "label": "IP Address/Hostname",
- "placeholder": "000.000.000.000 / meshtastic.local"
- },
- "serialConnection": {
- "noDevicesPaired": "No devices paired yet.",
- "newDeviceButton": "New device",
- "deviceIdentifier": "# {{index}} - {{vendorId}} - {{productId}}"
- },
- "bluetoothConnection": {
- "noDevicesPaired": "No devices paired yet.",
- "newDeviceButton": "New device",
- "connectionFailed": "Connection failed",
- "deviceDisconnected": "Device disconnected",
- "unknownDevice": "Unknown Device",
- "errorLoadingDevices": "Error loading devices",
- "unknownErrorLoadingDevices": "Unknown error loading devices"
- },
- "validation": {
- "requiresWebBluetooth": "This connection type requires <0>Web Bluetooth0>. Please use a supported browser, like Chrome or Edge.",
- "requiresWebSerial": "This connection type requires <0>Web Serial0>. Please use a supported browser, like Chrome or Edge.",
- "requiresSecureContext": "This application requires a <0>secure context0>. Please connect using HTTPS or localhost.",
- "additionallyRequiresSecureContext": "Additionally, it requires a <0>secure context0>. Please connect using HTTPS or localhost."
- }
- },
- "nodeDetails": {
- "message": "メッセージ",
- "requestPosition": "Request Position",
- "traceRoute": "Trace Route",
- "airTxUtilization": "Air TX utilization",
- "allRawMetrics": "All Raw Metrics:",
- "batteryLevel": "Battery level",
- "channelUtilization": "Channel utilization",
- "details": "Details:",
- "deviceMetrics": "Device Metrics:",
- "hardware": "Hardware: ",
- "lastHeard": "Last Heard: ",
- "nodeHexPrefix": "Node Hex: ",
- "nodeNumber": "Node Number: ",
- "position": "Position:",
- "role": "Role: ",
- "uptime": "Uptime: ",
- "voltage": "電圧",
- "title": "Node Details for {{identifier}}",
- "ignoreNode": "Ignore node",
- "removeNode": "Remove node",
- "unignoreNode": "Unignore node",
- "security": "Security:",
- "publicKey": "Public Key: ",
- "messageable": "Messageable: ",
- "KeyManuallyVerifiedTrue": "Public Key has been manually verified",
- "KeyManuallyVerifiedFalse": "Public Key is not manually verified"
- },
- "pkiBackup": {
- "loseKeysWarning": "If you lose your keys, you will need to reset your device.",
- "secureBackup": "Its important to backup your public and private keys and store your backup securely!",
- "footer": "=== END OF KEYS ===",
- "header": "=== MESHTASTIC KEYS FOR {{longName}} ({{shortName}}) ===",
- "privateKey": "Private Key:",
- "publicKey": "Public Key:",
- "fileName": "meshtastic_keys_{{longName}}_{{shortName}}.txt",
- "title": "Backup Keys"
- },
- "pkiBackupReminder": {
- "description": "We recommend backing up your key data regularly. Would you like to back up now?",
- "title": "Backup Reminder",
- "remindLaterPrefix": "Remind me in",
- "remindNever": "Never remind me",
- "backupNow": "Back up now"
- },
- "pkiRegenerate": {
- "description": "Are you sure you want to regenerate key pair?",
- "title": "Regenerate Key Pair"
- },
- "qr": {
- "addChannels": "Add Channels",
- "replaceChannels": "Replace Channels",
- "description": "The current LoRa configuration will also be shared.",
- "sharableUrl": "Sharable URL",
- "title": "Generate QR Code"
- },
- "reboot": {
- "title": "Reboot device",
- "description": "Reboot now or schedule a reboot of the connected node. Optionally, you can choose to reboot into OTA (Over-the-Air) mode.",
- "ota": "Reboot into OTA mode",
- "enterDelay": "Enter delay",
- "scheduled": "Reboot has been scheduled",
- "schedule": "Schedule reboot",
- "now": "Reboot now",
- "cancel": "Cancel scheduled reboot"
- },
- "refreshKeys": {
- "description": {
- "acceptNewKeys": "This will remove the node from device and request new keys.",
- "keyMismatchReasonSuffix": ". This is due to the remote node's current public key does not match the previously stored key for this node.",
- "unableToSendDmPrefix": "Your node is unable to send a direct message to node: "
- },
- "acceptNewKeys": "Accept New Keys",
- "title": "Keys Mismatch - {{identifier}}"
- },
- "removeNode": {
- "description": "Are you sure you want to remove this Node?",
- "title": "Remove Node?"
- },
- "shutdown": {
- "title": "Schedule Shutdown",
- "description": "Turn off the connected node after x minutes."
- },
- "traceRoute": {
- "routeToDestination": "Route to destination:",
- "routeBack": "Route back:"
- },
- "tracerouteResponse": {
- "title": "Traceroute: {{identifier}}"
- },
- "unsafeRoles": {
- "confirmUnderstanding": "Yes, I know what I'm doing",
- "conjunction": " and the blog post about ",
- "postamble": " and understand the implications of changing the role.",
- "preamble": "I have read the ",
- "choosingRightDeviceRole": "Choosing The Right Device Role",
- "deviceRoleDocumentation": "Device Role Documentation",
- "title": "よろしいですか?"
- },
- "managedMode": {
- "confirmUnderstanding": "Yes, I know what I'm doing",
- "title": "よろしいですか?",
- "description": "Enabling Managed Mode blocks client applications (including the web client) from writing configurations to a radio. Once enabled, radio configurations can only be changed through Remote Admin messages. This setting is not required for remote node administration."
- },
- "clientNotification": {
- "title": "Client Notification",
- "TraceRoute can only be sent once every 30 seconds": "TraceRoute can only be sent once every 30 seconds",
- "Compromised keys were detected and regenerated.": "Compromised keys were detected and regenerated."
- }
+ "deleteMessages": {
+ "description": "This action will clear all message history. This cannot be undone. Are you sure you want to continue?",
+ "title": "Clear All Messages"
+ },
+ "deviceName": {
+ "description": "The Device will restart once the config is saved.",
+ "longName": "Long Name",
+ "shortName": "Short Name",
+ "title": "Change Device Name",
+ "validation": {
+ "longNameMax": "Long name must not be more than 40 characters",
+ "shortNameMax": "Short name must not be more than 4 characters",
+ "longNameMin": "Long name must have at least 1 character",
+ "shortNameMin": "Short name must have at least 1 character"
+ }
+ },
+ "import": {
+ "description": "The current LoRa configuration will be overridden.",
+ "error": {
+ "invalidUrl": "Invalid Meshtastic URL"
+ },
+ "channelPrefix": "Channel: ",
+ "primary": "Primary ",
+ "doNotImport": "No not import",
+ "channelName": "名前",
+ "channelSlot": "スロット",
+ "channelSetUrl": "Channel Set/QR Code URL",
+ "useLoraConfig": "Import LoRa Config",
+ "presetDescription": "The current LoRa Config will be replaced.",
+ "title": "Import Channel Set"
+ },
+ "locationResponse": {
+ "title": "Location: {{identifier}}",
+ "altitude": "Altitude: ",
+ "coordinates": "Coordinates: ",
+ "noCoordinates": "No Coordinates"
+ },
+ "pkiRegenerateDialog": {
+ "title": "Regenerate Pre-Shared Key?",
+ "description": "Are you sure you want to regenerate the pre-shared key?",
+ "regenerate": "Regenerate"
+ },
+ "newDeviceDialog": {
+ "title": "Connect New Device",
+ "https": "https",
+ "http": "http",
+ "tabHttp": "HTTP",
+ "tabBluetooth": "Bluetooth",
+ "tabSerial": "シリアル",
+ "useHttps": "Use HTTPS",
+ "connecting": "Connecting...",
+ "connect": "Connect",
+ "connectionFailedAlert": {
+ "title": "Connection Failed",
+ "descriptionPrefix": "Could not connect to the device. ",
+ "httpsHint": "If using HTTPS, you may need to accept a self-signed certificate first. ",
+ "openLinkPrefix": "Please open ",
+ "openLinkSuffix": " in a new tab",
+ "acceptTlsWarningSuffix": ", accept any TLS warnings if prompted, then try again",
+ "learnMoreLink": "Learn more"
+ },
+ "httpConnection": {
+ "label": "IP Address/Hostname",
+ "placeholder": "000.000.000.000 / meshtastic.local"
+ },
+ "serialConnection": {
+ "noDevicesPaired": "No devices paired yet.",
+ "newDeviceButton": "New device",
+ "deviceIdentifier": "# {{index}} - {{vendorId}} - {{productId}}"
+ },
+ "bluetoothConnection": {
+ "noDevicesPaired": "No devices paired yet.",
+ "newDeviceButton": "New device",
+ "connectionFailed": "Connection failed",
+ "deviceDisconnected": "Device disconnected",
+ "unknownDevice": "Unknown Device",
+ "errorLoadingDevices": "Error loading devices",
+ "unknownErrorLoadingDevices": "Unknown error loading devices"
+ },
+ "validation": {
+ "requiresWebBluetooth": "This connection type requires <0>Web Bluetooth0>. Please use a supported browser, like Chrome or Edge.",
+ "requiresWebSerial": "This connection type requires <0>Web Serial0>. Please use a supported browser, like Chrome or Edge.",
+ "requiresSecureContext": "This application requires a <0>secure context0>. Please connect using HTTPS or localhost.",
+ "additionallyRequiresSecureContext": "Additionally, it requires a <0>secure context0>. Please connect using HTTPS or localhost."
+ }
+ },
+ "nodeDetails": {
+ "message": "メッセージ",
+ "requestPosition": "Request Position",
+ "traceRoute": "Trace Route",
+ "airTxUtilization": "Air TX utilization",
+ "allRawMetrics": "All Raw Metrics:",
+ "batteryLevel": "Battery level",
+ "channelUtilization": "Channel utilization",
+ "details": "Details:",
+ "deviceMetrics": "Device Metrics:",
+ "hardware": "Hardware: ",
+ "lastHeard": "Last Heard: ",
+ "nodeHexPrefix": "Node Hex: ",
+ "nodeNumber": "Node Number: ",
+ "position": "Position:",
+ "role": "Role: ",
+ "uptime": "Uptime: ",
+ "voltage": "電圧",
+ "title": "Node Details for {{identifier}}",
+ "ignoreNode": "Ignore node",
+ "removeNode": "Remove node",
+ "unignoreNode": "Unignore node",
+ "security": "Security:",
+ "publicKey": "Public Key: ",
+ "messageable": "Messageable: ",
+ "KeyManuallyVerifiedTrue": "Public Key has been manually verified",
+ "KeyManuallyVerifiedFalse": "Public Key is not manually verified"
+ },
+ "pkiBackup": {
+ "loseKeysWarning": "If you lose your keys, you will need to reset your device.",
+ "secureBackup": "Its important to backup your public and private keys and store your backup securely!",
+ "footer": "=== END OF KEYS ===",
+ "header": "=== MESHTASTIC KEYS FOR {{longName}} ({{shortName}}) ===",
+ "privateKey": "Private Key:",
+ "publicKey": "Public Key:",
+ "fileName": "meshtastic_keys_{{longName}}_{{shortName}}.txt",
+ "title": "Backup Keys"
+ },
+ "pkiBackupReminder": {
+ "description": "We recommend backing up your key data regularly. Would you like to back up now?",
+ "title": "Backup Reminder",
+ "remindLaterPrefix": "Remind me in",
+ "remindNever": "Never remind me",
+ "backupNow": "Back up now"
+ },
+ "pkiRegenerate": {
+ "description": "Are you sure you want to regenerate key pair?",
+ "title": "Regenerate Key Pair"
+ },
+ "qr": {
+ "addChannels": "Add Channels",
+ "replaceChannels": "Replace Channels",
+ "description": "The current LoRa configuration will also be shared.",
+ "sharableUrl": "Sharable URL",
+ "title": "Generate QR Code"
+ },
+ "reboot": {
+ "title": "Reboot device",
+ "description": "Reboot now or schedule a reboot of the connected node. Optionally, you can choose to reboot into OTA (Over-the-Air) mode.",
+ "ota": "Reboot into OTA mode",
+ "enterDelay": "Enter delay",
+ "scheduled": "Reboot has been scheduled",
+ "schedule": "Schedule reboot",
+ "now": "Reboot now",
+ "cancel": "Cancel scheduled reboot"
+ },
+ "refreshKeys": {
+ "description": {
+ "acceptNewKeys": "This will remove the node from device and request new keys.",
+ "keyMismatchReasonSuffix": ". This is due to the remote node's current public key does not match the previously stored key for this node.",
+ "unableToSendDmPrefix": "Your node is unable to send a direct message to node: "
+ },
+ "acceptNewKeys": "Accept New Keys",
+ "title": "Keys Mismatch - {{identifier}}"
+ },
+ "removeNode": {
+ "description": "Are you sure you want to remove this Node?",
+ "title": "Remove Node?"
+ },
+ "shutdown": {
+ "title": "Schedule Shutdown",
+ "description": "Turn off the connected node after x minutes."
+ },
+ "traceRoute": {
+ "routeToDestination": "Route to destination:",
+ "routeBack": "Route back:"
+ },
+ "tracerouteResponse": {
+ "title": "Traceroute: {{identifier}}"
+ },
+ "unsafeRoles": {
+ "confirmUnderstanding": "Yes, I know what I'm doing",
+ "conjunction": " and the blog post about ",
+ "postamble": " and understand the implications of changing the role.",
+ "preamble": "I have read the ",
+ "choosingRightDeviceRole": "Choosing The Right Device Role",
+ "deviceRoleDocumentation": "Device Role Documentation",
+ "title": "よろしいですか?"
+ },
+ "managedMode": {
+ "confirmUnderstanding": "Yes, I know what I'm doing",
+ "title": "よろしいですか?",
+ "description": "Enabling Managed Mode blocks client applications (including the web client) from writing configurations to a radio. Once enabled, radio configurations can only be changed through Remote Admin messages. This setting is not required for remote node administration."
+ },
+ "clientNotification": {
+ "title": "Client Notification",
+ "TraceRoute can only be sent once every 30 seconds": "TraceRoute can only be sent once every 30 seconds",
+ "Compromised keys were detected and regenerated.": "Compromised keys were detected and regenerated."
+ },
+ "resetNodeDb": {
+ "title": "Reset Node Database",
+ "description": "This will clear all nodes from the connected device's node database and clear all message history in the client. This cannot be undone. Are you sure you want to continue?",
+ "confirm": "Reset Node Database",
+ "failedTitle": "There was an error resetting the Node DB. Please try again."
+ },
+ "clearAllStores": {
+ "title": "Clear All Local Storage",
+ "description": "This will clear all locally stored data, including message history and node databases for all previously connected devices. This will require you to reconnect to your node once complete and cannot be undone. Are you sure you want to continue?",
+ "confirm": "Clear all local storage",
+ "failedTitle": "There was an error clearing local storage. Please try again."
+ },
+ "factoryResetDevice": {
+ "title": "Factory Reset Device",
+ "description": "This will factory reset the connected device, erasing all configurations and data on the device as well as all nodes and messages saved in the client. This cannot be undone. Are you sure you want to continue?",
+ "confirm": "Factory Reset Device",
+ "failedTitle": "There was an error performing the factory reset. Please try again."
+ },
+ "factoryResetConfig": {
+ "title": "Factory Reset Config",
+ "description": "This will factory reset the configuration on the connected device, erasing all configurations on the device. This cannot be undone. Are you sure you want to continue?",
+ "confirm": "Factory Reset Config",
+ "failedTitle": "There was an error performing the factory reset. Please try again."
+ }
}
diff --git a/packages/web/public/i18n/locales/ja-JP/map.json b/packages/web/public/i18n/locales/ja-JP/map.json
new file mode 100644
index 00000000..2dd58975
--- /dev/null
+++ b/packages/web/public/i18n/locales/ja-JP/map.json
@@ -0,0 +1,38 @@
+{
+ "maplibre": {
+ "GeolocateControl.FindMyLocation": "Find my location",
+ "NavigationControl.ZoomIn": "Zoom in",
+ "NavigationControl.ZoomOut": "Zoom out",
+ "CooperativeGesturesHandler.WindowsHelpText": "Use Ctrl + scroll to zoom the map",
+ "CooperativeGesturesHandler.MacHelpText": "Use ⌘ + scroll to zoom the map",
+ "CooperativeGesturesHandler.MobileHelpText": "Use two fingers to move the map"
+ },
+ "layerTool": {
+ "nodeMarkers": "Show nodes",
+ "directNeighbors": "Show direct connections",
+ "remoteNeighbors": "Show remote connections",
+ "positionPrecision": "Show position precision",
+ "traceroutes": "Show traceroutes",
+ "waypoints": "Show waypoints"
+ },
+ "mapMenu": {
+ "locateAria": "Locate my node",
+ "layersAria": "Change map style"
+ },
+ "waypointDetail": {
+ "edit": "編集",
+ "description": "Description:",
+ "createdBy": "Edited by:",
+ "createdDate": "Created:",
+ "updated": "Updated:",
+ "expires": "Expires:",
+ "distance": "Distance:",
+ "bearing": "Absolute bearing:",
+ "lockedTo": "Locked by:",
+ "latitude": "Latitude:",
+ "longitude": "Longitude:"
+ },
+ "myNode": {
+ "tooltip": "This device"
+ }
+}
diff --git a/packages/web/public/i18n/locales/ja-JP/messages.json b/packages/web/public/i18n/locales/ja-JP/messages.json
index 859a75fd..62ae8df7 100644
--- a/packages/web/public/i18n/locales/ja-JP/messages.json
+++ b/packages/web/public/i18n/locales/ja-JP/messages.json
@@ -1,39 +1,39 @@
{
- "page": {
- "title": "Messages: {{chatName}}",
- "placeholder": "Enter Message"
- },
- "emptyState": {
- "title": "Select a Chat",
- "text": "No messages yet."
- },
- "selectChatPrompt": {
- "text": "Select a channel or node to start messaging."
- },
- "sendMessage": {
- "placeholder": "Enter your message here...",
- "sendButton": "送信"
- },
- "actionsMenu": {
- "addReactionLabel": "Add Reaction",
- "replyLabel": "返信"
- },
- "deliveryStatus": {
- "delivered": {
- "label": "Message delivered",
- "displayText": "Message delivered"
- },
- "failed": {
- "label": "Message delivery failed",
- "displayText": "Delivery failed"
- },
- "unknown": {
- "label": "Message status unknown",
- "displayText": "Unknown state"
- },
- "waiting": {
- "label": "Sending message",
- "displayText": "Waiting for delivery"
- }
- }
+ "page": {
+ "title": "Messages: {{chatName}}",
+ "placeholder": "Enter Message"
+ },
+ "emptyState": {
+ "title": "Select a Chat",
+ "text": "No messages yet."
+ },
+ "selectChatPrompt": {
+ "text": "Select a channel or node to start messaging."
+ },
+ "sendMessage": {
+ "placeholder": "Enter your message here...",
+ "sendButton": "送信"
+ },
+ "actionsMenu": {
+ "addReactionLabel": "Add Reaction",
+ "replyLabel": "返信"
+ },
+ "deliveryStatus": {
+ "delivered": {
+ "label": "Message delivered",
+ "displayText": "Message delivered"
+ },
+ "failed": {
+ "label": "Message delivery failed",
+ "displayText": "Delivery failed"
+ },
+ "unknown": {
+ "label": "Message status unknown",
+ "displayText": "Unknown state"
+ },
+ "waiting": {
+ "label": "Sending message",
+ "displayText": "Waiting for delivery"
+ }
+ }
}
diff --git a/packages/web/public/i18n/locales/ja-JP/moduleConfig.json b/packages/web/public/i18n/locales/ja-JP/moduleConfig.json
index 7c8f213f..5b384651 100644
--- a/packages/web/public/i18n/locales/ja-JP/moduleConfig.json
+++ b/packages/web/public/i18n/locales/ja-JP/moduleConfig.json
@@ -1,448 +1,448 @@
{
- "page": {
- "tabAmbientLighting": "環境照明",
- "tabAudio": "オーディオ",
- "tabCannedMessage": "Canned",
- "tabDetectionSensor": "検出センサー",
- "tabExternalNotification": "Ext Notif",
- "tabMqtt": "MQTT",
- "tabNeighborInfo": "隣接ノード情報",
- "tabPaxcounter": "Paxcounter",
- "tabRangeTest": "レンジテスト",
- "tabSerial": "シリアル",
- "tabStoreAndForward": "S&F",
- "tabTelemetry": "テレメトリー"
- },
- "ambientLighting": {
- "title": "Ambient Lighting Settings",
- "description": "Settings for the Ambient Lighting module",
- "ledState": {
- "label": "LED State",
- "description": "Sets LED to on or off"
- },
- "current": {
- "label": "電流",
- "description": "Sets the current for the LED output. Default is 10"
- },
- "red": {
- "label": "赤",
- "description": "Sets the red LED level. Values are 0-255"
- },
- "green": {
- "label": "緑",
- "description": "Sets the green LED level. Values are 0-255"
- },
- "blue": {
- "label": "青",
- "description": "Sets the blue LED level. Values are 0-255"
- }
- },
- "audio": {
- "title": "Audio Settings",
- "description": "Settings for the Audio module",
- "codec2Enabled": {
- "label": "Codec 2 Enabled",
- "description": "Enable Codec 2 audio encoding"
- },
- "pttPin": {
- "label": "PTT Pin",
- "description": "GPIO pin to use for PTT"
- },
- "bitrate": {
- "label": "Bitrate",
- "description": "Bitrate to use for audio encoding"
- },
- "i2sWs": {
- "label": "i2S WS",
- "description": "GPIO pin to use for i2S WS"
- },
- "i2sSd": {
- "label": "i2S SD",
- "description": "GPIO pin to use for i2S SD"
- },
- "i2sDin": {
- "label": "i2S DIN",
- "description": "GPIO pin to use for i2S DIN"
- },
- "i2sSck": {
- "label": "i2S SCK",
- "description": "GPIO pin to use for i2S SCK"
- }
- },
- "cannedMessage": {
- "title": "Canned Message Settings",
- "description": "Settings for the Canned Message module",
- "moduleEnabled": {
- "label": "Module Enabled",
- "description": "Enable Canned Message"
- },
- "rotary1Enabled": {
- "label": "Rotary Encoder #1 Enabled",
- "description": "Enable the rotary encoder"
- },
- "inputbrokerPinA": {
- "label": "Encoder Pin A",
- "description": "GPIO Pin Value (1-39) For encoder port A"
- },
- "inputbrokerPinB": {
- "label": "Encoder Pin B",
- "description": "GPIO Pin Value (1-39) For encoder port B"
- },
- "inputbrokerPinPress": {
- "label": "Encoder Pin Press",
- "description": "GPIO Pin Value (1-39) For encoder Press"
- },
- "inputbrokerEventCw": {
- "label": "Clockwise event",
- "description": "Select input event."
- },
- "inputbrokerEventCcw": {
- "label": "Counter Clockwise event",
- "description": "Select input event."
- },
- "inputbrokerEventPress": {
- "label": "Press event",
- "description": "Select input event"
- },
- "updown1Enabled": {
- "label": "Up Down enabled",
- "description": "Enable the up / down encoder"
- },
- "allowInputSource": {
- "label": "Allow Input Source",
- "description": "Select from: '_any', 'rotEnc1', 'upDownEnc1', 'cardkb'"
- },
- "sendBell": {
- "label": "Send Bell",
- "description": "Sends a bell character with each message"
- }
- },
- "detectionSensor": {
- "title": "Detection Sensor Settings",
- "description": "Settings for the Detection Sensor module",
- "enabled": {
- "label": "Enabled",
- "description": "Enable or disable Detection Sensor Module"
- },
- "minimumBroadcastSecs": {
- "label": "Minimum Broadcast Seconds",
- "description": "The interval in seconds of how often we can send a message to the mesh when a state change is detected"
- },
- "stateBroadcastSecs": {
- "label": "State Broadcast Seconds",
- "description": "The interval in seconds of how often we should send a message to the mesh with the current state regardless of changes"
- },
- "sendBell": {
- "label": "Send Bell",
- "description": "Send ASCII bell with alert message"
- },
- "name": {
- "label": "Friendly Name",
- "description": "Used to format the message sent to mesh, max 20 Characters"
- },
- "monitorPin": {
- "label": "Monitor Pin",
- "description": "The GPIO pin to monitor for state changes"
- },
- "detectionTriggerType": {
- "label": "Detection Triggered Type",
- "description": "The type of trigger event to be used"
- },
- "usePullup": {
- "label": "Use Pullup",
- "description": "Whether or not use INPUT_PULLUP mode for GPIO pin"
- }
- },
- "externalNotification": {
- "title": "External Notification Settings",
- "description": "Configure the external notification module",
- "enabled": {
- "label": "Module Enabled",
- "description": "Enable External Notification"
- },
- "outputMs": {
- "label": "Output MS",
- "description": "Output MS"
- },
- "output": {
- "label": "Output",
- "description": "Output"
- },
- "outputVibra": {
- "label": "Output Vibrate",
- "description": "Output Vibrate"
- },
- "outputBuzzer": {
- "label": "Output Buzzer",
- "description": "Output Buzzer"
- },
- "active": {
- "label": "Active",
- "description": "Active"
- },
- "alertMessage": {
- "label": "Alert Message",
- "description": "Alert Message"
- },
- "alertMessageVibra": {
- "label": "Alert Message Vibrate",
- "description": "Alert Message Vibrate"
- },
- "alertMessageBuzzer": {
- "label": "Alert Message Buzzer",
- "description": "Alert Message Buzzer"
- },
- "alertBell": {
- "label": "Alert Bell",
- "description": "Should an alert be triggered when receiving an incoming bell?"
- },
- "alertBellVibra": {
- "label": "Alert Bell Vibrate",
- "description": "Alert Bell Vibrate"
- },
- "alertBellBuzzer": {
- "label": "Alert Bell Buzzer",
- "description": "Alert Bell Buzzer"
- },
- "usePwm": {
- "label": "Use PWM",
- "description": "Use PWM"
- },
- "nagTimeout": {
- "label": "Nag Timeout",
- "description": "Nag Timeout"
- },
- "useI2sAsBuzzer": {
- "label": "Use I²S Pin as Buzzer",
- "description": "Designate I²S Pin as Buzzer Output"
- }
- },
- "mqtt": {
- "title": "MQTT Settings",
- "description": "Settings for the MQTT module",
- "enabled": {
- "label": "Enabled",
- "description": "Enable or disable MQTT"
- },
- "address": {
- "label": "MQTT Server Address",
- "description": "MQTT server address to use for default/custom servers"
- },
- "username": {
- "label": "MQTT Username",
- "description": "MQTT username to use for default/custom servers"
- },
- "password": {
- "label": "MQTT Password",
- "description": "MQTT password to use for default/custom servers"
- },
- "encryptionEnabled": {
- "label": "Encryption Enabled",
- "description": "Enable or disable MQTT encryption. Note: All messages are sent to the MQTT broker unencrypted if this option is not enabled, even when your uplink channels have encryption keys set. This includes position data."
- },
- "jsonEnabled": {
- "label": "JSON Enabled",
- "description": "Whether to send/consume JSON packets on MQTT"
- },
- "tlsEnabled": {
- "label": "TLS Enabled",
- "description": "Enable or disable TLS"
- },
- "root": {
- "label": "ルート トピック",
- "description": "MQTT root topic to use for default/custom servers"
- },
- "proxyToClientEnabled": {
- "label": "MQTT Client Proxy Enabled",
- "description": "Utilizes the network connection to proxy MQTT messages to the client."
- },
- "mapReportingEnabled": {
- "label": "Map Reporting Enabled",
- "description": "Your node will periodically send an unencrypted map report packet to the configured MQTT server, this includes id, short and long name, approximate location, hardware model, role, firmware version, LoRa region, modem preset and primary channel name."
- },
- "mapReportSettings": {
- "publishIntervalSecs": {
- "label": "Map Report Publish Interval (s)",
- "description": "Interval in seconds to publish map reports"
- },
- "positionPrecision": {
- "label": "Approximate Location",
- "description": "Position shared will be accurate within this distance",
- "options": {
- "metric_km23": "Within 23 km",
- "metric_km12": "Within 12 km",
- "metric_km5_8": "Within 5.8 km",
- "metric_km2_9": "Within 2.9 km",
- "metric_km1_5": "Within 1.5 km",
- "metric_m700": "Within 700 m",
- "metric_m350": "Within 350 m",
- "metric_m200": "Within 200 m",
- "metric_m90": "Within 90 m",
- "metric_m50": "Within 50 m",
- "imperial_mi15": "Within 15 miles",
- "imperial_mi7_3": "Within 7.3 miles",
- "imperial_mi3_6": "Within 3.6 miles",
- "imperial_mi1_8": "Within 1.8 miles",
- "imperial_mi0_9": "Within 0.9 miles",
- "imperial_mi0_5": "Within 0.5 miles",
- "imperial_mi0_2": "Within 0.2 miles",
- "imperial_ft600": "Within 600 feet",
- "imperial_ft300": "Within 300 feet",
- "imperial_ft150": "Within 150 feet"
- }
- }
- }
- },
- "neighborInfo": {
- "title": "Neighbor Info Settings",
- "description": "Settings for the Neighbor Info module",
- "enabled": {
- "label": "Enabled",
- "description": "Enable or disable Neighbor Info Module"
- },
- "updateInterval": {
- "label": "Update Interval",
- "description": "Interval in seconds of how often we should try to send our Neighbor Info to the mesh"
- }
- },
- "paxcounter": {
- "title": "Paxcounter Settings",
- "description": "Settings for the Paxcounter module",
- "enabled": {
- "label": "Module Enabled",
- "description": "Enable Paxcounter"
- },
- "paxcounterUpdateInterval": {
- "label": "Update Interval (seconds)",
- "description": "How long to wait between sending paxcounter packets"
- },
- "wifiThreshold": {
- "label": "WiFi RSSI Threshold",
- "description": "At what WiFi RSSI level should the counter increase. Defaults to -80."
- },
- "bleThreshold": {
- "label": "BLE RSSI Threshold",
- "description": "At what BLE RSSI level should the counter increase. Defaults to -80."
- }
- },
- "rangeTest": {
- "title": "Range Test Settings",
- "description": "Settings for the Range Test module",
- "enabled": {
- "label": "Module Enabled",
- "description": "Enable Range Test"
- },
- "sender": {
- "label": "Message Interval",
- "description": "How long to wait between sending test packets"
- },
- "save": {
- "label": "Save CSV to storage",
- "description": "ESP32 Only"
- }
- },
- "serial": {
- "title": "Serial Settings",
- "description": "Settings for the Serial module",
- "enabled": {
- "label": "Module Enabled",
- "description": "Enable Serial output"
- },
- "echo": {
- "label": "Echo",
- "description": "Any packets you send will be echoed back to your device"
- },
- "rxd": {
- "label": "Receive Pin",
- "description": "Set the GPIO pin to the RXD pin you have set up."
- },
- "txd": {
- "label": "Transmit Pin",
- "description": "Set the GPIO pin to the TXD pin you have set up."
- },
- "baud": {
- "label": "Baud Rate",
- "description": "The serial baud rate"
- },
- "timeout": {
- "label": "タイムアウト",
- "description": "Seconds to wait before we consider your packet as 'done'"
- },
- "mode": {
- "label": "Mode",
- "description": "Select Mode"
- },
- "overrideConsoleSerialPort": {
- "label": "Override Console Serial Port",
- "description": "If you have a serial port connected to the console, this will override it."
- }
- },
- "storeForward": {
- "title": "Store & Forward Settings",
- "description": "Settings for the Store & Forward module",
- "enabled": {
- "label": "Module Enabled",
- "description": "Enable Store & Forward"
- },
- "heartbeat": {
- "label": "Heartbeat Enabled",
- "description": "Enable Store & Forward heartbeat"
- },
- "records": {
- "label": "サーバーの最大保管レコード数 (デフォルト 約11,000レコード)",
- "description": "Number of records to store"
- },
- "historyReturnMax": {
- "label": "リクエスト可能な最大の履歴件数",
- "description": "Max number of records to return"
- },
- "historyReturnWindow": {
- "label": "リクエスト可能な履歴の期間 (分)",
- "description": "この時間枠内の記録を返す(分)"
- }
- },
- "telemetry": {
- "title": "Telemetry Settings",
- "description": "Settings for the Telemetry module",
- "deviceUpdateInterval": {
- "label": "Device Metrics",
- "description": "デバイスのメトリック更新間隔 (秒)"
- },
- "environmentUpdateInterval": {
- "label": "環境メトリック更新間隔 (秒)",
- "description": ""
- },
- "environmentMeasurementEnabled": {
- "label": "Module Enabled",
- "description": "Enable the Environment Telemetry"
- },
- "environmentScreenEnabled": {
- "label": "Displayed on Screen",
- "description": "Show the Telemetry Module on the OLED"
- },
- "environmentDisplayFahrenheit": {
- "label": "Display Fahrenheit",
- "description": "Display temp in Fahrenheit"
- },
- "airQualityEnabled": {
- "label": "Air Quality Enabled",
- "description": "Enable the Air Quality Telemetry"
- },
- "airQualityInterval": {
- "label": "Air Quality Update Interval",
- "description": "How often to send Air Quality data over the mesh"
- },
- "powerMeasurementEnabled": {
- "label": "Power Measurement Enabled",
- "description": "Enable the Power Measurement Telemetry"
- },
- "powerUpdateInterval": {
- "label": "Power Update Interval",
- "description": "How often to send Power data over the mesh"
- },
- "powerScreenEnabled": {
- "label": "Power Screen Enabled",
- "description": "Enable the Power Telemetry Screen"
- }
- }
+ "page": {
+ "tabAmbientLighting": "環境照明",
+ "tabAudio": "オーディオ",
+ "tabCannedMessage": "Canned",
+ "tabDetectionSensor": "検出センサー",
+ "tabExternalNotification": "Ext Notif",
+ "tabMqtt": "MQTT",
+ "tabNeighborInfo": "隣接ノード情報",
+ "tabPaxcounter": "Paxcounter",
+ "tabRangeTest": "レンジテスト",
+ "tabSerial": "シリアル",
+ "tabStoreAndForward": "S&F",
+ "tabTelemetry": "テレメトリー"
+ },
+ "ambientLighting": {
+ "title": "Ambient Lighting Settings",
+ "description": "Settings for the Ambient Lighting module",
+ "ledState": {
+ "label": "LED State",
+ "description": "Sets LED to on or off"
+ },
+ "current": {
+ "label": "電流",
+ "description": "Sets the current for the LED output. Default is 10"
+ },
+ "red": {
+ "label": "赤",
+ "description": "Sets the red LED level. Values are 0-255"
+ },
+ "green": {
+ "label": "緑",
+ "description": "Sets the green LED level. Values are 0-255"
+ },
+ "blue": {
+ "label": "青",
+ "description": "Sets the blue LED level. Values are 0-255"
+ }
+ },
+ "audio": {
+ "title": "Audio Settings",
+ "description": "Settings for the Audio module",
+ "codec2Enabled": {
+ "label": "Codec 2 Enabled",
+ "description": "Enable Codec 2 audio encoding"
+ },
+ "pttPin": {
+ "label": "PTT Pin",
+ "description": "GPIO pin to use for PTT"
+ },
+ "bitrate": {
+ "label": "Bitrate",
+ "description": "Bitrate to use for audio encoding"
+ },
+ "i2sWs": {
+ "label": "i2S WS",
+ "description": "GPIO pin to use for i2S WS"
+ },
+ "i2sSd": {
+ "label": "i2S SD",
+ "description": "GPIO pin to use for i2S SD"
+ },
+ "i2sDin": {
+ "label": "i2S DIN",
+ "description": "GPIO pin to use for i2S DIN"
+ },
+ "i2sSck": {
+ "label": "i2S SCK",
+ "description": "GPIO pin to use for i2S SCK"
+ }
+ },
+ "cannedMessage": {
+ "title": "Canned Message Settings",
+ "description": "Settings for the Canned Message module",
+ "moduleEnabled": {
+ "label": "Module Enabled",
+ "description": "Enable Canned Message"
+ },
+ "rotary1Enabled": {
+ "label": "Rotary Encoder #1 Enabled",
+ "description": "Enable the rotary encoder"
+ },
+ "inputbrokerPinA": {
+ "label": "Encoder Pin A",
+ "description": "GPIO Pin Value (1-39) For encoder port A"
+ },
+ "inputbrokerPinB": {
+ "label": "Encoder Pin B",
+ "description": "GPIO Pin Value (1-39) For encoder port B"
+ },
+ "inputbrokerPinPress": {
+ "label": "Encoder Pin Press",
+ "description": "GPIO Pin Value (1-39) For encoder Press"
+ },
+ "inputbrokerEventCw": {
+ "label": "Clockwise event",
+ "description": "Select input event."
+ },
+ "inputbrokerEventCcw": {
+ "label": "Counter Clockwise event",
+ "description": "Select input event."
+ },
+ "inputbrokerEventPress": {
+ "label": "Press event",
+ "description": "Select input event"
+ },
+ "updown1Enabled": {
+ "label": "Up Down enabled",
+ "description": "Enable the up / down encoder"
+ },
+ "allowInputSource": {
+ "label": "Allow Input Source",
+ "description": "Select from: '_any', 'rotEnc1', 'upDownEnc1', 'cardkb'"
+ },
+ "sendBell": {
+ "label": "Send Bell",
+ "description": "Sends a bell character with each message"
+ }
+ },
+ "detectionSensor": {
+ "title": "Detection Sensor Settings",
+ "description": "Settings for the Detection Sensor module",
+ "enabled": {
+ "label": "Enabled",
+ "description": "Enable or disable Detection Sensor Module"
+ },
+ "minimumBroadcastSecs": {
+ "label": "Minimum Broadcast Seconds",
+ "description": "The interval in seconds of how often we can send a message to the mesh when a state change is detected"
+ },
+ "stateBroadcastSecs": {
+ "label": "State Broadcast Seconds",
+ "description": "The interval in seconds of how often we should send a message to the mesh with the current state regardless of changes"
+ },
+ "sendBell": {
+ "label": "Send Bell",
+ "description": "Send ASCII bell with alert message"
+ },
+ "name": {
+ "label": "Friendly Name",
+ "description": "Used to format the message sent to mesh, max 20 Characters"
+ },
+ "monitorPin": {
+ "label": "Monitor Pin",
+ "description": "The GPIO pin to monitor for state changes"
+ },
+ "detectionTriggerType": {
+ "label": "Detection Triggered Type",
+ "description": "The type of trigger event to be used"
+ },
+ "usePullup": {
+ "label": "Use Pullup",
+ "description": "Whether or not use INPUT_PULLUP mode for GPIO pin"
+ }
+ },
+ "externalNotification": {
+ "title": "External Notification Settings",
+ "description": "Configure the external notification module",
+ "enabled": {
+ "label": "Module Enabled",
+ "description": "Enable External Notification"
+ },
+ "outputMs": {
+ "label": "Output MS",
+ "description": "Output MS"
+ },
+ "output": {
+ "label": "Output",
+ "description": "Output"
+ },
+ "outputVibra": {
+ "label": "Output Vibrate",
+ "description": "Output Vibrate"
+ },
+ "outputBuzzer": {
+ "label": "Output Buzzer",
+ "description": "Output Buzzer"
+ },
+ "active": {
+ "label": "Active",
+ "description": "Active"
+ },
+ "alertMessage": {
+ "label": "Alert Message",
+ "description": "Alert Message"
+ },
+ "alertMessageVibra": {
+ "label": "Alert Message Vibrate",
+ "description": "Alert Message Vibrate"
+ },
+ "alertMessageBuzzer": {
+ "label": "Alert Message Buzzer",
+ "description": "Alert Message Buzzer"
+ },
+ "alertBell": {
+ "label": "Alert Bell",
+ "description": "Should an alert be triggered when receiving an incoming bell?"
+ },
+ "alertBellVibra": {
+ "label": "Alert Bell Vibrate",
+ "description": "Alert Bell Vibrate"
+ },
+ "alertBellBuzzer": {
+ "label": "Alert Bell Buzzer",
+ "description": "Alert Bell Buzzer"
+ },
+ "usePwm": {
+ "label": "Use PWM",
+ "description": "Use PWM"
+ },
+ "nagTimeout": {
+ "label": "Nag Timeout",
+ "description": "Nag Timeout"
+ },
+ "useI2sAsBuzzer": {
+ "label": "Use I²S Pin as Buzzer",
+ "description": "Designate I²S Pin as Buzzer Output"
+ }
+ },
+ "mqtt": {
+ "title": "MQTT Settings",
+ "description": "Settings for the MQTT module",
+ "enabled": {
+ "label": "Enabled",
+ "description": "Enable or disable MQTT"
+ },
+ "address": {
+ "label": "MQTT Server Address",
+ "description": "MQTT server address to use for default/custom servers"
+ },
+ "username": {
+ "label": "MQTT Username",
+ "description": "MQTT username to use for default/custom servers"
+ },
+ "password": {
+ "label": "MQTT Password",
+ "description": "MQTT password to use for default/custom servers"
+ },
+ "encryptionEnabled": {
+ "label": "Encryption Enabled",
+ "description": "Enable or disable MQTT encryption. Note: All messages are sent to the MQTT broker unencrypted if this option is not enabled, even when your uplink channels have encryption keys set. This includes position data."
+ },
+ "jsonEnabled": {
+ "label": "JSON Enabled",
+ "description": "Whether to send/consume JSON packets on MQTT"
+ },
+ "tlsEnabled": {
+ "label": "TLS Enabled",
+ "description": "Enable or disable TLS"
+ },
+ "root": {
+ "label": "ルート トピック",
+ "description": "MQTT root topic to use for default/custom servers"
+ },
+ "proxyToClientEnabled": {
+ "label": "MQTT Client Proxy Enabled",
+ "description": "Utilizes the network connection to proxy MQTT messages to the client."
+ },
+ "mapReportingEnabled": {
+ "label": "Map Reporting Enabled",
+ "description": "Your node will periodically send an unencrypted map report packet to the configured MQTT server, this includes id, short and long name, approximate location, hardware model, role, firmware version, LoRa region, modem preset and primary channel name."
+ },
+ "mapReportSettings": {
+ "publishIntervalSecs": {
+ "label": "Map Report Publish Interval (s)",
+ "description": "Interval in seconds to publish map reports"
+ },
+ "positionPrecision": {
+ "label": "Approximate Location",
+ "description": "Position shared will be accurate within this distance",
+ "options": {
+ "metric_km23": "Within 23 km",
+ "metric_km12": "Within 12 km",
+ "metric_km5_8": "Within 5.8 km",
+ "metric_km2_9": "Within 2.9 km",
+ "metric_km1_5": "Within 1.5 km",
+ "metric_m700": "Within 700 m",
+ "metric_m350": "Within 350 m",
+ "metric_m200": "Within 200 m",
+ "metric_m90": "Within 90 m",
+ "metric_m50": "Within 50 m",
+ "imperial_mi15": "Within 15 miles",
+ "imperial_mi7_3": "Within 7.3 miles",
+ "imperial_mi3_6": "Within 3.6 miles",
+ "imperial_mi1_8": "Within 1.8 miles",
+ "imperial_mi0_9": "Within 0.9 miles",
+ "imperial_mi0_5": "Within 0.5 miles",
+ "imperial_mi0_2": "Within 0.2 miles",
+ "imperial_ft600": "Within 600 feet",
+ "imperial_ft300": "Within 300 feet",
+ "imperial_ft150": "Within 150 feet"
+ }
+ }
+ }
+ },
+ "neighborInfo": {
+ "title": "Neighbor Info Settings",
+ "description": "Settings for the Neighbor Info module",
+ "enabled": {
+ "label": "Enabled",
+ "description": "Enable or disable Neighbor Info Module"
+ },
+ "updateInterval": {
+ "label": "Update Interval",
+ "description": "Interval in seconds of how often we should try to send our Neighbor Info to the mesh"
+ }
+ },
+ "paxcounter": {
+ "title": "Paxcounter Settings",
+ "description": "Settings for the Paxcounter module",
+ "enabled": {
+ "label": "Module Enabled",
+ "description": "Enable Paxcounter"
+ },
+ "paxcounterUpdateInterval": {
+ "label": "Update Interval (seconds)",
+ "description": "How long to wait between sending paxcounter packets"
+ },
+ "wifiThreshold": {
+ "label": "WiFi RSSI Threshold",
+ "description": "At what WiFi RSSI level should the counter increase. Defaults to -80."
+ },
+ "bleThreshold": {
+ "label": "BLE RSSI Threshold",
+ "description": "At what BLE RSSI level should the counter increase. Defaults to -80."
+ }
+ },
+ "rangeTest": {
+ "title": "Range Test Settings",
+ "description": "Settings for the Range Test module",
+ "enabled": {
+ "label": "Module Enabled",
+ "description": "Enable Range Test"
+ },
+ "sender": {
+ "label": "Message Interval",
+ "description": "How long to wait between sending test packets"
+ },
+ "save": {
+ "label": "Save CSV to storage",
+ "description": "ESP32 Only"
+ }
+ },
+ "serial": {
+ "title": "Serial Settings",
+ "description": "Settings for the Serial module",
+ "enabled": {
+ "label": "Module Enabled",
+ "description": "Enable Serial output"
+ },
+ "echo": {
+ "label": "Echo",
+ "description": "Any packets you send will be echoed back to your device"
+ },
+ "rxd": {
+ "label": "Receive Pin",
+ "description": "Set the GPIO pin to the RXD pin you have set up."
+ },
+ "txd": {
+ "label": "Transmit Pin",
+ "description": "Set the GPIO pin to the TXD pin you have set up."
+ },
+ "baud": {
+ "label": "Baud Rate",
+ "description": "The serial baud rate"
+ },
+ "timeout": {
+ "label": "タイムアウト",
+ "description": "Seconds to wait before we consider your packet as 'done'"
+ },
+ "mode": {
+ "label": "Mode",
+ "description": "Select Mode"
+ },
+ "overrideConsoleSerialPort": {
+ "label": "Override Console Serial Port",
+ "description": "If you have a serial port connected to the console, this will override it."
+ }
+ },
+ "storeForward": {
+ "title": "Store & Forward Settings",
+ "description": "Settings for the Store & Forward module",
+ "enabled": {
+ "label": "Module Enabled",
+ "description": "Enable Store & Forward"
+ },
+ "heartbeat": {
+ "label": "Heartbeat Enabled",
+ "description": "Enable Store & Forward heartbeat"
+ },
+ "records": {
+ "label": "サーバーの最大保管レコード数 (デフォルト 約11,000レコード)",
+ "description": "Number of records to store"
+ },
+ "historyReturnMax": {
+ "label": "リクエスト可能な最大の履歴件数",
+ "description": "Max number of records to return"
+ },
+ "historyReturnWindow": {
+ "label": "リクエスト可能な履歴の期間 (分)",
+ "description": "この時間枠内の記録を返す(分)"
+ }
+ },
+ "telemetry": {
+ "title": "Telemetry Settings",
+ "description": "Settings for the Telemetry module",
+ "deviceUpdateInterval": {
+ "label": "Device Metrics",
+ "description": "デバイスのメトリック更新間隔 (秒)"
+ },
+ "environmentUpdateInterval": {
+ "label": "環境メトリック更新間隔 (秒)",
+ "description": ""
+ },
+ "environmentMeasurementEnabled": {
+ "label": "Module Enabled",
+ "description": "Enable the Environment Telemetry"
+ },
+ "environmentScreenEnabled": {
+ "label": "Displayed on Screen",
+ "description": "Show the Telemetry Module on the OLED"
+ },
+ "environmentDisplayFahrenheit": {
+ "label": "Display Fahrenheit",
+ "description": "Display temp in Fahrenheit"
+ },
+ "airQualityEnabled": {
+ "label": "Air Quality Enabled",
+ "description": "Enable the Air Quality Telemetry"
+ },
+ "airQualityInterval": {
+ "label": "Air Quality Update Interval",
+ "description": "How often to send Air Quality data over the mesh"
+ },
+ "powerMeasurementEnabled": {
+ "label": "Power Measurement Enabled",
+ "description": "Enable the Power Measurement Telemetry"
+ },
+ "powerUpdateInterval": {
+ "label": "Power Update Interval",
+ "description": "How often to send Power data over the mesh"
+ },
+ "powerScreenEnabled": {
+ "label": "Power Screen Enabled",
+ "description": "Enable the Power Telemetry Screen"
+ }
+ }
}
diff --git a/packages/web/public/i18n/locales/ja-JP/nodes.json b/packages/web/public/i18n/locales/ja-JP/nodes.json
index ef598446..e1aa6ae8 100644
--- a/packages/web/public/i18n/locales/ja-JP/nodes.json
+++ b/packages/web/public/i18n/locales/ja-JP/nodes.json
@@ -1,63 +1,59 @@
{
- "nodeDetail": {
- "publicKeyEnabled": {
- "label": "Public Key Enabled"
- },
- "noPublicKey": {
- "label": "No Public Key"
- },
- "directMessage": {
- "label": "Direct Message {{shortName}}"
- },
- "favorite": {
- "label": "お気に入り",
- "tooltip": "Add or remove this node from your favorites"
- },
- "notFavorite": {
- "label": "Not a Favorite"
- },
- "error": {
- "label": "エラー",
- "text": "An error occurred while fetching node details. Please try again later."
- },
- "status": {
- "heard": "Heard",
- "mqtt": "MQTT"
- },
- "elevation": {
- "label": "Elevation"
- },
- "channelUtil": {
- "label": "Channel Util"
- },
- "airtimeUtil": {
- "label": "Airtime Util"
- }
- },
- "nodesTable": {
- "headings": {
- "longName": "Long Name",
- "connection": "Connection",
- "lastHeard": "Last Heard",
- "encryption": "Encryption",
- "model": "Model",
- "macAddress": "MAC Address"
- },
- "connectionStatus": {
- "direct": "直接",
- "away": "away",
- "unknown": "-",
- "viaMqtt": ", via MQTT"
- },
- "lastHeardStatus": {
- "never": "Never"
- }
- },
- "actions": {
- "added": "Added",
- "removed": "Removed",
- "ignoreNode": "Ignore Node",
- "unignoreNode": "Unignore Node",
- "requestPosition": "Request Position"
- }
+ "nodeDetail": {
+ "publicKeyEnabled": {
+ "label": "Public Key Enabled"
+ },
+ "noPublicKey": {
+ "label": "No Public Key"
+ },
+ "directMessage": {
+ "label": "Direct Message {{shortName}}"
+ },
+ "favorite": {
+ "label": "お気に入り",
+ "tooltip": "Add or remove this node from your favorites"
+ },
+ "notFavorite": {
+ "label": "Not a Favorite"
+ },
+ "error": {
+ "label": "エラー",
+ "text": "An error occurred while fetching node details. Please try again later."
+ },
+ "status": {
+ "heard": "Heard",
+ "mqtt": "MQTT"
+ },
+ "elevation": {
+ "label": "Elevation"
+ },
+ "channelUtil": {
+ "label": "Channel Util"
+ },
+ "airtimeUtil": {
+ "label": "Airtime Util"
+ }
+ },
+ "nodesTable": {
+ "headings": {
+ "longName": "Long Name",
+ "connection": "Connection",
+ "lastHeard": "Last Heard",
+ "encryption": "Encryption",
+ "model": "Model",
+ "macAddress": "MAC Address"
+ },
+ "connectionStatus": {
+ "direct": "直接",
+ "away": "away",
+ "viaMqtt": ", via MQTT"
+ }
+ },
+ "actions": {
+ "added": "Added",
+ "removed": "Removed",
+ "ignoreNode": "Ignore Node",
+ "unignoreNode": "Unignore Node",
+ "requestPosition": "Request Position"
+ }
}
diff --git a/packages/web/public/i18n/locales/ja-JP/ui.json b/packages/web/public/i18n/locales/ja-JP/ui.json
index 64648e5d..68b3e10d 100644
--- a/packages/web/public/i18n/locales/ja-JP/ui.json
+++ b/packages/web/public/i18n/locales/ja-JP/ui.json
@@ -1,228 +1,229 @@
{
- "navigation": {
- "title": "Navigation",
- "messages": "メッセージ",
- "map": "地図",
- "config": "Config",
- "radioConfig": "Radio Config",
- "moduleConfig": "Module Config",
- "channels": "チャンネル",
- "nodes": "ノード"
- },
- "app": {
- "title": "Meshtastic",
- "logo": "Meshtastic Logo"
- },
- "sidebar": {
- "collapseToggle": {
- "button": {
- "open": "Open sidebar",
- "close": "Close sidebar"
- }
- },
- "deviceInfo": {
- "volts": "{{voltage}} volts",
- "firmware": {
- "title": "ファームウェア",
- "version": "v{{version}}",
- "buildDate": "Build date: {{date}}"
- },
- "deviceName": {
- "title": "Device Name",
- "changeName": "Change Device Name",
- "placeholder": "Enter device name"
- },
- "editDeviceName": "Edit device name"
- }
- },
- "batteryStatus": {
- "charging": "{{level}}% charging",
- "pluggedIn": "Plugged in",
- "title": "バッテリー"
- },
- "search": {
- "nodes": "Search nodes...",
- "channels": "Search channels...",
- "commandPalette": "Search commands..."
- },
- "toast": {
- "positionRequestSent": {
- "title": "Position request sent."
- },
- "requestingPosition": {
- "title": "Requesting position, please wait..."
- },
- "sendingTraceroute": {
- "title": "Sending Traceroute, please wait..."
- },
- "tracerouteSent": {
- "title": "Traceroute sent."
- },
- "savedChannel": {
- "title": "Saved Channel: {{channelName}}"
- },
- "messages": {
- "pkiEncryption": {
- "title": "Chat is using PKI encryption."
- },
- "pskEncryption": {
- "title": "Chat is using PSK encryption."
- }
- },
- "configSaveError": {
- "title": "Error Saving Config",
- "description": "An error occurred while saving the configuration."
- },
- "validationError": {
- "title": "Config Errors Exist",
- "description": "Please fix the configuration errors before saving."
- },
- "saveSuccess": {
- "title": "Saving Config",
- "description": "The configuration change {{case}} has been saved."
- },
- "favoriteNode": {
- "title": "{{action}} {{nodeName}} {{direction}} favorites.",
- "action": {
- "added": "Added",
- "removed": "Removed",
- "to": "to",
- "from": "from"
- }
- },
- "ignoreNode": {
- "title": "{{action}} {{nodeName}} {{direction}} ignore list",
- "action": {
- "added": "Added",
- "removed": "Removed",
- "to": "to",
- "from": "from"
- }
- }
- },
- "notifications": {
- "copied": {
- "label": "Copied!"
- },
- "copyToClipboard": {
- "label": "Copy to clipboard"
- },
- "hidePassword": {
- "label": "パスワードを非表示"
- },
- "showPassword": {
- "label": "パスワードを表示"
- },
- "deliveryStatus": {
- "delivered": "Delivered",
- "failed": "Delivery Failed",
- "waiting": "Waiting",
- "unknown": "Unknown"
- }
- },
- "general": {
- "label": "General"
- },
- "hardware": {
- "label": "ハードウェア"
- },
- "metrics": {
- "label": "Metrics"
- },
- "role": {
- "label": "役割"
- },
- "filter": {
- "label": "絞り込み"
- },
- "advanced": {
- "label": "Advanced"
- },
- "clearInput": {
- "label": "Clear input"
- },
- "resetFilters": {
- "label": "Reset Filters"
- },
- "nodeName": {
- "label": "Node name/number",
- "placeholder": "Meshtastic 1234"
- },
- "airtimeUtilization": {
- "label": "Airtime Utilization (%)"
- },
- "batteryLevel": {
- "label": "Battery level (%)",
- "labelText": "Battery level (%): {{value}}"
- },
- "batteryVoltage": {
- "label": "Battery voltage (V)",
- "title": "電圧"
- },
- "channelUtilization": {
- "label": "Channel Utilization (%)"
- },
- "hops": {
- "direct": "直接",
- "label": "Number of hops",
- "text": "Number of hops: {{value}}"
- },
- "lastHeard": {
- "label": "最後の通信",
- "labelText": "Last heard: {{value}}",
- "nowLabel": "Now"
- },
- "snr": {
- "label": "SNR (db)"
- },
- "favorites": {
- "label": "Favorites"
- },
- "hide": {
- "label": "Hide"
- },
- "showOnly": {
- "label": "Show Only"
- },
- "viaMqtt": {
- "label": "Connected via MQTT"
- },
- "hopsUnknown": {
- "label": "Unknown number of hops"
- },
- "showUnheard": {
- "label": "Never heard"
- },
- "language": {
- "label": "言語設定",
- "changeLanguage": "Change Language"
- },
- "theme": {
- "dark": "ダーク",
- "light": "ライト",
- "system": "Automatic",
- "changeTheme": "Change Color Scheme"
- },
- "errorPage": {
- "title": "This is a little embarrassing...",
- "description1": "We are really sorry but an error occurred in the web client that caused it to crash.
This is not supposed to happen, and we are working hard to fix it.",
- "description2": "The best way to prevent this from happening again to you or anyone else is to report the issue to us.",
- "reportInstructions": "Please include the following information in your report:",
- "reportSteps": {
- "step1": "What you were doing when the error occurred",
- "step2": "What you expected to happen",
- "step3": "What actually happened",
- "step4": "Any other relevant information"
- },
- "reportLink": "You can report the issue to our <0>GitHub0>",
- "dashboardLink": "Return to the <0>dashboard0>",
- "detailsSummary": "Error Details",
- "errorMessageLabel": "Error message:",
- "stackTraceLabel": "Stack trace:",
- "fallbackError": "{{error}}"
- },
- "footer": {
- "text": "Powered by <0>▲ Vercel0> | Meshtastic® is a registered trademark of Meshtastic LLC. | <1>Legal Information1>",
- "commitSha": "Commit SHA: {{sha}}"
- }
+ "navigation": {
+ "title": "Navigation",
+ "messages": "メッセージ",
+ "map": "地図",
+ "settings": "設定",
+ "channels": "チャンネル",
+ "radioConfig": "Radio Config",
+ "deviceConfig": "デバイスの設定",
+ "moduleConfig": "Module Config",
+ "nodes": "ノード"
+ },
+ "app": {
+ "title": "Meshtastic",
+ "logo": "Meshtastic Logo"
+ },
+ "sidebar": {
+ "collapseToggle": {
+ "button": {
+ "open": "Open sidebar",
+ "close": "Close sidebar"
+ }
+ },
+ "deviceInfo": {
+ "volts": "{{voltage}} volts",
+ "firmware": {
+ "title": "ファームウェア",
+ "version": "v{{version}}",
+ "buildDate": "Build date: {{date}}"
+ }
+ }
+ },
+ "batteryStatus": {
+ "charging": "{{level}}% charging",
+ "pluggedIn": "Plugged in",
+ "title": "バッテリー"
+ },
+ "search": {
+ "nodes": "Search nodes...",
+ "channels": "Search channels...",
+ "commandPalette": "Search commands..."
+ },
+ "toast": {
+ "positionRequestSent": {
+ "title": "Position request sent."
+ },
+ "requestingPosition": {
+ "title": "Requesting position, please wait..."
+ },
+ "sendingTraceroute": {
+ "title": "Sending Traceroute, please wait..."
+ },
+ "tracerouteSent": {
+ "title": "Traceroute sent."
+ },
+ "savedChannel": {
+ "title": "Saved Channel: {{channelName}}"
+ },
+ "messages": {
+ "pkiEncryption": {
+ "title": "Chat is using PKI encryption."
+ },
+ "pskEncryption": {
+ "title": "Chat is using PSK encryption."
+ }
+ },
+ "configSaveError": {
+ "title": "Error Saving Config",
+ "description": "An error occurred while saving the configuration."
+ },
+ "validationError": {
+ "title": "Config Errors Exist",
+ "description": "Please fix the configuration errors before saving."
+ },
+ "saveSuccess": {
+ "title": "Saving Config",
+ "description": "The configuration change {{case}} has been saved."
+ },
+ "saveAllSuccess": {
+ "title": "Saved",
+ "description": "All configuration changes have been saved."
+ },
+ "favoriteNode": {
+ "title": "{{action}} {{nodeName}} {{direction}} favorites.",
+ "action": {
+ "added": "Added",
+ "removed": "Removed",
+ "to": "to",
+ "from": "from"
+ }
+ },
+ "ignoreNode": {
+ "title": "{{action}} {{nodeName}} {{direction}} ignore list",
+ "action": {
+ "added": "Added",
+ "removed": "Removed",
+ "to": "to",
+ "from": "from"
+ }
+ }
+ },
+ "notifications": {
+ "copied": {
+ "label": "Copied!"
+ },
+ "copyToClipboard": {
+ "label": "Copy to clipboard"
+ },
+ "hidePassword": {
+ "label": "パスワードを非表示"
+ },
+ "showPassword": {
+ "label": "パスワードを表示"
+ },
+ "deliveryStatus": {
+ "delivered": "Delivered",
+ "failed": "Delivery Failed",
+ "waiting": "Waiting",
+ "unknown": "Unknown"
+ }
+ },
+ "general": {
+ "label": "General"
+ },
+ "hardware": {
+ "label": "ハードウェア"
+ },
+ "metrics": {
+ "label": "Metrics"
+ },
+ "role": {
+ "label": "役割"
+ },
+ "filter": {
+ "label": "絞り込み"
+ },
+ "advanced": {
+ "label": "Advanced"
+ },
+ "clearInput": {
+ "label": "Clear input"
+ },
+ "resetFilters": {
+ "label": "Reset Filters"
+ },
+ "nodeName": {
+ "label": "Node name/number",
+ "placeholder": "Meshtastic 1234"
+ },
+ "airtimeUtilization": {
+ "label": "Airtime Utilization (%)",
+ "short": "Airtime Util. (%)"
+ },
+ "batteryLevel": {
+ "label": "Battery level (%)",
+ "labelText": "Battery level (%): {{value}}"
+ },
+ "batteryVoltage": {
+ "label": "Battery voltage (V)",
+ "title": "電圧"
+ },
+ "channelUtilization": {
+ "label": "Channel Utilization (%)",
+ "short": "Channel Util. (%)"
+ },
+ "hops": {
+ "direct": "直接",
+ "label": "Number of hops",
+ "text": "Number of hops: {{value}}"
+ },
+ "lastHeard": {
+ "label": "最後の通信",
+ "labelText": "Last heard: {{value}}",
+ "nowLabel": "Now"
+ },
+ "snr": {
+ "label": "SNR (db)"
+ },
+ "favorites": {
+ "label": "Favorites"
+ },
+ "hide": {
+ "label": "Hide"
+ },
+ "showOnly": {
+ "label": "Show Only"
+ },
+ "viaMqtt": {
+ "label": "Connected via MQTT"
+ },
+ "hopsUnknown": {
+ "label": "Unknown number of hops"
+ },
+ "showUnheard": {
+ "label": "Never heard"
+ },
+ "language": {
+ "label": "言語設定",
+ "changeLanguage": "Change Language"
+ },
+ "theme": {
+ "dark": "ダーク",
+ "light": "ライト",
+ "system": "Automatic",
+ "changeTheme": "Change Color Scheme"
+ },
+ "errorPage": {
+ "title": "This is a little embarrassing...",
+ "description1": "We are really sorry but an error occurred in the web client that caused it to crash.
This is not supposed to happen, and we are working hard to fix it.",
+ "description2": "The best way to prevent this from happening again to you or anyone else is to report the issue to us.",
+ "reportInstructions": "Please include the following information in your report:",
+ "reportSteps": {
+ "step1": "What you were doing when the error occurred",
+ "step2": "What you expected to happen",
+ "step3": "What actually happened",
+ "step4": "Any other relevant information"
+ },
+ "reportLink": "You can report the issue to our <0>GitHub0>",
+ "dashboardLink": "Return to the <0>dashboard0>",
+ "detailsSummary": "Error Details",
+ "errorMessageLabel": "Error message:",
+ "stackTraceLabel": "Stack trace:",
+ "fallbackError": "{{error}}"
+ },
+ "footer": {
+ "text": "Powered by <0>▲ Vercel0> | Meshtastic® is a registered trademark of Meshtastic LLC. | <1>Legal Information1>",
+ "commitSha": "Commit SHA: {{sha}}"
+ }
}
diff --git a/packages/web/public/i18n/locales/ko-KR/channels.json b/packages/web/public/i18n/locales/ko-KR/channels.json
index cbb0a1ab..45cabb52 100644
--- a/packages/web/public/i18n/locales/ko-KR/channels.json
+++ b/packages/web/public/i18n/locales/ko-KR/channels.json
@@ -1,69 +1,71 @@
{
- "page": {
- "sectionLabel": "채널",
- "channelName": "채널 {{channelName}}",
- "broadcastLabel": "주 채널",
- "channelIndex": "Ch {{index}}"
- },
- "validation": {
- "pskInvalid": "유효한 {{bits}} bit PSK를 입력해 주세요."
- },
- "settings": {
- "label": "채널 설정",
- "description": "암호화, MQTT 및 기타 설정"
- },
- "role": {
- "label": "역할",
- "description": "장치 텔레메트리 데이터는 주 채널을 통해 전송됩니다. 주 채널은 하나만 허용됩니다",
- "options": {
- "primary": "주 채널",
- "disabled": "비활성화",
- "secondary": "보조 채널"
- }
- },
- "psk": {
- "label": "사전 공유 키",
- "description": "지원되는 PSK 길이: 256-bit, 128-bit, 8-bit, Empty (0-bit)",
- "generate": "생성"
- },
- "name": {
- "label": "이름",
- "description": "채널의 고유 이름 12 바이트 미만, 기본 값을 사용하려면 빈칸으로 두세요"
- },
- "uplinkEnabled": {
- "label": "업링크 활성화",
- "description": "로컬 메쉬에서 MQTT로 메시지를 전송합니다"
- },
- "downlinkEnabled": {
- "label": "다운링크 활성화",
- "description": "MQTT를 통해 로컬 메쉬로 메시지를 전송합니다"
- },
- "positionPrecision": {
- "label": "위치",
- "description": "채널에 공유할 위치 정확도. 비활성화 할 수 있습니다.",
- "options": {
- "none": "위치를 공유하지 않습니다",
- "precise": "정확한 위치",
- "metric_km23": "23 km 이내",
- "metric_km12": "12 km 이내",
- "metric_km5_8": "5.8 km 이내",
- "metric_km2_9": "2.9 km 이내",
- "metric_km1_5": "1.5 km 이내",
- "metric_m700": "700 m 이내",
- "metric_m350": "350 m 이내",
- "metric_m200": "200 m 이내",
- "metric_m90": "90 m 이내",
- "metric_m50": "50 m 이내",
- "imperial_mi15": "15 miles 이내",
- "imperial_mi7_3": "7.3 miles 이내",
- "imperial_mi3_6": "3.6 miles 이내",
- "imperial_mi1_8": "1.8 miles 이내",
- "imperial_mi0_9": "0.9 miles 이내",
- "imperial_mi0_5": "0.5 miles 이내",
- "imperial_mi0_2": "0.2 miles 이내",
- "imperial_ft600": "600 feet 이내",
- "imperial_ft300": "300 feet 이내",
- "imperial_ft150": "150 feet 이내"
- }
- }
+ "page": {
+ "sectionLabel": "채널",
+ "channelName": "채널 {{channelName}}",
+ "broadcastLabel": "주 채널",
+ "channelIndex": "Ch {{index}}",
+ "import": "불러오기",
+ "export": "내보내기"
+ },
+ "validation": {
+ "pskInvalid": "유효한 {{bits}} bit PSK를 입력해 주세요."
+ },
+ "settings": {
+ "label": "채널 설정",
+ "description": "암호화, MQTT 및 기타 설정"
+ },
+ "role": {
+ "label": "역할",
+ "description": "장치 텔레메트리 데이터는 주 채널을 통해 전송됩니다. 주 채널은 하나만 허용됩니다",
+ "options": {
+ "primary": "주 채널",
+ "disabled": "비활성화",
+ "secondary": "보조 채널"
+ }
+ },
+ "psk": {
+ "label": "사전 공유 키",
+ "description": "지원되는 PSK 길이: 256-bit, 128-bit, 8-bit, Empty (0-bit)",
+ "generate": "생성"
+ },
+ "name": {
+ "label": "이름",
+ "description": "채널의 고유 이름 12 바이트 미만, 기본 값을 사용하려면 빈칸으로 두세요"
+ },
+ "uplinkEnabled": {
+ "label": "업링크 활성화",
+ "description": "로컬 메쉬에서 MQTT로 메시지를 전송합니다"
+ },
+ "downlinkEnabled": {
+ "label": "다운링크 활성화",
+ "description": "MQTT를 통해 로컬 메쉬로 메시지를 전송합니다"
+ },
+ "positionPrecision": {
+ "label": "위치",
+ "description": "채널에 공유할 위치 정확도. 비활성화 할 수 있습니다.",
+ "options": {
+ "none": "위치를 공유하지 않습니다",
+ "precise": "정확한 위치",
+ "metric_km23": "23 km 이내",
+ "metric_km12": "12 km 이내",
+ "metric_km5_8": "5.8 km 이내",
+ "metric_km2_9": "2.9 km 이내",
+ "metric_km1_5": "1.5 km 이내",
+ "metric_m700": "700 m 이내",
+ "metric_m350": "350 m 이내",
+ "metric_m200": "200 m 이내",
+ "metric_m90": "90 m 이내",
+ "metric_m50": "50 m 이내",
+ "imperial_mi15": "15 miles 이내",
+ "imperial_mi7_3": "7.3 miles 이내",
+ "imperial_mi3_6": "3.6 miles 이내",
+ "imperial_mi1_8": "1.8 miles 이내",
+ "imperial_mi0_9": "0.9 miles 이내",
+ "imperial_mi0_5": "0.5 miles 이내",
+ "imperial_mi0_2": "0.2 miles 이내",
+ "imperial_ft600": "600 feet 이내",
+ "imperial_ft300": "300 feet 이내",
+ "imperial_ft150": "150 feet 이내"
+ }
+ }
}
diff --git a/packages/web/public/i18n/locales/ko-KR/commandPalette.json b/packages/web/public/i18n/locales/ko-KR/commandPalette.json
index b23b47d9..3d113e3d 100644
--- a/packages/web/public/i18n/locales/ko-KR/commandPalette.json
+++ b/packages/web/public/i18n/locales/ko-KR/commandPalette.json
@@ -15,7 +15,6 @@
"messages": "메시지기기",
"map": "지도",
"config": "설정",
- "channels": "채널",
"nodes": "노드"
}
},
@@ -45,7 +44,8 @@
"label": "디버그",
"command": {
"reconfigure": "재설정",
- "clearAllStoredMessages": "저장된 모든 메시지 삭제"
+ "clearAllStoredMessages": "저장된 모든 메시지 삭제",
+ "clearAllStores": "Clear All Local Storage"
}
}
}
diff --git a/packages/web/public/i18n/locales/ko-KR/common.json b/packages/web/public/i18n/locales/ko-KR/common.json
index 3febcacf..15fa4fac 100644
--- a/packages/web/public/i18n/locales/ko-KR/common.json
+++ b/packages/web/public/i18n/locales/ko-KR/common.json
@@ -1,142 +1,157 @@
{
- "button": {
- "apply": "적용",
- "backupKey": "백업 키",
- "cancel": "취소",
- "clearMessages": "메시지 삭제",
- "close": "닫기",
- "confirm": "확인",
- "delete": "삭제",
- "dismiss": "취소",
- "download": "다운로드",
- "export": "내보내기",
- "generate": "생성",
- "regenerate": "재생성",
- "import": "불러오기",
- "message": "메시지",
- "now": "지금",
- "ok": "확인",
- "print": "인쇄",
- "remove": "지우기",
- "requestNewKeys": "새로운 키 요청",
- "requestPosition": "위치 요청",
- "reset": "초기화",
- "save": "저장",
- "scanQr": " QR코드 스캔",
- "traceRoute": "추적 루트",
- "submit": "제출"
- },
- "app": {
- "title": "Meshtastic",
- "fullTitle": "Meshtastic 웹 클라이언트"
- },
- "loading": "로딩 중...",
- "unit": {
- "cps": "CPS",
- "dbm": "dBm",
- "hertz": "Hz",
- "hop": {
- "one": "Hop",
- "plural": "Hops"
- },
- "hopsAway": {
- "one": "{{count}} hop 떨어짐",
- "plural": "{{count}} hops 떨어짐",
- "unknown": "알 수 없는 hops 떨어짐"
- },
- "megahertz": "MHz",
- "raw": "raw",
- "meter": {
- "one": "미터",
- "plural": "미터",
- "suffix": "m"
- },
- "minute": {
- "one": "분",
- "plural": "분"
- },
- "hour": {
- "one": "시",
- "plural": "시"
- },
- "millisecond": {
- "one": "밀리초",
- "plural": "밀리초",
- "suffix": "ms"
- },
- "second": {
- "one": "초",
- "plural": "초"
- },
- "day": {
- "one": "일",
- "plural": "일"
- },
- "month": {
- "one": "월",
- "plural": "달"
- },
- "year": {
- "one": "년",
- "plural": "년"
- },
- "snr": "SNR",
- "volt": {
- "one": "볼트",
- "plural": "볼트",
- "suffix": "V"
- },
- "record": {
- "one": "레코드",
- "plural": "레코드"
- }
- },
- "security": {
- "0bit": "Empty",
- "8bit": "8 bit",
- "128bit": "128 bit",
- "256bit": "256 bit"
- },
- "unknown": {
- "longName": "알 수 없는",
- "shortName": "UNK",
- "notAvailable": "N/A",
- "num": "??"
- },
- "nodeUnknownPrefix": "!",
- "unset": "UNSET",
- "fallbackName": "Meshtastic {{last4}}",
- "node": "노드",
- "formValidation": {
- "unsavedChanges": "변경 내용이 저장되지 않았습니다",
- "tooBig": {
- "string": "너무 깁니다. {{maximum}} 문자 이하",
- "number": "너무 큽니다. {{maximum}} 이하",
- "bytes": "너무 큽니다. {{params.maximum}} 바이트 이하"
- },
- "tooSmall": {
- "string": "너무 짧습니다. {{minimum}} 이상",
- "number": "너무 작습니다. {{minimum}} 이상"
- },
- "invalidFormat": {
- "ipv4": "잘못된 형식입니다. IPv4 주소",
- "key": "잘못된 형식입니다. Base64로 인코딩된 사전 공유키 (PSK)"
- },
- "invalidType": {
- "number": "잘못된 타입입니다. 숫자"
- },
- "pskLength": {
- "0bit": "키는 비어있어야 합니다.",
- "8bit": "8 bit 사전공유키 (PSK) 가 필요합니다.",
- "128bit": "128 bit 사전공유키 (PSK) 가 필요합니다.",
- "256bit": "256 bit 사전공유키 (PSK) 가 필요합니다."
- },
- "required": {
- "generic": "필수 입력 사항입니다.",
- "managed": "노드 관리를 위해 최소 한 개의 관리자 키가 필요합니다.",
- "key": "키가 필요합니다."
- }
- },
- "yes": "Yes",
- "no": "No"
+ "button": {
+ "apply": "적용",
+ "backupKey": "백업 키",
+ "cancel": "취소",
+ "clearMessages": "메시지 삭제",
+ "close": "닫기",
+ "confirm": "확인",
+ "delete": "삭제",
+ "dismiss": "취소",
+ "download": "다운로드",
+ "export": "내보내기",
+ "generate": "생성",
+ "regenerate": "재생성",
+ "import": "불러오기",
+ "message": "메시지",
+ "now": "지금",
+ "ok": "확인",
+ "print": "인쇄",
+ "remove": "지우기",
+ "requestNewKeys": "새로운 키 요청",
+ "requestPosition": "위치 요청",
+ "reset": "초기화",
+ "save": "저장",
+ "scanQr": " QR코드 스캔",
+ "traceRoute": "추적 루트",
+ "submit": "제출"
+ },
+ "app": {
+ "title": "Meshtastic",
+ "fullTitle": "Meshtastic 웹 클라이언트"
+ },
+ "loading": "로딩 중...",
+ "unit": {
+ "cps": "CPS",
+ "dbm": "dBm",
+ "hertz": "Hz",
+ "hop": {
+ "one": "Hop",
+ "plural": "Hops"
+ },
+ "hopsAway": {
+ "one": "{{count}} hop 떨어짐",
+ "plural": "{{count}} hops 떨어짐",
+ "unknown": "알 수 없는 hops 떨어짐"
+ },
+ "megahertz": "MHz",
+ "raw": "raw",
+ "meter": {
+ "one": "미터",
+ "plural": "미터",
+ "suffix": "m"
+ },
+ "kilometer": {
+ "one": "Kilometer",
+ "plural": "Kilometers",
+ "suffix": "km"
+ },
+ "minute": {
+ "one": "분",
+ "plural": "분"
+ },
+ "hour": {
+ "one": "시",
+ "plural": "시"
+ },
+ "millisecond": {
+ "one": "밀리초",
+ "plural": "밀리초",
+ "suffix": "ms"
+ },
+ "second": {
+ "one": "초",
+ "plural": "초"
+ },
+ "day": {
+ "one": "일",
+ "plural": "일",
+ "today": "Today",
+ "yesterday": "Yesterday"
+ },
+ "month": {
+ "one": "월",
+ "plural": "달"
+ },
+ "year": {
+ "one": "년",
+ "plural": "년"
+ },
+ "snr": "SNR",
+ "volt": {
+ "one": "볼트",
+ "plural": "볼트",
+ "suffix": "V"
+ },
+ "record": {
+ "one": "레코드",
+ "plural": "레코드"
+ },
+ "degree": {
+ "one": "Degree",
+ "plural": "Degrees",
+ "suffix": "°"
+ }
+ },
+ "security": {
+ "0bit": "Empty",
+ "8bit": "8 bit",
+ "128bit": "128 bit",
+ "256bit": "256 bit"
+ },
+ "unknown": {
+ "longName": "알 수 없는",
+ "shortName": "UNK",
+ "notAvailable": "N/A",
+ "num": "??"
+ },
+ "nodeUnknownPrefix": "!",
+ "unset": "UNSET",
+ "fallbackName": "Meshtastic {{last4}}",
+ "node": "노드",
+ "formValidation": {
+ "unsavedChanges": "변경 내용이 저장되지 않았습니다",
+ "tooBig": {
+ "string": "너무 깁니다. {{maximum}} 문자 이하",
+ "number": "너무 큽니다. {{maximum}} 이하",
+ "bytes": "너무 큽니다. {{params.maximum}} 바이트 이하"
+ },
+ "tooSmall": {
+ "string": "너무 짧습니다. {{minimum}} 이상",
+ "number": "너무 작습니다. {{minimum}} 이상"
+ },
+ "invalidFormat": {
+ "ipv4": "잘못된 형식입니다. IPv4 주소",
+ "key": "잘못된 형식입니다. Base64로 인코딩된 사전 공유키 (PSK)"
+ },
+ "invalidType": {
+ "number": "잘못된 타입입니다. 숫자"
+ },
+ "pskLength": {
+ "0bit": "키는 비어있어야 합니다.",
+ "8bit": "8 bit 사전공유키 (PSK) 가 필요합니다.",
+ "128bit": "128 bit 사전공유키 (PSK) 가 필요합니다.",
+ "256bit": "256 bit 사전공유키 (PSK) 가 필요합니다."
+ },
+ "required": {
+ "generic": "필수 입력 사항입니다.",
+ "managed": "노드 관리를 위해 최소 한 개의 관리자 키가 필요합니다.",
+ "key": "키가 필요합니다."
+ },
+ "invalidOverrideFreq": {
+ "number": "Invalid format, expected a value in the range 410-930 MHz or 0 (use default)."
+ }
+ },
+ "yes": "Yes",
+ "no": "No"
}
diff --git a/packages/web/public/i18n/locales/ko-KR/config.json b/packages/web/public/i18n/locales/ko-KR/config.json
new file mode 100644
index 00000000..f5b0e060
--- /dev/null
+++ b/packages/web/public/i18n/locales/ko-KR/config.json
@@ -0,0 +1,458 @@
+{
+ "page": {
+ "title": "설정",
+ "tabUser": "사용자",
+ "tabChannels": "채널",
+ "tabBluetooth": "블루투스",
+ "tabDevice": "장치",
+ "tabDisplay": "화면",
+ "tabLora": "LoRa",
+ "tabNetwork": "네트워크",
+ "tabPosition": "위치",
+ "tabPower": "전원",
+ "tabSecurity": "보안"
+ },
+ "sidebar": {
+ "label": "설정"
+ },
+ "device": {
+ "title": "장치 설정",
+ "description": "장치 설정",
+ "buttonPin": {
+ "description": "버튼 핀 오버라이드",
+ "label": "버튼 핀"
+ },
+ "buzzerPin": {
+ "description": "부저 핀 오버라이드",
+ "label": "부저 핀"
+ },
+ "disableTripleClick": {
+ "description": "세 번 클릭 끄기",
+ "label": "세 번 클릭 끄기"
+ },
+ "doubleTapAsButtonPress": {
+ "description": "더블 탭하여 버튼 누름",
+ "label": "더블 탭하여 버튼 누름"
+ },
+ "ledHeartbeatDisabled": {
+ "description": "기본 깜빡이는 LED를 비활성화",
+ "label": "LED 깜빡임 비활성화"
+ },
+ "nodeInfoBroadcastInterval": {
+ "description": "노드 정보의 발송 주기를 설정",
+ "label": "노드 정보 발송 주기"
+ },
+ "posixTimezone": {
+ "description": "장치의 Posix Timezone String 입력",
+ "label": "POSIX 시간대"
+ },
+ "rebroadcastMode": {
+ "description": "중계를 처리하는 방법 설정",
+ "label": "중계 모드"
+ },
+ "role": {
+ "description": "해당 장치가 메쉬에서 수행하는 역할을 설정",
+ "label": "역할"
+ }
+ },
+ "bluetooth": {
+ "title": "블루투스 설정",
+ "description": "블루투스 설정",
+ "note": "참고: 일부 장치(ESP32)는 블루투스와 와이파이를 동시에 사용할 수 없습니다.",
+ "enabled": {
+ "description": "블루투스를 켜거나 끕니다.",
+ "label": "활성화"
+ },
+ "pairingMode": {
+ "description": "핀 선택",
+ "label": "페어링 모드"
+ },
+ "pin": {
+ "description": "페어링에 사용할 핀",
+ "label": "핀"
+ }
+ },
+ "display": {
+ "description": "장치의 디스플레이 설정",
+ "title": "디스플레이 설정",
+ "headingBold": {
+ "description": "상태표시줄 볼드체 적용하기",
+ "label": "상태표시줄 볼드체"
+ },
+ "carouselDelay": {
+ "description": "화면 전환 사이클 시간을 입력",
+ "label": "전환 시간"
+ },
+ "compassNorthTop": {
+ "description": "나침반 상단을 북쪽으로 고정",
+ "label": "나침반 북쪽 고정"
+ },
+ "displayMode": {
+ "description": "스크린 레이아웃 변형",
+ "label": "디스플레이 모드"
+ },
+ "displayUnits": {
+ "description": "단위 표시 형식",
+ "label": "단위 표시"
+ },
+ "flipScreen": {
+ "description": "화면 180도 뒤집기",
+ "label": "화면 뒤집기"
+ },
+ "gpsDisplayUnits": {
+ "description": "좌표 표시 형식",
+ "label": "GPS 표시 단위"
+ },
+ "oledType": {
+ "description": "장치에 부착된 OLED 화면의 유형",
+ "label": "OLED 타입"
+ },
+ "screenTimeout": {
+ "description": "디스플레이가 꺼지기까지 걸리는 시간",
+ "label": "화면 끄기 시간"
+ },
+ "twelveHourClock": {
+ "description": "12시간제 보기",
+ "label": "12시간제"
+ },
+ "wakeOnTapOrMotion": {
+ "description": "탭하거나 모션으로 깨우기",
+ "label": "탭하거나 모션으로 깨우기"
+ }
+ },
+ "lora": {
+ "title": "Mesh 설정",
+ "description": "LoRa mesh 설정",
+ "bandwidth": {
+ "description": "채널 대역폭 MHz",
+ "label": "대역폭"
+ },
+ "boostedRxGain": {
+ "description": "수신 부스트 gain",
+ "label": "수신 부스트 Gain"
+ },
+ "codingRate": {
+ "description": "Coding rate의 분모",
+ "label": "Coding rate"
+ },
+ "frequencyOffset": {
+ "description": "크리스탈 교정 오차를 보정하기 위한 주파수 오프셋",
+ "label": "주파수 오프셋"
+ },
+ "frequencySlot": {
+ "description": "LoRa 주파수 채널 번호",
+ "label": "주파수 슬롯"
+ },
+ "hopLimit": {
+ "description": "최고 hops 수",
+ "label": "Hop 제한"
+ },
+ "ignoreMqtt": {
+ "description": "MQTT로 부터 mesh로 메시지를를 전달하지 않습니다",
+ "label": "MQTT로 부터 수신 무시"
+ },
+ "modemPreset": {
+ "description": "모뎀 프리셋 사용",
+ "label": "모뎀 프리셋"
+ },
+ "okToMqtt": {
+ "description": "이 설정을 true로 하면 사용자가 패킷을 MQTT에 업로드하는 것을 허용하고, false 이면 원격 노드들은 패킷을 MQTT로 전달하지 않도록 요청됩니다",
+ "label": "MQTT로 전송 허용"
+ },
+ "overrideDutyCycle": {
+ "description": "Duty Cycle 무시",
+ "label": "Duty Cycle 무시"
+ },
+ "overrideFrequency": {
+ "description": "해당 주파수 강제 설정",
+ "label": "주파수 오버라이드"
+ },
+ "region": {
+ "description": "당신의 노드의 지역을 설정하세요",
+ "label": "지역"
+ },
+ "spreadingFactor": {
+ "description": "Indicates the number of chirps per symbol",
+ "label": "Spread factor"
+ },
+ "transmitEnabled": {
+ "description": "LoRa 전송(TX)을 활성화/비활성화합니다",
+ "label": "전송 활성화"
+ },
+ "transmitPower": {
+ "description": "최대 전송 출력",
+ "label": "전송 출력"
+ },
+ "usePreset": {
+ "description": "사전 정의된 모뎀프리셋을 사용하세요",
+ "label": "프리셋 사용"
+ },
+ "meshSettings": {
+ "description": "LoRa mesh 설정",
+ "label": "Mesh 설정"
+ },
+ "waveformSettings": {
+ "description": "LoRa 파형 설정",
+ "label": "파형 설정"
+ },
+ "radioSettings": {
+ "label": "무선 설정",
+ "description": "LoRa 무선 설정"
+ }
+ },
+ "network": {
+ "title": "WiFi 설정",
+ "description": "WiFi 설정",
+ "note": "참고: 일부 장치(ESP32)는 블루투스와 와이파이를 동시에 사용할 수 없습니다.",
+ "addressMode": {
+ "description": "주소 할당 선택",
+ "label": "주소 모드"
+ },
+ "dns": {
+ "description": "DNS 서버",
+ "label": "DNS"
+ },
+ "ethernetEnabled": {
+ "description": "이더넷 포트 활성화하거나 비활성화",
+ "label": "활성화"
+ },
+ "gateway": {
+ "description": "기본 게이트웨이",
+ "label": "게이트웨이"
+ },
+ "ip": {
+ "description": "IP 주소",
+ "label": "IP"
+ },
+ "psk": {
+ "description": "네트워크 암호",
+ "label": "PSK"
+ },
+ "ssid": {
+ "description": "네트워크 이름",
+ "label": "SSID"
+ },
+ "subnet": {
+ "description": "서브넷 마스크",
+ "label": "서브넷"
+ },
+ "wifiEnabled": {
+ "description": "WiFi를 활성화하거나 비활성화",
+ "label": "활성화"
+ },
+ "meshViaUdp": {
+ "label": "UDP를 통한 Mesh"
+ },
+ "ntpServer": {
+ "label": "NTP 서버"
+ },
+ "rsyslogServer": {
+ "label": "Rsyslog 서버"
+ },
+ "ethernetConfigSettings": {
+ "description": "이더넷 포트 설정",
+ "label": "이더넷 설정"
+ },
+ "ipConfigSettings": {
+ "description": "IP 설정",
+ "label": "IP 설정"
+ },
+ "ntpConfigSettings": {
+ "description": "NTP 설정",
+ "label": "NTP 설정"
+ },
+ "rsyslogConfigSettings": {
+ "description": "Rsyslog 설정",
+ "label": "Rsyslog 설정"
+ },
+ "udpConfigSettings": {
+ "description": "UDP over Mesh 설정",
+ "label": "UDP 설정"
+ }
+ },
+ "position": {
+ "title": "위치 설정",
+ "description": "위치 설정",
+ "broadcastInterval": {
+ "description": "메쉬를 통해 당신의 위치 정보가 전송되는 빈도",
+ "label": "전송 간격"
+ },
+ "enablePin": {
+ "description": "GPS module enable pin override",
+ "label": "Enable Pin"
+ },
+ "fixedPosition": {
+ "description": "Don't report GPS position, but a manually-specified one",
+ "label": "Fixed Position"
+ },
+ "gpsMode": {
+ "description": "Configure whether device GPS is Enabled, Disabled, or Not Present",
+ "label": "GPS Mode"
+ },
+ "gpsUpdateInterval": {
+ "description": "How often a GPS fix should be acquired",
+ "label": "GPS Update Interval"
+ },
+ "positionFlags": {
+ "description": "Optional fields to include when assembling position messages. The more fields are selected, the larger the message will be leading to longer airtime usage and a higher risk of packet loss.",
+ "label": "Position Flags"
+ },
+ "receivePin": {
+ "description": "GPS module RX pin override",
+ "label": "Receive Pin"
+ },
+ "smartPositionEnabled": {
+ "description": "Only send position when there has been a meaningful change in location",
+ "label": "Enable Smart Position"
+ },
+ "smartPositionMinDistance": {
+ "description": "Minimum distance (in meters) that must be traveled before a position update is sent",
+ "label": "Smart Position Minimum Distance"
+ },
+ "smartPositionMinInterval": {
+ "description": "Minimum interval (in seconds) that must pass before a position update is sent",
+ "label": "Smart Position Minimum Interval"
+ },
+ "transmitPin": {
+ "description": "GPS module TX pin override",
+ "label": "Transmit Pin"
+ },
+ "intervalsSettings": {
+ "description": "How often to send position updates",
+ "label": "Intervals"
+ },
+ "flags": {
+ "placeholder": "Select position flags...",
+ "altitude": "Altitude",
+ "altitudeGeoidalSeparation": "Altitude Geoidal Separation",
+ "altitudeMsl": "Altitude is Mean Sea Level",
+ "dop": "Dilution of precision (DOP) PDOP used by default",
+ "hdopVdop": "If DOP is set, use HDOP / VDOP values instead of PDOP",
+ "numSatellites": "Number of satellites",
+ "sequenceNumber": "Sequence number",
+ "timestamp": "타임스탬프",
+ "unset": "해제",
+ "vehicleHeading": "Vehicle heading",
+ "vehicleSpeed": "Vehicle speed"
+ }
+ },
+ "power": {
+ "adcMultiplierOverride": {
+ "description": "Used for tweaking battery voltage reading",
+ "label": "ADC Multiplier Override ratio"
+ },
+ "ina219Address": {
+ "description": "Address of the INA219 battery monitor",
+ "label": "INA219 Address"
+ },
+ "lightSleepDuration": {
+ "description": "How long the device will be in light sleep for",
+ "label": "Light Sleep Duration"
+ },
+ "minimumWakeTime": {
+ "description": "Minimum amount of time the device will stay awake for after receiving a packet",
+ "label": "Minimum Wake Time"
+ },
+ "noConnectionBluetoothDisabled": {
+ "description": "If the device does not receive a Bluetooth connection, the BLE radio will be disabled after this long",
+ "label": "No Connection Bluetooth Disabled"
+ },
+ "powerSavingEnabled": {
+ "description": "Select if powered from a low-current source (i.e. solar), to minimize power consumption as much as possible.",
+ "label": "저전력 모드 설정"
+ },
+ "shutdownOnBatteryDelay": {
+ "description": "Automatically shutdown node after this long when on battery, 0 for indefinite",
+ "label": "Shutdown on battery delay"
+ },
+ "superDeepSleepDuration": {
+ "description": "How long the device will be in super deep sleep for",
+ "label": "Super Deep Sleep Duration"
+ },
+ "powerConfigSettings": {
+ "description": "Settings for the power module",
+ "label": "전원 설정"
+ },
+ "sleepSettings": {
+ "description": "Sleep settings for the power module",
+ "label": "Sleep Settings"
+ }
+ },
+ "security": {
+ "description": "Settings for the Security configuration",
+ "title": "Security Settings",
+ "button_backupKey": "백업 키",
+ "adminChannelEnabled": {
+ "description": "Allow incoming device control over the insecure legacy admin channel",
+ "label": "Allow Legacy Admin"
+ },
+ "enableDebugLogApi": {
+ "description": "Output live debug logging over serial, view and export position-redacted device logs over Bluetooth",
+ "label": "Enable Debug Log API"
+ },
+ "managed": {
+ "description": "If enabled, device configuration options are only able to be changed remotely by a Remote Admin node via admin messages. Do not enable this option unless at least one suitable Remote Admin node has been setup, and the public key is stored in one of the fields above.",
+ "label": "Managed"
+ },
+ "privateKey": {
+ "description": "Used to create a shared key with a remote device",
+ "label": "개인 키"
+ },
+ "publicKey": {
+ "description": "Sent out to other nodes on the mesh to allow them to compute a shared secret key",
+ "label": "공개 키"
+ },
+ "primaryAdminKey": {
+ "description": "The primary public key authorized to send admin messages to this node",
+ "label": "Primary Admin Key"
+ },
+ "secondaryAdminKey": {
+ "description": "The secondary public key authorized to send admin messages to this node",
+ "label": "Secondary Admin Key"
+ },
+ "serialOutputEnabled": {
+ "description": "Serial Console over the Stream API",
+ "label": "Serial Output Enabled"
+ },
+ "tertiaryAdminKey": {
+ "description": "The tertiary public key authorized to send admin messages to this node",
+ "label": "Tertiary Admin Key"
+ },
+ "adminSettings": {
+ "description": "Settings for Admin",
+ "label": "Admin Settings"
+ },
+ "loggingSettings": {
+ "description": "Settings for Logging",
+ "label": "Logging Settings"
+ }
+ },
+ "user": {
+ "title": "User Settings",
+ "description": "Configure your device name and identity settings",
+ "longName": {
+ "label": "긴 이름",
+ "description": "Your full display name (1-40 characters)",
+ "validation": {
+ "min": "Long name must be at least 1 character",
+ "max": "Long name must be at most 40 characters"
+ }
+ },
+ "shortName": {
+ "label": "짧은 이름",
+ "description": "Your abbreviated name (2-4 characters)",
+ "validation": {
+ "min": "Short name must be at least 2 characters",
+ "max": "Short name must be at most 4 characters"
+ }
+ },
+ "isUnmessageable": {
+ "label": "메시지 제한",
+ "description": "Used to identify unmonitored or infrastructure nodes so that messaging is not available to nodes that will never respond."
+ },
+ "isLicensed": {
+ "label": "아마추어무선 자격 보유 (HAM)",
+ "description": "Enable if you are a licensed amateur radio operator, enabling this option disables encryption and is not compatible with the default Meshtastic network."
+ }
+ }
+}
diff --git a/packages/web/public/i18n/locales/ko-KR/dashboard.json b/packages/web/public/i18n/locales/ko-KR/dashboard.json
index 150c2f7b..f4e6d8f7 100644
--- a/packages/web/public/i18n/locales/ko-KR/dashboard.json
+++ b/packages/web/public/i18n/locales/ko-KR/dashboard.json
@@ -1,12 +1,12 @@
{
- "dashboard": {
- "title": "연결된 장치",
- "description": "연결된 Meshtastic 장치를 관리하세요.",
- "connectionType_ble": "BLE",
- "connectionType_serial": "시리얼",
- "connectionType_network": "네트워크",
- "noDevicesTitle": "연결된 장치 없음",
- "noDevicesDescription": "새로운 장치를 연결하여 시작하세요.",
- "button_newConnection": "새 연결"
- }
+ "dashboard": {
+ "title": "연결된 장치",
+ "description": "연결된 Meshtastic 장치를 관리하세요.",
+ "connectionType_ble": "BLE",
+ "connectionType_serial": "시리얼",
+ "connectionType_network": "네트워크",
+ "noDevicesTitle": "연결된 장치 없음",
+ "noDevicesDescription": "새로운 장치를 연결하여 시작하세요.",
+ "button_newConnection": "새 연결"
+ }
}
diff --git a/packages/web/public/i18n/locales/ko-KR/dialog.json b/packages/web/public/i18n/locales/ko-KR/dialog.json
index c8336156..a48f72cc 100644
--- a/packages/web/public/i18n/locales/ko-KR/dialog.json
+++ b/packages/web/public/i18n/locales/ko-KR/dialog.json
@@ -1,193 +1,221 @@
{
- "deleteMessages": {
- "description": "이 작업은 모든 메시지 기록을 삭제합니다. 이 작업은 되돌릴 수 없습니다. 계속하시겠습니까?",
- "title": "모든 메시지 삭제"
- },
- "deviceName": {
- "description": "The Device will restart once the config is saved.",
- "longName": "긴 이름",
- "shortName": "짧은 이름",
- "title": "장치 이름 변경",
- "validation": {
- "longNameMax": "Long name must not be more than 40 characters",
- "shortNameMax": "Short name must not be more than 4 characters",
- "longNameMin": "Long name must have at least 1 character",
- "shortNameMin": "Short name must have at least 1 character"
- }
- },
- "import": {
- "description": "The current LoRa configuration will be overridden.",
- "error": {
- "invalidUrl": "Invalid Meshtastic URL"
- },
- "channelPrefix": "Channel: ",
- "channelSetUrl": "Channel Set/QR Code URL",
- "channels": "Channels:",
- "usePreset": "Use Preset?",
- "title": "Import Channel Set"
- },
- "locationResponse": {
- "title": "Location: {{identifier}}",
- "altitude": "Altitude: ",
- "coordinates": "Coordinates: ",
- "noCoordinates": "No Coordinates"
- },
- "pkiRegenerateDialog": {
- "title": "Regenerate Pre-Shared Key?",
- "description": "Are you sure you want to regenerate the pre-shared key?",
- "regenerate": "재생성"
- },
- "newDeviceDialog": {
- "title": "Connect New Device",
- "https": "https",
- "http": "http",
- "tabHttp": "HTTP",
- "tabBluetooth": "블루투스",
- "tabSerial": "시리얼",
- "useHttps": "Use HTTPS",
- "connecting": "Connecting...",
- "connect": "연결",
- "connectionFailedAlert": {
- "title": "Connection Failed",
- "descriptionPrefix": "Could not connect to the device. ",
- "httpsHint": "If using HTTPS, you may need to accept a self-signed certificate first. ",
- "openLinkPrefix": "Please open ",
- "openLinkSuffix": " in a new tab",
- "acceptTlsWarningSuffix": ", accept any TLS warnings if prompted, then try again",
- "learnMoreLink": "Learn more"
- },
- "httpConnection": {
- "label": "IP Address/Hostname",
- "placeholder": "000.000.000.000 / meshtastic.local"
- },
- "serialConnection": {
- "noDevicesPaired": "No devices paired yet.",
- "newDeviceButton": "New device",
- "deviceIdentifier": "# {{index}} - {{vendorId}} - {{productId}}"
- },
- "bluetoothConnection": {
- "noDevicesPaired": "No devices paired yet.",
- "newDeviceButton": "New device",
- "connectionFailed": "Connection failed",
- "deviceDisconnected": "Device disconnected",
- "unknownDevice": "Unknown Device",
- "errorLoadingDevices": "Error loading devices",
- "unknownErrorLoadingDevices": "Unknown error loading devices"
- },
- "validation": {
- "requiresWebBluetooth": "This connection type requires <0>Web Bluetooth0>. Please use a supported browser, like Chrome or Edge.",
- "requiresWebSerial": "This connection type requires <0>Web Serial0>. Please use a supported browser, like Chrome or Edge.",
- "requiresSecureContext": "This application requires a <0>secure context0>. Please connect using HTTPS or localhost.",
- "additionallyRequiresSecureContext": "Additionally, it requires a <0>secure context0>. Please connect using HTTPS or localhost."
- }
- },
- "nodeDetails": {
- "message": "메시지",
- "requestPosition": "위치 요청",
- "traceRoute": "추적 루트",
- "airTxUtilization": "Air TX utilization",
- "allRawMetrics": "All Raw Metrics:",
- "batteryLevel": "Battery level",
- "channelUtilization": "Channel utilization",
- "details": "Details:",
- "deviceMetrics": "Device Metrics:",
- "hardware": "Hardware: ",
- "lastHeard": "Last Heard: ",
- "nodeHexPrefix": "Node Hex: ",
- "nodeNumber": "Node Number: ",
- "position": "Position:",
- "role": "Role: ",
- "uptime": "Uptime: ",
- "voltage": "전압",
- "title": "Node Details for {{identifier}}",
- "ignoreNode": "Ignore node",
- "removeNode": "Remove node",
- "unignoreNode": "Unignore node",
- "security": "Security:",
- "publicKey": "Public Key: ",
- "messageable": "Messageable: ",
- "KeyManuallyVerifiedTrue": "Public Key has been manually verified",
- "KeyManuallyVerifiedFalse": "Public Key is not manually verified"
- },
- "pkiBackup": {
- "loseKeysWarning": "If you lose your keys, you will need to reset your device.",
- "secureBackup": "Its important to backup your public and private keys and store your backup securely!",
- "footer": "=== END OF KEYS ===",
- "header": "=== MESHTASTIC KEYS FOR {{longName}} ({{shortName}}) ===",
- "privateKey": "Private Key:",
- "publicKey": "Public Key:",
- "fileName": "meshtastic_keys_{{longName}}_{{shortName}}.txt",
- "title": "Backup Keys"
- },
- "pkiBackupReminder": {
- "description": "We recommend backing up your key data regularly. Would you like to back up now?",
- "title": "Backup Reminder",
- "remindLaterPrefix": "Remind me in",
- "remindNever": "Never remind me",
- "backupNow": "Back up now"
- },
- "pkiRegenerate": {
- "description": "Are you sure you want to regenerate key pair?",
- "title": "Regenerate Key Pair"
- },
- "qr": {
- "addChannels": "Add Channels",
- "replaceChannels": "Replace Channels",
- "description": "The current LoRa configuration will also be shared.",
- "sharableUrl": "Sharable URL",
- "title": "Generate QR Code"
- },
- "reboot": {
- "title": "Reboot device",
- "description": "Reboot now or schedule a reboot of the connected node. Optionally, you can choose to reboot into OTA (Over-the-Air) mode.",
- "ota": "Reboot into OTA mode",
- "enterDelay": "Enter delay",
- "scheduled": "Reboot has been scheduled",
- "schedule": "Schedule reboot",
- "now": "Reboot now",
- "cancel": "Cancel scheduled reboot"
- },
- "refreshKeys": {
- "description": {
- "acceptNewKeys": "This will remove the node from device and request new keys.",
- "keyMismatchReasonSuffix": ". This is due to the remote node's current public key does not match the previously stored key for this node.",
- "unableToSendDmPrefix": "Your node is unable to send a direct message to node: "
- },
- "acceptNewKeys": "Accept New Keys",
- "title": "Keys Mismatch - {{identifier}}"
- },
- "removeNode": {
- "description": "Are you sure you want to remove this Node?",
- "title": "Remove Node?"
- },
- "shutdown": {
- "title": "종료 예약",
- "description": "Turn off the connected node after x minutes."
- },
- "traceRoute": {
- "routeToDestination": "Route to destination:",
- "routeBack": "Route back:"
- },
- "tracerouteResponse": {
- "title": "Traceroute: {{identifier}}"
- },
- "unsafeRoles": {
- "confirmUnderstanding": "Yes, I know what I'm doing",
- "conjunction": " and the blog post about ",
- "postamble": " and understand the implications of changing the role.",
- "preamble": "I have read the ",
- "choosingRightDeviceRole": "Choosing The Right Device Role",
- "deviceRoleDocumentation": "Device Role Documentation",
- "title": "확실합니까?"
- },
- "managedMode": {
- "confirmUnderstanding": "Yes, I know what I'm doing",
- "title": "확실합니까?",
- "description": "Enabling Managed Mode blocks client applications (including the web client) from writing configurations to a radio. Once enabled, radio configurations can only be changed through Remote Admin messages. This setting is not required for remote node administration."
- },
- "clientNotification": {
- "title": "클라이언트 알림",
- "TraceRoute can only be sent once every 30 seconds": "TraceRoute can only be sent once every 30 seconds",
- "Compromised keys were detected and regenerated.": "Compromised keys were detected and regenerated."
- }
+ "deleteMessages": {
+ "description": "이 작업은 모든 메시지 기록을 삭제합니다. 이 작업은 되돌릴 수 없습니다. 계속하시겠습니까?",
+ "title": "모든 메시지 삭제"
+ },
+ "deviceName": {
+ "description": "The Device will restart once the config is saved.",
+ "longName": "긴 이름",
+ "shortName": "짧은 이름",
+ "title": "장치 이름 변경",
+ "validation": {
+ "longNameMax": "Long name must not be more than 40 characters",
+ "shortNameMax": "Short name must not be more than 4 characters",
+ "longNameMin": "Long name must have at least 1 character",
+ "shortNameMin": "Short name must have at least 1 character"
+ }
+ },
+ "import": {
+ "description": "The current LoRa configuration will be overridden.",
+ "error": {
+ "invalidUrl": "Invalid Meshtastic URL"
+ },
+ "channelPrefix": "Channel: ",
+ "primary": "Primary ",
+ "doNotImport": "No not import",
+ "channelName": "이름",
+ "channelSlot": "슬롯",
+ "channelSetUrl": "Channel Set/QR Code URL",
+ "useLoraConfig": "Import LoRa Config",
+ "presetDescription": "The current LoRa Config will be replaced.",
+ "title": "Import Channel Set"
+ },
+ "locationResponse": {
+ "title": "Location: {{identifier}}",
+ "altitude": "Altitude: ",
+ "coordinates": "Coordinates: ",
+ "noCoordinates": "No Coordinates"
+ },
+ "pkiRegenerateDialog": {
+ "title": "Regenerate Pre-Shared Key?",
+ "description": "Are you sure you want to regenerate the pre-shared key?",
+ "regenerate": "재생성"
+ },
+ "newDeviceDialog": {
+ "title": "Connect New Device",
+ "https": "https",
+ "http": "http",
+ "tabHttp": "HTTP",
+ "tabBluetooth": "블루투스",
+ "tabSerial": "시리얼",
+ "useHttps": "Use HTTPS",
+ "connecting": "Connecting...",
+ "connect": "연결",
+ "connectionFailedAlert": {
+ "title": "Connection Failed",
+ "descriptionPrefix": "Could not connect to the device. ",
+ "httpsHint": "If using HTTPS, you may need to accept a self-signed certificate first. ",
+ "openLinkPrefix": "Please open ",
+ "openLinkSuffix": " in a new tab",
+ "acceptTlsWarningSuffix": ", accept any TLS warnings if prompted, then try again",
+ "learnMoreLink": "Learn more"
+ },
+ "httpConnection": {
+ "label": "IP Address/Hostname",
+ "placeholder": "000.000.000.000 / meshtastic.local"
+ },
+ "serialConnection": {
+ "noDevicesPaired": "No devices paired yet.",
+ "newDeviceButton": "New device",
+ "deviceIdentifier": "# {{index}} - {{vendorId}} - {{productId}}"
+ },
+ "bluetoothConnection": {
+ "noDevicesPaired": "No devices paired yet.",
+ "newDeviceButton": "New device",
+ "connectionFailed": "Connection failed",
+ "deviceDisconnected": "Device disconnected",
+ "unknownDevice": "Unknown Device",
+ "errorLoadingDevices": "Error loading devices",
+ "unknownErrorLoadingDevices": "Unknown error loading devices"
+ },
+ "validation": {
+ "requiresWebBluetooth": "This connection type requires <0>Web Bluetooth0>. Please use a supported browser, like Chrome or Edge.",
+ "requiresWebSerial": "This connection type requires <0>Web Serial0>. Please use a supported browser, like Chrome or Edge.",
+ "requiresSecureContext": "This application requires a <0>secure context0>. Please connect using HTTPS or localhost.",
+ "additionallyRequiresSecureContext": "Additionally, it requires a <0>secure context0>. Please connect using HTTPS or localhost."
+ }
+ },
+ "nodeDetails": {
+ "message": "메시지",
+ "requestPosition": "위치 요청",
+ "traceRoute": "추적 루트",
+ "airTxUtilization": "Air TX utilization",
+ "allRawMetrics": "All Raw Metrics:",
+ "batteryLevel": "Battery level",
+ "channelUtilization": "Channel utilization",
+ "details": "Details:",
+ "deviceMetrics": "Device Metrics:",
+ "hardware": "Hardware: ",
+ "lastHeard": "Last Heard: ",
+ "nodeHexPrefix": "Node Hex: ",
+ "nodeNumber": "Node Number: ",
+ "position": "Position:",
+ "role": "Role: ",
+ "uptime": "Uptime: ",
+ "voltage": "전압",
+ "title": "Node Details for {{identifier}}",
+ "ignoreNode": "Ignore node",
+ "removeNode": "Remove node",
+ "unignoreNode": "Unignore node",
+ "security": "Security:",
+ "publicKey": "Public Key: ",
+ "messageable": "Messageable: ",
+ "KeyManuallyVerifiedTrue": "Public Key has been manually verified",
+ "KeyManuallyVerifiedFalse": "Public Key is not manually verified"
+ },
+ "pkiBackup": {
+ "loseKeysWarning": "If you lose your keys, you will need to reset your device.",
+ "secureBackup": "Its important to backup your public and private keys and store your backup securely!",
+ "footer": "=== END OF KEYS ===",
+ "header": "=== MESHTASTIC KEYS FOR {{longName}} ({{shortName}}) ===",
+ "privateKey": "Private Key:",
+ "publicKey": "Public Key:",
+ "fileName": "meshtastic_keys_{{longName}}_{{shortName}}.txt",
+ "title": "Backup Keys"
+ },
+ "pkiBackupReminder": {
+ "description": "We recommend backing up your key data regularly. Would you like to back up now?",
+ "title": "Backup Reminder",
+ "remindLaterPrefix": "Remind me in",
+ "remindNever": "Never remind me",
+ "backupNow": "Back up now"
+ },
+ "pkiRegenerate": {
+ "description": "Are you sure you want to regenerate key pair?",
+ "title": "Regenerate Key Pair"
+ },
+ "qr": {
+ "addChannels": "Add Channels",
+ "replaceChannels": "Replace Channels",
+ "description": "The current LoRa configuration will also be shared.",
+ "sharableUrl": "Sharable URL",
+ "title": "Generate QR Code"
+ },
+ "reboot": {
+ "title": "Reboot device",
+ "description": "Reboot now or schedule a reboot of the connected node. Optionally, you can choose to reboot into OTA (Over-the-Air) mode.",
+ "ota": "Reboot into OTA mode",
+ "enterDelay": "Enter delay",
+ "scheduled": "Reboot has been scheduled",
+ "schedule": "Schedule reboot",
+ "now": "Reboot now",
+ "cancel": "Cancel scheduled reboot"
+ },
+ "refreshKeys": {
+ "description": {
+ "acceptNewKeys": "This will remove the node from device and request new keys.",
+ "keyMismatchReasonSuffix": ". This is due to the remote node's current public key does not match the previously stored key for this node.",
+ "unableToSendDmPrefix": "Your node is unable to send a direct message to node: "
+ },
+ "acceptNewKeys": "Accept New Keys",
+ "title": "Keys Mismatch - {{identifier}}"
+ },
+ "removeNode": {
+ "description": "Are you sure you want to remove this Node?",
+ "title": "Remove Node?"
+ },
+ "shutdown": {
+ "title": "종료 예약",
+ "description": "Turn off the connected node after x minutes."
+ },
+ "traceRoute": {
+ "routeToDestination": "Route to destination:",
+ "routeBack": "Route back:"
+ },
+ "tracerouteResponse": {
+ "title": "Traceroute: {{identifier}}"
+ },
+ "unsafeRoles": {
+ "confirmUnderstanding": "Yes, I know what I'm doing",
+ "conjunction": " and the blog post about ",
+ "postamble": " and understand the implications of changing the role.",
+ "preamble": "I have read the ",
+ "choosingRightDeviceRole": "Choosing The Right Device Role",
+ "deviceRoleDocumentation": "Device Role Documentation",
+ "title": "확실합니까?"
+ },
+ "managedMode": {
+ "confirmUnderstanding": "Yes, I know what I'm doing",
+ "title": "확실합니까?",
+ "description": "Enabling Managed Mode blocks client applications (including the web client) from writing configurations to a radio. Once enabled, radio configurations can only be changed through Remote Admin messages. This setting is not required for remote node administration."
+ },
+ "clientNotification": {
+ "title": "클라이언트 알림",
+ "TraceRoute can only be sent once every 30 seconds": "TraceRoute can only be sent once every 30 seconds",
+ "Compromised keys were detected and regenerated.": "Compromised keys were detected and regenerated."
+ },
+ "resetNodeDb": {
+ "title": "Reset Node Database",
+ "description": "This will clear all nodes from the connected device's node database and clear all message history in the client. This cannot be undone. Are you sure you want to continue?",
+ "confirm": "Reset Node Database",
+ "failedTitle": "There was an error resetting the Node DB. Please try again."
+ },
+ "clearAllStores": {
+ "title": "Clear All Local Storage",
+ "description": "This will clear all locally stored data, including message history and node databases for all previously connected devices. This will require you to reconnect to your node once complete and cannot be undone. Are you sure you want to continue?",
+ "confirm": "Clear all local storage",
+ "failedTitle": "There was an error clearing local storage. Please try again."
+ },
+ "factoryResetDevice": {
+ "title": "공장 초기화",
+ "description": "This will factory reset the connected device, erasing all configurations and data on the device as well as all nodes and messages saved in the client. This cannot be undone. Are you sure you want to continue?",
+ "confirm": "공장 초기화",
+ "failedTitle": "There was an error performing the factory reset. Please try again."
+ },
+ "factoryResetConfig": {
+ "title": "설정 초기",
+ "description": "This will factory reset the configuration on the connected device, erasing all configurations on the device. This cannot be undone. Are you sure you want to continue?",
+ "confirm": "설정 초기",
+ "failedTitle": "There was an error performing the factory reset. Please try again."
+ }
}
diff --git a/packages/web/public/i18n/locales/ko-KR/map.json b/packages/web/public/i18n/locales/ko-KR/map.json
new file mode 100644
index 00000000..7524d560
--- /dev/null
+++ b/packages/web/public/i18n/locales/ko-KR/map.json
@@ -0,0 +1,38 @@
+{
+ "maplibre": {
+ "GeolocateControl.FindMyLocation": "Find my location",
+ "NavigationControl.ZoomIn": "Zoom in",
+ "NavigationControl.ZoomOut": "Zoom out",
+ "CooperativeGesturesHandler.WindowsHelpText": "Use Ctrl + scroll to zoom the map",
+ "CooperativeGesturesHandler.MacHelpText": "Use ⌘ + scroll to zoom the map",
+ "CooperativeGesturesHandler.MobileHelpText": "Use two fingers to move the map"
+ },
+ "layerTool": {
+ "nodeMarkers": "Show nodes",
+ "directNeighbors": "Show direct connections",
+ "remoteNeighbors": "Show remote connections",
+ "positionPrecision": "Show position precision",
+ "traceroutes": "Show traceroutes",
+ "waypoints": "Show waypoints"
+ },
+ "mapMenu": {
+ "locateAria": "Locate my node",
+ "layersAria": "Change map style"
+ },
+ "waypointDetail": {
+ "edit": "편집",
+ "description": "Description:",
+ "createdBy": "Edited by:",
+ "createdDate": "Created:",
+ "updated": "Updated:",
+ "expires": "Expires:",
+ "distance": "Distance:",
+ "bearing": "Absolute bearing:",
+ "lockedTo": "Locked by:",
+ "latitude": "Latitude:",
+ "longitude": "Longitude:"
+ },
+ "myNode": {
+ "tooltip": "This device"
+ }
+}
diff --git a/packages/web/public/i18n/locales/ko-KR/messages.json b/packages/web/public/i18n/locales/ko-KR/messages.json
index 22c5a152..1d220b74 100644
--- a/packages/web/public/i18n/locales/ko-KR/messages.json
+++ b/packages/web/public/i18n/locales/ko-KR/messages.json
@@ -1,39 +1,39 @@
{
- "page": {
- "title": "메시지: {{chatName}}",
- "placeholder": "메시지 입력"
- },
- "emptyState": {
- "title": "채팅 선택",
- "text": "아직 메시지가 없습니다."
- },
- "selectChatPrompt": {
- "text": "채널 또는 노드를 선택하여 메시지 전송을 시작하세요."
- },
- "sendMessage": {
- "placeholder": "여기에 메시지를 입력하세요...",
- "sendButton": "보내기"
- },
- "actionsMenu": {
- "addReactionLabel": "반응 추가",
- "replyLabel": "답장"
- },
- "deliveryStatus": {
- "delivered": {
- "label": "메시지 전송",
- "displayText": "메시지 전송됨"
- },
- "failed": {
- "label": "메시지 전송 실패",
- "displayText": "전송 실패"
- },
- "unknown": {
- "label": "메시지 상태 알 수 없음",
- "displayText": "알 수 없는 상태"
- },
- "waiting": {
- "label": "메시지 전송 중",
- "displayText": "전송 대기 중"
- }
- }
+ "page": {
+ "title": "메시지: {{chatName}}",
+ "placeholder": "메시지 입력"
+ },
+ "emptyState": {
+ "title": "채팅 선택",
+ "text": "아직 메시지가 없습니다."
+ },
+ "selectChatPrompt": {
+ "text": "채널 또는 노드를 선택하여 메시지 전송을 시작하세요."
+ },
+ "sendMessage": {
+ "placeholder": "여기에 메시지를 입력하세요...",
+ "sendButton": "보내기"
+ },
+ "actionsMenu": {
+ "addReactionLabel": "반응 추가",
+ "replyLabel": "답장"
+ },
+ "deliveryStatus": {
+ "delivered": {
+ "label": "메시지 전송",
+ "displayText": "메시지 전송됨"
+ },
+ "failed": {
+ "label": "메시지 전송 실패",
+ "displayText": "전송 실패"
+ },
+ "unknown": {
+ "label": "메시지 상태 알 수 없음",
+ "displayText": "알 수 없는 상태"
+ },
+ "waiting": {
+ "label": "메시지 전송 중",
+ "displayText": "전송 대기 중"
+ }
+ }
}
diff --git a/packages/web/public/i18n/locales/ko-KR/moduleConfig.json b/packages/web/public/i18n/locales/ko-KR/moduleConfig.json
index 8a8699eb..2c1eca71 100644
--- a/packages/web/public/i18n/locales/ko-KR/moduleConfig.json
+++ b/packages/web/public/i18n/locales/ko-KR/moduleConfig.json
@@ -1,448 +1,448 @@
{
- "page": {
- "tabAmbientLighting": "조명",
- "tabAudio": "오디오",
- "tabCannedMessage": "Canned",
- "tabDetectionSensor": "감지 센서",
- "tabExternalNotification": "Ext Notif",
- "tabMqtt": "MQTT",
- "tabNeighborInfo": "이웃 정보",
- "tabPaxcounter": "팍스카운터",
- "tabRangeTest": "거리 테스트",
- "tabSerial": "시리얼",
- "tabStoreAndForward": "S&F",
- "tabTelemetry": "텔레메트리"
- },
- "ambientLighting": {
- "title": "Ambient Lighting Settings",
- "description": "Settings for the Ambient Lighting module",
- "ledState": {
- "label": "LED State",
- "description": "Sets LED to on or off"
- },
- "current": {
- "label": "전류",
- "description": "Sets the current for the LED output. Default is 10"
- },
- "red": {
- "label": "빨강",
- "description": "Sets the red LED level. Values are 0-255"
- },
- "green": {
- "label": "초록",
- "description": "Sets the green LED level. Values are 0-255"
- },
- "blue": {
- "label": "파랑",
- "description": "Sets the blue LED level. Values are 0-255"
- }
- },
- "audio": {
- "title": "Audio Settings",
- "description": "Settings for the Audio module",
- "codec2Enabled": {
- "label": "Codec 2 Enabled",
- "description": "Enable Codec 2 audio encoding"
- },
- "pttPin": {
- "label": "PTT Pin",
- "description": "GPIO pin to use for PTT"
- },
- "bitrate": {
- "label": "Bitrate",
- "description": "Bitrate to use for audio encoding"
- },
- "i2sWs": {
- "label": "i2S WS",
- "description": "GPIO pin to use for i2S WS"
- },
- "i2sSd": {
- "label": "i2S SD",
- "description": "GPIO pin to use for i2S SD"
- },
- "i2sDin": {
- "label": "i2S DIN",
- "description": "GPIO pin to use for i2S DIN"
- },
- "i2sSck": {
- "label": "i2S SCK",
- "description": "GPIO pin to use for i2S SCK"
- }
- },
- "cannedMessage": {
- "title": "Canned Message Settings",
- "description": "Settings for the Canned Message module",
- "moduleEnabled": {
- "label": "Module Enabled",
- "description": "Enable Canned Message"
- },
- "rotary1Enabled": {
- "label": "Rotary Encoder #1 Enabled",
- "description": "Enable the rotary encoder"
- },
- "inputbrokerPinA": {
- "label": "Encoder Pin A",
- "description": "GPIO Pin Value (1-39) For encoder port A"
- },
- "inputbrokerPinB": {
- "label": "Encoder Pin B",
- "description": "GPIO Pin Value (1-39) For encoder port B"
- },
- "inputbrokerPinPress": {
- "label": "Encoder Pin Press",
- "description": "GPIO Pin Value (1-39) For encoder Press"
- },
- "inputbrokerEventCw": {
- "label": "Clockwise event",
- "description": "Select input event."
- },
- "inputbrokerEventCcw": {
- "label": "Counter Clockwise event",
- "description": "Select input event."
- },
- "inputbrokerEventPress": {
- "label": "Press event",
- "description": "Select input event"
- },
- "updown1Enabled": {
- "label": "Up Down enabled",
- "description": "Enable the up / down encoder"
- },
- "allowInputSource": {
- "label": "Allow Input Source",
- "description": "Select from: '_any', 'rotEnc1', 'upDownEnc1', 'cardkb'"
- },
- "sendBell": {
- "label": "Send Bell",
- "description": "Sends a bell character with each message"
- }
- },
- "detectionSensor": {
- "title": "Detection Sensor Settings",
- "description": "Settings for the Detection Sensor module",
- "enabled": {
- "label": "활성화",
- "description": "Enable or disable Detection Sensor Module"
- },
- "minimumBroadcastSecs": {
- "label": "Minimum Broadcast Seconds",
- "description": "The interval in seconds of how often we can send a message to the mesh when a state change is detected"
- },
- "stateBroadcastSecs": {
- "label": "State Broadcast Seconds",
- "description": "The interval in seconds of how often we should send a message to the mesh with the current state regardless of changes"
- },
- "sendBell": {
- "label": "Send Bell",
- "description": "Send ASCII bell with alert message"
- },
- "name": {
- "label": "Friendly Name",
- "description": "Used to format the message sent to mesh, max 20 Characters"
- },
- "monitorPin": {
- "label": "Monitor Pin",
- "description": "The GPIO pin to monitor for state changes"
- },
- "detectionTriggerType": {
- "label": "Detection Triggered Type",
- "description": "The type of trigger event to be used"
- },
- "usePullup": {
- "label": "Use Pullup",
- "description": "Whether or not use INPUT_PULLUP mode for GPIO pin"
- }
- },
- "externalNotification": {
- "title": "External Notification Settings",
- "description": "Configure the external notification module",
- "enabled": {
- "label": "Module Enabled",
- "description": "Enable External Notification"
- },
- "outputMs": {
- "label": "Output MS",
- "description": "Output MS"
- },
- "output": {
- "label": "Output",
- "description": "Output"
- },
- "outputVibra": {
- "label": "Output Vibrate",
- "description": "Output Vibrate"
- },
- "outputBuzzer": {
- "label": "Output Buzzer",
- "description": "Output Buzzer"
- },
- "active": {
- "label": "Active",
- "description": "Active"
- },
- "alertMessage": {
- "label": "Alert Message",
- "description": "Alert Message"
- },
- "alertMessageVibra": {
- "label": "Alert Message Vibrate",
- "description": "Alert Message Vibrate"
- },
- "alertMessageBuzzer": {
- "label": "Alert Message Buzzer",
- "description": "Alert Message Buzzer"
- },
- "alertBell": {
- "label": "Alert Bell",
- "description": "Should an alert be triggered when receiving an incoming bell?"
- },
- "alertBellVibra": {
- "label": "Alert Bell Vibrate",
- "description": "Alert Bell Vibrate"
- },
- "alertBellBuzzer": {
- "label": "Alert Bell Buzzer",
- "description": "Alert Bell Buzzer"
- },
- "usePwm": {
- "label": "Use PWM",
- "description": "Use PWM"
- },
- "nagTimeout": {
- "label": "Nag Timeout",
- "description": "Nag Timeout"
- },
- "useI2sAsBuzzer": {
- "label": "Use I²S Pin as Buzzer",
- "description": "Designate I²S Pin as Buzzer Output"
- }
- },
- "mqtt": {
- "title": "MQTT Settings",
- "description": "Settings for the MQTT module",
- "enabled": {
- "label": "활성화",
- "description": "Enable or disable MQTT"
- },
- "address": {
- "label": "MQTT Server Address",
- "description": "MQTT server address to use for default/custom servers"
- },
- "username": {
- "label": "MQTT Username",
- "description": "MQTT username to use for default/custom servers"
- },
- "password": {
- "label": "MQTT Password",
- "description": "MQTT password to use for default/custom servers"
- },
- "encryptionEnabled": {
- "label": "Encryption Enabled",
- "description": "Enable or disable MQTT encryption. Note: All messages are sent to the MQTT broker unencrypted if this option is not enabled, even when your uplink channels have encryption keys set. This includes position data."
- },
- "jsonEnabled": {
- "label": "JSON Enabled",
- "description": "Whether to send/consume JSON packets on MQTT"
- },
- "tlsEnabled": {
- "label": "TLS Enabled",
- "description": "Enable or disable TLS"
- },
- "root": {
- "label": "Root topic",
- "description": "MQTT root topic to use for default/custom servers"
- },
- "proxyToClientEnabled": {
- "label": "MQTT Client Proxy Enabled",
- "description": "Utilizes the network connection to proxy MQTT messages to the client."
- },
- "mapReportingEnabled": {
- "label": "Map Reporting Enabled",
- "description": "Your node will periodically send an unencrypted map report packet to the configured MQTT server, this includes id, short and long name, approximate location, hardware model, role, firmware version, LoRa region, modem preset and primary channel name."
- },
- "mapReportSettings": {
- "publishIntervalSecs": {
- "label": "Map Report Publish Interval (s)",
- "description": "Interval in seconds to publish map reports"
- },
- "positionPrecision": {
- "label": "Approximate Location",
- "description": "Position shared will be accurate within this distance",
- "options": {
- "metric_km23": "Within 23 km",
- "metric_km12": "Within 12 km",
- "metric_km5_8": "Within 5.8 km",
- "metric_km2_9": "Within 2.9 km",
- "metric_km1_5": "Within 1.5 km",
- "metric_m700": "Within 700 m",
- "metric_m350": "Within 350 m",
- "metric_m200": "Within 200 m",
- "metric_m90": "Within 90 m",
- "metric_m50": "Within 50 m",
- "imperial_mi15": "15 miles 이내",
- "imperial_mi7_3": "7.3 miles 이내",
- "imperial_mi3_6": "3.6 miles 이내",
- "imperial_mi1_8": "1.8 miles 이내",
- "imperial_mi0_9": "0.9 miles 이내",
- "imperial_mi0_5": "0.5 miles 이내",
- "imperial_mi0_2": "0.2 miles 이내",
- "imperial_ft600": "600 feet 이내",
- "imperial_ft300": "300 feet 이내",
- "imperial_ft150": "150 feet 이내"
- }
- }
- }
- },
- "neighborInfo": {
- "title": "Neighbor Info Settings",
- "description": "Settings for the Neighbor Info module",
- "enabled": {
- "label": "활성화",
- "description": "Enable or disable Neighbor Info Module"
- },
- "updateInterval": {
- "label": "Update Interval",
- "description": "Interval in seconds of how often we should try to send our Neighbor Info to the mesh"
- }
- },
- "paxcounter": {
- "title": "Paxcounter Settings",
- "description": "Settings for the Paxcounter module",
- "enabled": {
- "label": "Module Enabled",
- "description": "Enable Paxcounter"
- },
- "paxcounterUpdateInterval": {
- "label": "Update Interval (seconds)",
- "description": "How long to wait between sending paxcounter packets"
- },
- "wifiThreshold": {
- "label": "WiFi RSSI Threshold",
- "description": "At what WiFi RSSI level should the counter increase. Defaults to -80."
- },
- "bleThreshold": {
- "label": "BLE RSSI Threshold",
- "description": "At what BLE RSSI level should the counter increase. Defaults to -80."
- }
- },
- "rangeTest": {
- "title": "Range Test Settings",
- "description": "Settings for the Range Test module",
- "enabled": {
- "label": "Module Enabled",
- "description": "Enable Range Test"
- },
- "sender": {
- "label": "Message Interval",
- "description": "How long to wait between sending test packets"
- },
- "save": {
- "label": "Save CSV to storage",
- "description": "ESP32 Only"
- }
- },
- "serial": {
- "title": "Serial Settings",
- "description": "Settings for the Serial module",
- "enabled": {
- "label": "Module Enabled",
- "description": "Enable Serial output"
- },
- "echo": {
- "label": "Echo",
- "description": "Any packets you send will be echoed back to your device"
- },
- "rxd": {
- "label": "Receive Pin",
- "description": "Set the GPIO pin to the RXD pin you have set up."
- },
- "txd": {
- "label": "Transmit Pin",
- "description": "Set the GPIO pin to the TXD pin you have set up."
- },
- "baud": {
- "label": "Baud Rate",
- "description": "The serial baud rate"
- },
- "timeout": {
- "label": "시간 초과",
- "description": "Seconds to wait before we consider your packet as 'done'"
- },
- "mode": {
- "label": "Mode",
- "description": "Select Mode"
- },
- "overrideConsoleSerialPort": {
- "label": "Override Console Serial Port",
- "description": "If you have a serial port connected to the console, this will override it."
- }
- },
- "storeForward": {
- "title": "Store & Forward Settings",
- "description": "Settings for the Store & Forward module",
- "enabled": {
- "label": "Module Enabled",
- "description": "Enable Store & Forward"
- },
- "heartbeat": {
- "label": "Heartbeat Enabled",
- "description": "Enable Store & Forward heartbeat"
- },
- "records": {
- "label": "Number of records",
- "description": "Number of records to store"
- },
- "historyReturnMax": {
- "label": "History return max",
- "description": "Max number of records to return"
- },
- "historyReturnWindow": {
- "label": "History return window",
- "description": "Return records from this time window (minutes)"
- }
- },
- "telemetry": {
- "title": "Telemetry Settings",
- "description": "Settings for the Telemetry module",
- "deviceUpdateInterval": {
- "label": "Device Metrics",
- "description": "장치 메트릭 업데이트 간격 (초)"
- },
- "environmentUpdateInterval": {
- "label": "환경 메트릭 업데이트 간격 (초)",
- "description": ""
- },
- "environmentMeasurementEnabled": {
- "label": "Module Enabled",
- "description": "Enable the Environment Telemetry"
- },
- "environmentScreenEnabled": {
- "label": "Displayed on Screen",
- "description": "Show the Telemetry Module on the OLED"
- },
- "environmentDisplayFahrenheit": {
- "label": "Display Fahrenheit",
- "description": "Display temp in Fahrenheit"
- },
- "airQualityEnabled": {
- "label": "Air Quality Enabled",
- "description": "Enable the Air Quality Telemetry"
- },
- "airQualityInterval": {
- "label": "Air Quality Update Interval",
- "description": "How often to send Air Quality data over the mesh"
- },
- "powerMeasurementEnabled": {
- "label": "Power Measurement Enabled",
- "description": "Enable the Power Measurement Telemetry"
- },
- "powerUpdateInterval": {
- "label": "Power Update Interval",
- "description": "How often to send Power data over the mesh"
- },
- "powerScreenEnabled": {
- "label": "Power Screen Enabled",
- "description": "Enable the Power Telemetry Screen"
- }
- }
+ "page": {
+ "tabAmbientLighting": "조명",
+ "tabAudio": "오디오",
+ "tabCannedMessage": "Canned",
+ "tabDetectionSensor": "감지 센서",
+ "tabExternalNotification": "Ext Notif",
+ "tabMqtt": "MQTT",
+ "tabNeighborInfo": "이웃 정보",
+ "tabPaxcounter": "팍스카운터",
+ "tabRangeTest": "거리 테스트",
+ "tabSerial": "시리얼",
+ "tabStoreAndForward": "S&F",
+ "tabTelemetry": "텔레메트리"
+ },
+ "ambientLighting": {
+ "title": "Ambient Lighting Settings",
+ "description": "Settings for the Ambient Lighting module",
+ "ledState": {
+ "label": "LED State",
+ "description": "Sets LED to on or off"
+ },
+ "current": {
+ "label": "전류",
+ "description": "Sets the current for the LED output. Default is 10"
+ },
+ "red": {
+ "label": "빨강",
+ "description": "Sets the red LED level. Values are 0-255"
+ },
+ "green": {
+ "label": "초록",
+ "description": "Sets the green LED level. Values are 0-255"
+ },
+ "blue": {
+ "label": "파랑",
+ "description": "Sets the blue LED level. Values are 0-255"
+ }
+ },
+ "audio": {
+ "title": "Audio Settings",
+ "description": "Settings for the Audio module",
+ "codec2Enabled": {
+ "label": "Codec 2 Enabled",
+ "description": "Enable Codec 2 audio encoding"
+ },
+ "pttPin": {
+ "label": "PTT Pin",
+ "description": "GPIO pin to use for PTT"
+ },
+ "bitrate": {
+ "label": "Bitrate",
+ "description": "Bitrate to use for audio encoding"
+ },
+ "i2sWs": {
+ "label": "i2S WS",
+ "description": "GPIO pin to use for i2S WS"
+ },
+ "i2sSd": {
+ "label": "i2S SD",
+ "description": "GPIO pin to use for i2S SD"
+ },
+ "i2sDin": {
+ "label": "i2S DIN",
+ "description": "GPIO pin to use for i2S DIN"
+ },
+ "i2sSck": {
+ "label": "i2S SCK",
+ "description": "GPIO pin to use for i2S SCK"
+ }
+ },
+ "cannedMessage": {
+ "title": "Canned Message Settings",
+ "description": "Settings for the Canned Message module",
+ "moduleEnabled": {
+ "label": "Module Enabled",
+ "description": "Enable Canned Message"
+ },
+ "rotary1Enabled": {
+ "label": "Rotary Encoder #1 Enabled",
+ "description": "Enable the rotary encoder"
+ },
+ "inputbrokerPinA": {
+ "label": "Encoder Pin A",
+ "description": "GPIO Pin Value (1-39) For encoder port A"
+ },
+ "inputbrokerPinB": {
+ "label": "Encoder Pin B",
+ "description": "GPIO Pin Value (1-39) For encoder port B"
+ },
+ "inputbrokerPinPress": {
+ "label": "Encoder Pin Press",
+ "description": "GPIO Pin Value (1-39) For encoder Press"
+ },
+ "inputbrokerEventCw": {
+ "label": "Clockwise event",
+ "description": "Select input event."
+ },
+ "inputbrokerEventCcw": {
+ "label": "Counter Clockwise event",
+ "description": "Select input event."
+ },
+ "inputbrokerEventPress": {
+ "label": "Press event",
+ "description": "Select input event"
+ },
+ "updown1Enabled": {
+ "label": "Up Down enabled",
+ "description": "Enable the up / down encoder"
+ },
+ "allowInputSource": {
+ "label": "Allow Input Source",
+ "description": "Select from: '_any', 'rotEnc1', 'upDownEnc1', 'cardkb'"
+ },
+ "sendBell": {
+ "label": "Send Bell",
+ "description": "Sends a bell character with each message"
+ }
+ },
+ "detectionSensor": {
+ "title": "Detection Sensor Settings",
+ "description": "Settings for the Detection Sensor module",
+ "enabled": {
+ "label": "활성화",
+ "description": "Enable or disable Detection Sensor Module"
+ },
+ "minimumBroadcastSecs": {
+ "label": "Minimum Broadcast Seconds",
+ "description": "The interval in seconds of how often we can send a message to the mesh when a state change is detected"
+ },
+ "stateBroadcastSecs": {
+ "label": "State Broadcast Seconds",
+ "description": "The interval in seconds of how often we should send a message to the mesh with the current state regardless of changes"
+ },
+ "sendBell": {
+ "label": "Send Bell",
+ "description": "Send ASCII bell with alert message"
+ },
+ "name": {
+ "label": "Friendly Name",
+ "description": "Used to format the message sent to mesh, max 20 Characters"
+ },
+ "monitorPin": {
+ "label": "Monitor Pin",
+ "description": "The GPIO pin to monitor for state changes"
+ },
+ "detectionTriggerType": {
+ "label": "Detection Triggered Type",
+ "description": "The type of trigger event to be used"
+ },
+ "usePullup": {
+ "label": "Use Pullup",
+ "description": "Whether or not use INPUT_PULLUP mode for GPIO pin"
+ }
+ },
+ "externalNotification": {
+ "title": "External Notification Settings",
+ "description": "Configure the external notification module",
+ "enabled": {
+ "label": "Module Enabled",
+ "description": "Enable External Notification"
+ },
+ "outputMs": {
+ "label": "Output MS",
+ "description": "Output MS"
+ },
+ "output": {
+ "label": "Output",
+ "description": "Output"
+ },
+ "outputVibra": {
+ "label": "Output Vibrate",
+ "description": "Output Vibrate"
+ },
+ "outputBuzzer": {
+ "label": "Output Buzzer",
+ "description": "Output Buzzer"
+ },
+ "active": {
+ "label": "Active",
+ "description": "Active"
+ },
+ "alertMessage": {
+ "label": "Alert Message",
+ "description": "Alert Message"
+ },
+ "alertMessageVibra": {
+ "label": "Alert Message Vibrate",
+ "description": "Alert Message Vibrate"
+ },
+ "alertMessageBuzzer": {
+ "label": "Alert Message Buzzer",
+ "description": "Alert Message Buzzer"
+ },
+ "alertBell": {
+ "label": "Alert Bell",
+ "description": "Should an alert be triggered when receiving an incoming bell?"
+ },
+ "alertBellVibra": {
+ "label": "Alert Bell Vibrate",
+ "description": "Alert Bell Vibrate"
+ },
+ "alertBellBuzzer": {
+ "label": "Alert Bell Buzzer",
+ "description": "Alert Bell Buzzer"
+ },
+ "usePwm": {
+ "label": "Use PWM",
+ "description": "Use PWM"
+ },
+ "nagTimeout": {
+ "label": "Nag Timeout",
+ "description": "Nag Timeout"
+ },
+ "useI2sAsBuzzer": {
+ "label": "Use I²S Pin as Buzzer",
+ "description": "Designate I²S Pin as Buzzer Output"
+ }
+ },
+ "mqtt": {
+ "title": "MQTT Settings",
+ "description": "Settings for the MQTT module",
+ "enabled": {
+ "label": "활성화",
+ "description": "Enable or disable MQTT"
+ },
+ "address": {
+ "label": "MQTT Server Address",
+ "description": "MQTT server address to use for default/custom servers"
+ },
+ "username": {
+ "label": "MQTT Username",
+ "description": "MQTT username to use for default/custom servers"
+ },
+ "password": {
+ "label": "MQTT Password",
+ "description": "MQTT password to use for default/custom servers"
+ },
+ "encryptionEnabled": {
+ "label": "Encryption Enabled",
+ "description": "Enable or disable MQTT encryption. Note: All messages are sent to the MQTT broker unencrypted if this option is not enabled, even when your uplink channels have encryption keys set. This includes position data."
+ },
+ "jsonEnabled": {
+ "label": "JSON Enabled",
+ "description": "Whether to send/consume JSON packets on MQTT"
+ },
+ "tlsEnabled": {
+ "label": "TLS Enabled",
+ "description": "Enable or disable TLS"
+ },
+ "root": {
+ "label": "Root topic",
+ "description": "MQTT root topic to use for default/custom servers"
+ },
+ "proxyToClientEnabled": {
+ "label": "MQTT Client Proxy Enabled",
+ "description": "Utilizes the network connection to proxy MQTT messages to the client."
+ },
+ "mapReportingEnabled": {
+ "label": "Map Reporting Enabled",
+ "description": "Your node will periodically send an unencrypted map report packet to the configured MQTT server, this includes id, short and long name, approximate location, hardware model, role, firmware version, LoRa region, modem preset and primary channel name."
+ },
+ "mapReportSettings": {
+ "publishIntervalSecs": {
+ "label": "Map Report Publish Interval (s)",
+ "description": "Interval in seconds to publish map reports"
+ },
+ "positionPrecision": {
+ "label": "Approximate Location",
+ "description": "Position shared will be accurate within this distance",
+ "options": {
+ "metric_km23": "Within 23 km",
+ "metric_km12": "Within 12 km",
+ "metric_km5_8": "Within 5.8 km",
+ "metric_km2_9": "Within 2.9 km",
+ "metric_km1_5": "Within 1.5 km",
+ "metric_m700": "Within 700 m",
+ "metric_m350": "Within 350 m",
+ "metric_m200": "Within 200 m",
+ "metric_m90": "Within 90 m",
+ "metric_m50": "Within 50 m",
+ "imperial_mi15": "15 miles 이내",
+ "imperial_mi7_3": "7.3 miles 이내",
+ "imperial_mi3_6": "3.6 miles 이내",
+ "imperial_mi1_8": "1.8 miles 이내",
+ "imperial_mi0_9": "0.9 miles 이내",
+ "imperial_mi0_5": "0.5 miles 이내",
+ "imperial_mi0_2": "0.2 miles 이내",
+ "imperial_ft600": "600 feet 이내",
+ "imperial_ft300": "300 feet 이내",
+ "imperial_ft150": "150 feet 이내"
+ }
+ }
+ }
+ },
+ "neighborInfo": {
+ "title": "Neighbor Info Settings",
+ "description": "Settings for the Neighbor Info module",
+ "enabled": {
+ "label": "활성화",
+ "description": "Enable or disable Neighbor Info Module"
+ },
+ "updateInterval": {
+ "label": "Update Interval",
+ "description": "Interval in seconds of how often we should try to send our Neighbor Info to the mesh"
+ }
+ },
+ "paxcounter": {
+ "title": "Paxcounter Settings",
+ "description": "Settings for the Paxcounter module",
+ "enabled": {
+ "label": "Module Enabled",
+ "description": "Enable Paxcounter"
+ },
+ "paxcounterUpdateInterval": {
+ "label": "Update Interval (seconds)",
+ "description": "How long to wait between sending paxcounter packets"
+ },
+ "wifiThreshold": {
+ "label": "WiFi RSSI Threshold",
+ "description": "At what WiFi RSSI level should the counter increase. Defaults to -80."
+ },
+ "bleThreshold": {
+ "label": "BLE RSSI Threshold",
+ "description": "At what BLE RSSI level should the counter increase. Defaults to -80."
+ }
+ },
+ "rangeTest": {
+ "title": "Range Test Settings",
+ "description": "Settings for the Range Test module",
+ "enabled": {
+ "label": "Module Enabled",
+ "description": "Enable Range Test"
+ },
+ "sender": {
+ "label": "Message Interval",
+ "description": "How long to wait between sending test packets"
+ },
+ "save": {
+ "label": "Save CSV to storage",
+ "description": "ESP32 Only"
+ }
+ },
+ "serial": {
+ "title": "Serial Settings",
+ "description": "Settings for the Serial module",
+ "enabled": {
+ "label": "Module Enabled",
+ "description": "Enable Serial output"
+ },
+ "echo": {
+ "label": "Echo",
+ "description": "Any packets you send will be echoed back to your device"
+ },
+ "rxd": {
+ "label": "Receive Pin",
+ "description": "Set the GPIO pin to the RXD pin you have set up."
+ },
+ "txd": {
+ "label": "Transmit Pin",
+ "description": "Set the GPIO pin to the TXD pin you have set up."
+ },
+ "baud": {
+ "label": "Baud Rate",
+ "description": "The serial baud rate"
+ },
+ "timeout": {
+ "label": "시간 초과",
+ "description": "Seconds to wait before we consider your packet as 'done'"
+ },
+ "mode": {
+ "label": "Mode",
+ "description": "Select Mode"
+ },
+ "overrideConsoleSerialPort": {
+ "label": "Override Console Serial Port",
+ "description": "If you have a serial port connected to the console, this will override it."
+ }
+ },
+ "storeForward": {
+ "title": "Store & Forward Settings",
+ "description": "Settings for the Store & Forward module",
+ "enabled": {
+ "label": "Module Enabled",
+ "description": "Enable Store & Forward"
+ },
+ "heartbeat": {
+ "label": "Heartbeat Enabled",
+ "description": "Enable Store & Forward heartbeat"
+ },
+ "records": {
+ "label": "Number of records",
+ "description": "Number of records to store"
+ },
+ "historyReturnMax": {
+ "label": "History return max",
+ "description": "Max number of records to return"
+ },
+ "historyReturnWindow": {
+ "label": "History return window",
+ "description": "Return records from this time window (minutes)"
+ }
+ },
+ "telemetry": {
+ "title": "Telemetry Settings",
+ "description": "Settings for the Telemetry module",
+ "deviceUpdateInterval": {
+ "label": "Device Metrics",
+ "description": "장치 메트릭 업데이트 간격 (초)"
+ },
+ "environmentUpdateInterval": {
+ "label": "환경 메트릭 업데이트 간격 (초)",
+ "description": ""
+ },
+ "environmentMeasurementEnabled": {
+ "label": "Module Enabled",
+ "description": "Enable the Environment Telemetry"
+ },
+ "environmentScreenEnabled": {
+ "label": "Displayed on Screen",
+ "description": "Show the Telemetry Module on the OLED"
+ },
+ "environmentDisplayFahrenheit": {
+ "label": "Display Fahrenheit",
+ "description": "Display temp in Fahrenheit"
+ },
+ "airQualityEnabled": {
+ "label": "Air Quality Enabled",
+ "description": "Enable the Air Quality Telemetry"
+ },
+ "airQualityInterval": {
+ "label": "Air Quality Update Interval",
+ "description": "How often to send Air Quality data over the mesh"
+ },
+ "powerMeasurementEnabled": {
+ "label": "Power Measurement Enabled",
+ "description": "Enable the Power Measurement Telemetry"
+ },
+ "powerUpdateInterval": {
+ "label": "Power Update Interval",
+ "description": "How often to send Power data over the mesh"
+ },
+ "powerScreenEnabled": {
+ "label": "Power Screen Enabled",
+ "description": "Enable the Power Telemetry Screen"
+ }
+ }
}
diff --git a/packages/web/public/i18n/locales/ko-KR/nodes.json b/packages/web/public/i18n/locales/ko-KR/nodes.json
index a1e4ccc3..304ac9b1 100644
--- a/packages/web/public/i18n/locales/ko-KR/nodes.json
+++ b/packages/web/public/i18n/locales/ko-KR/nodes.json
@@ -1,63 +1,59 @@
{
- "nodeDetail": {
- "publicKeyEnabled": {
- "label": "공개 키 활성화"
- },
- "noPublicKey": {
- "label": "공개 키 없음"
- },
- "directMessage": {
- "label": "DM {{shortName}}"
- },
- "favorite": {
- "label": "즐겨찾기",
- "tooltip": "이 노드를 즐겨찾기에 추가하거나 삭제"
- },
- "notFavorite": {
- "label": "즐겨찾기 아님"
- },
- "error": {
- "label": "Error",
- "text": "노드 정보를 가져오는 과정에서 오류가 발생했습니다. 나중에 다시 시도해 주세요."
- },
- "status": {
- "heard": "수신",
- "mqtt": "MQTT"
- },
- "elevation": {
- "label": "고도"
- },
- "channelUtil": {
- "label": "채널 사용률"
- },
- "airtimeUtil": {
- "label": "통신 사용률"
- }
- },
- "nodesTable": {
- "headings": {
- "longName": "긴 이름",
- "connection": "연결",
- "lastHeard": "최근 수신",
- "encryption": "암호화",
- "model": "하드웨어",
- "macAddress": "MAC 주소"
- },
- "connectionStatus": {
- "direct": "직접 연결",
- "away": "떨어짐",
- "unknown": "-",
- "viaMqtt": ", MQTT 경유"
- },
- "lastHeardStatus": {
- "never": "수신 된 적 없음"
- }
- },
- "actions": {
- "added": "추가됨",
- "removed": "삭제됨",
- "ignoreNode": "노드 무시하기",
- "unignoreNode": "노드 무시 해제",
- "requestPosition": "위치 요청"
- }
+ "nodeDetail": {
+ "publicKeyEnabled": {
+ "label": "공개 키 활성화"
+ },
+ "noPublicKey": {
+ "label": "공개 키 없음"
+ },
+ "directMessage": {
+ "label": "DM {{shortName}}"
+ },
+ "favorite": {
+ "label": "즐겨찾기",
+ "tooltip": "이 노드를 즐겨찾기에 추가하거나 삭제"
+ },
+ "notFavorite": {
+ "label": "즐겨찾기 아님"
+ },
+ "error": {
+ "label": "Error",
+ "text": "노드 정보를 가져오는 과정에서 오류가 발생했습니다. 나중에 다시 시도해 주세요."
+ },
+ "status": {
+ "heard": "수신",
+ "mqtt": "MQTT"
+ },
+ "elevation": {
+ "label": "고도"
+ },
+ "channelUtil": {
+ "label": "채널 사용률"
+ },
+ "airtimeUtil": {
+ "label": "통신 사용률"
+ }
+ },
+ "nodesTable": {
+ "headings": {
+ "longName": "긴 이름",
+ "connection": "연결",
+ "lastHeard": "최근 수신",
+ "encryption": "암호화",
+ "model": "하드웨어",
+ "macAddress": "MAC 주소"
+ },
+ "connectionStatus": {
+ "direct": "직접 연결",
+ "away": "떨어짐",
+ "viaMqtt": ", MQTT 경유"
+ }
+ },
+ "actions": {
+ "added": "추가됨",
+ "removed": "삭제됨",
+ "ignoreNode": "노드 무시하기",
+ "unignoreNode": "노드 무시 해제",
+ "requestPosition": "위치 요청"
+ }
}
diff --git a/packages/web/public/i18n/locales/ko-KR/ui.json b/packages/web/public/i18n/locales/ko-KR/ui.json
index 3b9bca41..5edaf2a3 100644
--- a/packages/web/public/i18n/locales/ko-KR/ui.json
+++ b/packages/web/public/i18n/locales/ko-KR/ui.json
@@ -1,228 +1,229 @@
{
- "navigation": {
- "title": "메뉴",
- "messages": "메시지기기",
- "map": "지도",
- "config": "설정",
- "radioConfig": "무선 설정",
- "moduleConfig": "모듈 설정",
- "channels": "채널",
- "nodes": "노드"
- },
- "app": {
- "title": "Meshtastic",
- "logo": "Meshtastic 로고"
- },
- "sidebar": {
- "collapseToggle": {
- "button": {
- "open": "사이드바 열기",
- "close": "사이드바 닫기"
- }
- },
- "deviceInfo": {
- "volts": "{{voltage}} V",
- "firmware": {
- "title": "펌웨어",
- "version": "v{{version}}",
- "buildDate": "빌드 날짜: {{date}}"
- },
- "deviceName": {
- "title": "장치 이름",
- "changeName": "장치 이름 변경",
- "placeholder": "장치 이름 입력"
- },
- "editDeviceName": "장치 이름 수정"
- }
- },
- "batteryStatus": {
- "charging": "{{level}}% 충전중",
- "pluggedIn": "전원 연결됨",
- "title": "배터리"
- },
- "search": {
- "nodes": "노드 검색...",
- "channels": "채널 검색...",
- "commandPalette": "명령 검색..."
- },
- "toast": {
- "positionRequestSent": {
- "title": "위치 요청 보냄."
- },
- "requestingPosition": {
- "title": "위치 요청 중, 기다려주세요."
- },
- "sendingTraceroute": {
- "title": "추적 루트 요청, 기다려주세요."
- },
- "tracerouteSent": {
- "title": "추적 루트 보냄."
- },
- "savedChannel": {
- "title": "저장된 채널: {{channelName}}"
- },
- "messages": {
- "pkiEncryption": {
- "title": "채팅은 PKI 암호화를 사용하고 있습니다."
- },
- "pskEncryption": {
- "title": "채팅은 PSK 암호화를 사용하고 있습니다."
- }
- },
- "configSaveError": {
- "title": "설정 저장 오류",
- "description": "설정을 저장하는 과정에서 오류가 발생했습니다."
- },
- "validationError": {
- "title": "설정 오류",
- "description": "저장하기 전에 설정 오류를 수정해 주시기 바랍니다."
- },
- "saveSuccess": {
- "title": "설정 저장됨",
- "description": "설정 변경 사항 {{case}}가 저장되었습니다."
- },
- "favoriteNode": {
- "title": "{{nodeName}}이 즐겨찾기{{direction}} {{action}}",
- "action": {
- "added": "추가됨",
- "removed": "삭제됨",
- "to": "에",
- "from": "에서"
- }
- },
- "ignoreNode": {
- "title": "{{nodeName}}이 무시 목록{{direction}} {{action}}",
- "action": {
- "added": "추가됨",
- "removed": "삭제됨",
- "to": "에",
- "from": "에서"
- }
- }
- },
- "notifications": {
- "copied": {
- "label": "저장됨!"
- },
- "copyToClipboard": {
- "label": "클립보드에 복사"
- },
- "hidePassword": {
- "label": "비밀번호 숨김"
- },
- "showPassword": {
- "label": "비밀번호 보기"
- },
- "deliveryStatus": {
- "delivered": "전송됨",
- "failed": "전송 실패",
- "waiting": "대기 중",
- "unknown": "알 수 없는"
- }
- },
- "general": {
- "label": "일반"
- },
- "hardware": {
- "label": "하드웨어"
- },
- "metrics": {
- "label": "메트릭"
- },
- "role": {
- "label": "역할"
- },
- "filter": {
- "label": "필터"
- },
- "advanced": {
- "label": "고급"
- },
- "clearInput": {
- "label": "입력 지우기"
- },
- "resetFilters": {
- "label": "필터 초기화"
- },
- "nodeName": {
- "label": "노드 이름/숫자",
- "placeholder": "Meshtastic 1234"
- },
- "airtimeUtilization": {
- "label": "통신 사용률 (%)"
- },
- "batteryLevel": {
- "label": "배터리 잔량 (%)",
- "labelText": "배터리 잔량 (%): {{value}}"
- },
- "batteryVoltage": {
- "label": "배터리 전압 (V)",
- "title": "전압"
- },
- "channelUtilization": {
- "label": "채널 사용률 (%)"
- },
- "hops": {
- "direct": "직접 연결",
- "label": "Hops 수",
- "text": "Hops 수: {{value}}"
- },
- "lastHeard": {
- "label": "최근 수신",
- "labelText": "최근 수신: {{value}}",
- "nowLabel": "지금"
- },
- "snr": {
- "label": "SNR (db)"
- },
- "favorites": {
- "label": "즐겨찾기"
- },
- "hide": {
- "label": "숨기기"
- },
- "showOnly": {
- "label": "만 보이기"
- },
- "viaMqtt": {
- "label": "MQTT로 연결된"
- },
- "hopsUnknown": {
- "label": "Hops 알 수 없음"
- },
- "showUnheard": {
- "label": "수신된 적 없음"
- },
- "language": {
- "label": "언어",
- "changeLanguage": "언어 선택"
- },
- "theme": {
- "dark": "다크",
- "light": "라이트",
- "system": "자동",
- "changeTheme": "컬러 선택"
- },
- "errorPage": {
- "title": "이건 좀 부끄러운 일이에요...",
- "description1": "정말 죄송합니다. 웹 클라이언트에서 오류가 발생하여 강제 종료되었습니다.
이 문제는 발생하지 않아야 하는 것이며, 현재 이를 해결하기 위해 최선을 다하고 있습니다.",
- "description2": "이 문제가 다시 발생하지 않도록 하는 가장 좋은 방법은 해당 문제를 저희에게 신고해 주시는 것입니다.",
- "reportInstructions": "보고서에 다음 정보를 포함해 주시기 바랍니다:",
- "reportSteps": {
- "step1": "오류가 발생했을 때 무엇을 하고 계셨나요?",
- "step2": "어떤 상황을 예상 하셨나요?",
- "step3": "실제로 무슨 일이 일어났나요?",
- "step4": "기타 관련 정보"
- },
- "reportLink": "이 문제를 저희 <0>GitHub0>에 보고해주세요",
- "dashboardLink": "<0>메인0>으로 돌아가기",
- "detailsSummary": "오류 세부 정보",
- "errorMessageLabel": "오류 메시지:",
- "stackTraceLabel": "스택 추적:",
- "fallbackError": "{{error}}"
- },
- "footer": {
- "text": "Powered by <0>▲ Vercel0> | Meshtastic®는 Meshtastic LLC의 등록 상표입니다. | <1>법적 정보1>",
- "commitSha": "Commit SHA: {{sha}}"
- }
+ "navigation": {
+ "title": "메뉴",
+ "messages": "메시지기기",
+ "map": "지도",
+ "settings": "설정",
+ "channels": "채널",
+ "radioConfig": "무선 설정",
+ "deviceConfig": "장치 설정",
+ "moduleConfig": "모듈 설정",
+ "nodes": "노드"
+ },
+ "app": {
+ "title": "Meshtastic",
+ "logo": "Meshtastic 로고"
+ },
+ "sidebar": {
+ "collapseToggle": {
+ "button": {
+ "open": "사이드바 열기",
+ "close": "사이드바 닫기"
+ }
+ },
+ "deviceInfo": {
+ "volts": "{{voltage}} V",
+ "firmware": {
+ "title": "펌웨어",
+ "version": "v{{version}}",
+ "buildDate": "빌드 날짜: {{date}}"
+ }
+ }
+ },
+ "batteryStatus": {
+ "charging": "{{level}}% 충전중",
+ "pluggedIn": "전원 연결됨",
+ "title": "배터리"
+ },
+ "search": {
+ "nodes": "노드 검색...",
+ "channels": "채널 검색...",
+ "commandPalette": "명령 검색..."
+ },
+ "toast": {
+ "positionRequestSent": {
+ "title": "위치 요청 보냄."
+ },
+ "requestingPosition": {
+ "title": "위치 요청 중, 기다려주세요."
+ },
+ "sendingTraceroute": {
+ "title": "추적 루트 요청, 기다려주세요."
+ },
+ "tracerouteSent": {
+ "title": "추적 루트 보냄."
+ },
+ "savedChannel": {
+ "title": "저장된 채널: {{channelName}}"
+ },
+ "messages": {
+ "pkiEncryption": {
+ "title": "채팅은 PKI 암호화를 사용하고 있습니다."
+ },
+ "pskEncryption": {
+ "title": "채팅은 PSK 암호화를 사용하고 있습니다."
+ }
+ },
+ "configSaveError": {
+ "title": "설정 저장 오류",
+ "description": "설정을 저장하는 과정에서 오류가 발생했습니다."
+ },
+ "validationError": {
+ "title": "설정 오류",
+ "description": "저장하기 전에 설정 오류를 수정해 주시기 바랍니다."
+ },
+ "saveSuccess": {
+ "title": "설정 저장됨",
+ "description": "설정 변경 사항 {{case}}가 저장되었습니다."
+ },
+ "saveAllSuccess": {
+ "title": "Saved",
+ "description": "All configuration changes have been saved."
+ },
+ "favoriteNode": {
+ "title": "{{nodeName}}이 즐겨찾기{{direction}} {{action}}",
+ "action": {
+ "added": "추가됨",
+ "removed": "삭제됨",
+ "to": "에",
+ "from": "에서"
+ }
+ },
+ "ignoreNode": {
+ "title": "{{nodeName}}이 무시 목록{{direction}} {{action}}",
+ "action": {
+ "added": "추가됨",
+ "removed": "삭제됨",
+ "to": "에",
+ "from": "에서"
+ }
+ }
+ },
+ "notifications": {
+ "copied": {
+ "label": "저장됨!"
+ },
+ "copyToClipboard": {
+ "label": "클립보드에 복사"
+ },
+ "hidePassword": {
+ "label": "비밀번호 숨김"
+ },
+ "showPassword": {
+ "label": "비밀번호 보기"
+ },
+ "deliveryStatus": {
+ "delivered": "전송됨",
+ "failed": "전송 실패",
+ "waiting": "대기 중",
+ "unknown": "알 수 없는"
+ }
+ },
+ "general": {
+ "label": "일반"
+ },
+ "hardware": {
+ "label": "하드웨어"
+ },
+ "metrics": {
+ "label": "메트릭"
+ },
+ "role": {
+ "label": "역할"
+ },
+ "filter": {
+ "label": "필터"
+ },
+ "advanced": {
+ "label": "고급"
+ },
+ "clearInput": {
+ "label": "입력 지우기"
+ },
+ "resetFilters": {
+ "label": "필터 초기화"
+ },
+ "nodeName": {
+ "label": "노드 이름/숫자",
+ "placeholder": "Meshtastic 1234"
+ },
+ "airtimeUtilization": {
+ "label": "통신 사용률 (%)",
+ "short": "Airtime Util. (%)"
+ },
+ "batteryLevel": {
+ "label": "배터리 잔량 (%)",
+ "labelText": "배터리 잔량 (%): {{value}}"
+ },
+ "batteryVoltage": {
+ "label": "배터리 전압 (V)",
+ "title": "전압"
+ },
+ "channelUtilization": {
+ "label": "채널 사용률 (%)",
+ "short": "Channel Util. (%)"
+ },
+ "hops": {
+ "direct": "직접 연결",
+ "label": "Hops 수",
+ "text": "Hops 수: {{value}}"
+ },
+ "lastHeard": {
+ "label": "최근 수신",
+ "labelText": "최근 수신: {{value}}",
+ "nowLabel": "지금"
+ },
+ "snr": {
+ "label": "SNR (db)"
+ },
+ "favorites": {
+ "label": "즐겨찾기"
+ },
+ "hide": {
+ "label": "숨기기"
+ },
+ "showOnly": {
+ "label": "만 보이기"
+ },
+ "viaMqtt": {
+ "label": "MQTT로 연결된"
+ },
+ "hopsUnknown": {
+ "label": "Hops 알 수 없음"
+ },
+ "showUnheard": {
+ "label": "수신된 적 없음"
+ },
+ "language": {
+ "label": "언어",
+ "changeLanguage": "언어 선택"
+ },
+ "theme": {
+ "dark": "다크",
+ "light": "라이트",
+ "system": "자동",
+ "changeTheme": "컬러 선택"
+ },
+ "errorPage": {
+ "title": "이건 좀 부끄러운 일이에요...",
+ "description1": "정말 죄송합니다. 웹 클라이언트에서 오류가 발생하여 강제 종료되었습니다.
이 문제는 발생하지 않아야 하는 것이며, 현재 이를 해결하기 위해 최선을 다하고 있습니다.",
+ "description2": "이 문제가 다시 발생하지 않도록 하는 가장 좋은 방법은 해당 문제를 저희에게 신고해 주시는 것입니다.",
+ "reportInstructions": "보고서에 다음 정보를 포함해 주시기 바랍니다:",
+ "reportSteps": {
+ "step1": "오류가 발생했을 때 무엇을 하고 계셨나요?",
+ "step2": "어떤 상황을 예상 하셨나요?",
+ "step3": "실제로 무슨 일이 일어났나요?",
+ "step4": "기타 관련 정보"
+ },
+ "reportLink": "이 문제를 저희 <0>GitHub0>에 보고해주세요",
+ "dashboardLink": "<0>메인0>으로 돌아가기",
+ "detailsSummary": "오류 세부 정보",
+ "errorMessageLabel": "오류 메시지:",
+ "stackTraceLabel": "스택 추적:",
+ "fallbackError": "{{error}}"
+ },
+ "footer": {
+ "text": "Powered by <0>▲ Vercel0> | Meshtastic®는 Meshtastic LLC의 등록 상표입니다. | <1>법적 정보1>",
+ "commitSha": "Commit SHA: {{sha}}"
+ }
}
diff --git a/packages/web/public/i18n/locales/nl-NL/channels.json b/packages/web/public/i18n/locales/nl-NL/channels.json
index 79f0d8d2..f26b6f0b 100644
--- a/packages/web/public/i18n/locales/nl-NL/channels.json
+++ b/packages/web/public/i18n/locales/nl-NL/channels.json
@@ -1,69 +1,71 @@
{
- "page": {
- "sectionLabel": "Kanalen",
- "channelName": "Channel: {{channelName}}",
- "broadcastLabel": "Primair",
- "channelIndex": "Ch {{index}}"
- },
- "validation": {
- "pskInvalid": "Please enter a valid {{bits}} bit PSK."
- },
- "settings": {
- "label": "Kanaalinstellingen",
- "description": "Crypto, MQTT & misc settings"
- },
- "role": {
- "label": "Functie",
- "description": "Device telemetry is sent over PRIMARY. Only one PRIMARY allowed",
- "options": {
- "primary": "PRIMARY",
- "disabled": "DISABLED",
- "secondary": "SECONDARY"
- }
- },
- "psk": {
- "label": "Pre-Shared Key",
- "description": "Supported PSK lengths: 256-bit, 128-bit, 8-bit, Empty (0-bit)",
- "generate": "Generate"
- },
- "name": {
- "label": "Naam",
- "description": "A unique name for the channel <12 bytes, leave blank for default"
- },
- "uplinkEnabled": {
- "label": "Uplink Enabled",
- "description": "Send messages from the local mesh to MQTT"
- },
- "downlinkEnabled": {
- "label": "Downlink Enabled",
- "description": "Send messages from MQTT to the local mesh"
- },
- "positionPrecision": {
- "label": "Location",
- "description": "The precision of the location to share with the channel. Can be disabled.",
- "options": {
- "none": "Do not share location",
- "precise": "Precise Location",
- "metric_km23": "Within 23 kilometers",
- "metric_km12": "Within 12 kilometers",
- "metric_km5_8": "Within 5.8 kilometers",
- "metric_km2_9": "Within 2.9 kilometers",
- "metric_km1_5": "Within 1.5 kilometers",
- "metric_m700": "Within 700 meters",
- "metric_m350": "Within 350 meters",
- "metric_m200": "Within 200 meters",
- "metric_m90": "Within 90 meters",
- "metric_m50": "Within 50 meters",
- "imperial_mi15": "Within 15 miles",
- "imperial_mi7_3": "Within 7.3 miles",
- "imperial_mi3_6": "Within 3.6 miles",
- "imperial_mi1_8": "Within 1.8 miles",
- "imperial_mi0_9": "Within 0.9 miles",
- "imperial_mi0_5": "Within 0.5 miles",
- "imperial_mi0_2": "Within 0.2 miles",
- "imperial_ft600": "Within 600 feet",
- "imperial_ft300": "Within 300 feet",
- "imperial_ft150": "Within 150 feet"
- }
- }
+ "page": {
+ "sectionLabel": "Kanalen",
+ "channelName": "Channel: {{channelName}}",
+ "broadcastLabel": "Primair",
+ "channelIndex": "Ch {{index}}",
+ "import": "Importeer",
+ "export": "Export"
+ },
+ "validation": {
+ "pskInvalid": "Please enter a valid {{bits}} bit PSK."
+ },
+ "settings": {
+ "label": "Kanaalinstellingen",
+ "description": "Crypto, MQTT & misc settings"
+ },
+ "role": {
+ "label": "Functie",
+ "description": "Device telemetry is sent over PRIMARY. Only one PRIMARY allowed",
+ "options": {
+ "primary": "PRIMARY",
+ "disabled": "DISABLED",
+ "secondary": "SECONDARY"
+ }
+ },
+ "psk": {
+ "label": "Pre-Shared Key",
+ "description": "Supported PSK lengths: 256-bit, 128-bit, 8-bit, Empty (0-bit)",
+ "generate": "Generate"
+ },
+ "name": {
+ "label": "Naam",
+ "description": "A unique name for the channel <12 bytes, leave blank for default"
+ },
+ "uplinkEnabled": {
+ "label": "Uplink Enabled",
+ "description": "Send messages from the local mesh to MQTT"
+ },
+ "downlinkEnabled": {
+ "label": "Downlink Enabled",
+ "description": "Send messages from MQTT to the local mesh"
+ },
+ "positionPrecision": {
+ "label": "Location",
+ "description": "The precision of the location to share with the channel. Can be disabled.",
+ "options": {
+ "none": "Do not share location",
+ "precise": "Precise Location",
+ "metric_km23": "Within 23 kilometers",
+ "metric_km12": "Within 12 kilometers",
+ "metric_km5_8": "Within 5.8 kilometers",
+ "metric_km2_9": "Within 2.9 kilometers",
+ "metric_km1_5": "Within 1.5 kilometers",
+ "metric_m700": "Within 700 meters",
+ "metric_m350": "Within 350 meters",
+ "metric_m200": "Within 200 meters",
+ "metric_m90": "Within 90 meters",
+ "metric_m50": "Within 50 meters",
+ "imperial_mi15": "Within 15 miles",
+ "imperial_mi7_3": "Within 7.3 miles",
+ "imperial_mi3_6": "Within 3.6 miles",
+ "imperial_mi1_8": "Within 1.8 miles",
+ "imperial_mi0_9": "Within 0.9 miles",
+ "imperial_mi0_5": "Within 0.5 miles",
+ "imperial_mi0_2": "Within 0.2 miles",
+ "imperial_ft600": "Within 600 feet",
+ "imperial_ft300": "Within 300 feet",
+ "imperial_ft150": "Within 150 feet"
+ }
+ }
}
diff --git a/packages/web/public/i18n/locales/nl-NL/commandPalette.json b/packages/web/public/i18n/locales/nl-NL/commandPalette.json
index da965c23..c43579fe 100644
--- a/packages/web/public/i18n/locales/nl-NL/commandPalette.json
+++ b/packages/web/public/i18n/locales/nl-NL/commandPalette.json
@@ -15,7 +15,6 @@
"messages": "Berichten",
"map": "Kaart",
"config": "Config",
- "channels": "Kanalen",
"nodes": "Nodes"
}
},
@@ -45,7 +44,8 @@
"label": "Debug",
"command": {
"reconfigure": "Reconfigure",
- "clearAllStoredMessages": "Clear All Stored Message"
+ "clearAllStoredMessages": "Clear All Stored Message",
+ "clearAllStores": "Clear All Local Storage"
}
}
}
diff --git a/packages/web/public/i18n/locales/nl-NL/common.json b/packages/web/public/i18n/locales/nl-NL/common.json
index 2aba0c32..11a2e6f0 100644
--- a/packages/web/public/i18n/locales/nl-NL/common.json
+++ b/packages/web/public/i18n/locales/nl-NL/common.json
@@ -1,142 +1,157 @@
{
- "button": {
- "apply": "Toepassen",
- "backupKey": "Backup Key",
- "cancel": "Annuleer",
- "clearMessages": "Clear Messages",
- "close": "Sluit",
- "confirm": "Confirm",
- "delete": "Verwijder",
- "dismiss": "Dismiss",
- "download": "Download",
- "export": "Export",
- "generate": "Generate",
- "regenerate": "Regenerate",
- "import": "Importeer",
- "message": "Bericht",
- "now": "Now",
- "ok": "OK",
- "print": "Print",
- "remove": "Verwijder",
- "requestNewKeys": "Request New Keys",
- "requestPosition": "Request Position",
- "reset": "Reset",
- "save": "Opslaan",
- "scanQr": "Scan QR-code",
- "traceRoute": "Trace Route",
- "submit": "Submit"
- },
- "app": {
- "title": "Meshtastic",
- "fullTitle": "Meshtastic Web Client"
- },
- "loading": "Loading...",
- "unit": {
- "cps": "CPS",
- "dbm": "dBm",
- "hertz": "Hz",
- "hop": {
- "one": "Hop",
- "plural": "Hops"
- },
- "hopsAway": {
- "one": "{{count}} hop away",
- "plural": "{{count}} hops away",
- "unknown": "Unknown hops away"
- },
- "megahertz": "MHz",
- "raw": "raw",
- "meter": {
- "one": "Meter",
- "plural": "Meters",
- "suffix": "m"
- },
- "minute": {
- "one": "Minute",
- "plural": "Minutes"
- },
- "hour": {
- "one": "Hour",
- "plural": "Hours"
- },
- "millisecond": {
- "one": "Millisecond",
- "plural": "Milliseconds",
- "suffix": "ms"
- },
- "second": {
- "one": "Second",
- "plural": "Seconds"
- },
- "day": {
- "one": "Day",
- "plural": "Days"
- },
- "month": {
- "one": "Month",
- "plural": "Months"
- },
- "year": {
- "one": "Year",
- "plural": "Years"
- },
- "snr": "SNR",
- "volt": {
- "one": "Volt",
- "plural": "Volts",
- "suffix": "V"
- },
- "record": {
- "one": "Records",
- "plural": "Records"
- }
- },
- "security": {
- "0bit": "Empty",
- "8bit": "8 bit",
- "128bit": "128 bit",
- "256bit": "256 bit"
- },
- "unknown": {
- "longName": "Unknown",
- "shortName": "UNK",
- "notAvailable": "N/A",
- "num": "??"
- },
- "nodeUnknownPrefix": "!",
- "unset": "UNSET",
- "fallbackName": "Meshtastic {{last4}}",
- "node": "Node",
- "formValidation": {
- "unsavedChanges": "Unsaved changes",
- "tooBig": {
- "string": "Too long, expected less than or equal to {{maximum}} characters.",
- "number": "Too big, expected a number smaller than or equal to {{maximum}}.",
- "bytes": "Too big, expected less than or equal to {{params.maximum}} bytes."
- },
- "tooSmall": {
- "string": "Too short, expected more than or equal to {{minimum}} characters.",
- "number": "Too small, expected a number larger than or equal to {{minimum}}."
- },
- "invalidFormat": {
- "ipv4": "Invalid format, expected an IPv4 address.",
- "key": "Invalid format, expected a Base64 encoded pre-shared key (PSK)."
- },
- "invalidType": {
- "number": "Invalid type, expected a number."
- },
- "pskLength": {
- "0bit": "Key is required to be empty.",
- "8bit": "Key is required to be an 8 bit pre-shared key (PSK).",
- "128bit": "Key is required to be a 128 bit pre-shared key (PSK).",
- "256bit": "Key is required to be a 256 bit pre-shared key (PSK)."
- },
- "required": {
- "generic": "This field is required.",
- "managed": "At least one admin key is requred if the node is managed.",
- "key": "Key is required."
- }
- },
- "yes": "Yes",
- "no": "No"
+ "button": {
+ "apply": "Toepassen",
+ "backupKey": "Backup Key",
+ "cancel": "Annuleer",
+ "clearMessages": "Clear Messages",
+ "close": "Sluit",
+ "confirm": "Confirm",
+ "delete": "Verwijder",
+ "dismiss": "Dismiss",
+ "download": "Download",
+ "export": "Export",
+ "generate": "Generate",
+ "regenerate": "Regenerate",
+ "import": "Importeer",
+ "message": "Bericht",
+ "now": "Now",
+ "ok": "OK",
+ "print": "Print",
+ "remove": "Verwijder",
+ "requestNewKeys": "Request New Keys",
+ "requestPosition": "Request Position",
+ "reset": "Reset",
+ "save": "Opslaan",
+ "scanQr": "Scan QR-code",
+ "traceRoute": "Trace Route",
+ "submit": "Submit"
+ },
+ "app": {
+ "title": "Meshtastic",
+ "fullTitle": "Meshtastic Web Client"
+ },
+ "loading": "Loading...",
+ "unit": {
+ "cps": "CPS",
+ "dbm": "dBm",
+ "hertz": "Hz",
+ "hop": {
+ "one": "Hop",
+ "plural": "Hops"
+ },
+ "hopsAway": {
+ "one": "{{count}} hop away",
+ "plural": "{{count}} hops away",
+ "unknown": "Unknown hops away"
+ },
+ "megahertz": "MHz",
+ "raw": "raw",
+ "meter": {
+ "one": "Meter",
+ "plural": "Meters",
+ "suffix": "m"
+ },
+ "kilometer": {
+ "one": "Kilometer",
+ "plural": "Kilometers",
+ "suffix": "km"
+ },
+ "minute": {
+ "one": "Minute",
+ "plural": "Minutes"
+ },
+ "hour": {
+ "one": "Hour",
+ "plural": "Hours"
+ },
+ "millisecond": {
+ "one": "Millisecond",
+ "plural": "Milliseconds",
+ "suffix": "ms"
+ },
+ "second": {
+ "one": "Second",
+ "plural": "Seconds"
+ },
+ "day": {
+ "one": "Day",
+ "plural": "Days",
+ "today": "Today",
+ "yesterday": "Yesterday"
+ },
+ "month": {
+ "one": "Month",
+ "plural": "Months"
+ },
+ "year": {
+ "one": "Year",
+ "plural": "Years"
+ },
+ "snr": "SNR",
+ "volt": {
+ "one": "Volt",
+ "plural": "Volts",
+ "suffix": "V"
+ },
+ "record": {
+ "one": "Records",
+ "plural": "Records"
+ },
+ "degree": {
+ "one": "Degree",
+ "plural": "Degrees",
+ "suffix": "°"
+ }
+ },
+ "security": {
+ "0bit": "Empty",
+ "8bit": "8 bit",
+ "128bit": "128 bit",
+ "256bit": "256 bit"
+ },
+ "unknown": {
+ "longName": "Unknown",
+ "shortName": "UNK",
+ "notAvailable": "N/A",
+ "num": "??"
+ },
+ "nodeUnknownPrefix": "!",
+ "unset": "UNSET",
+ "fallbackName": "Meshtastic {{last4}}",
+ "node": "Node",
+ "formValidation": {
+ "unsavedChanges": "Unsaved changes",
+ "tooBig": {
+ "string": "Too long, expected less than or equal to {{maximum}} characters.",
+ "number": "Too big, expected a number smaller than or equal to {{maximum}}.",
+ "bytes": "Too big, expected less than or equal to {{params.maximum}} bytes."
+ },
+ "tooSmall": {
+ "string": "Too short, expected more than or equal to {{minimum}} characters.",
+ "number": "Too small, expected a number larger than or equal to {{minimum}}."
+ },
+ "invalidFormat": {
+ "ipv4": "Invalid format, expected an IPv4 address.",
+ "key": "Invalid format, expected a Base64 encoded pre-shared key (PSK)."
+ },
+ "invalidType": {
+ "number": "Invalid type, expected a number."
+ },
+ "pskLength": {
+ "0bit": "Key is required to be empty.",
+ "8bit": "Key is required to be an 8 bit pre-shared key (PSK).",
+ "128bit": "Key is required to be a 128 bit pre-shared key (PSK).",
+ "256bit": "Key is required to be a 256 bit pre-shared key (PSK)."
+ },
+ "required": {
+ "generic": "This field is required.",
+ "managed": "At least one admin key is requred if the node is managed.",
+ "key": "Key is required."
+ },
+ "invalidOverrideFreq": {
+ "number": "Invalid format, expected a value in the range 410-930 MHz or 0 (use default)."
+ }
+ },
+ "yes": "Yes",
+ "no": "No"
}
diff --git a/packages/web/public/i18n/locales/nl-NL/config.json b/packages/web/public/i18n/locales/nl-NL/config.json
new file mode 100644
index 00000000..d18d009f
--- /dev/null
+++ b/packages/web/public/i18n/locales/nl-NL/config.json
@@ -0,0 +1,458 @@
+{
+ "page": {
+ "title": "Instellingen",
+ "tabUser": "Gebruiker",
+ "tabChannels": "Kanalen",
+ "tabBluetooth": "Bluetooth",
+ "tabDevice": "Apparaat",
+ "tabDisplay": "Weergave",
+ "tabLora": "LoRa",
+ "tabNetwork": "Netwerk",
+ "tabPosition": "Positie",
+ "tabPower": "Vermogen",
+ "tabSecurity": "Beveiliging"
+ },
+ "sidebar": {
+ "label": "Configuration"
+ },
+ "device": {
+ "title": "Device Settings",
+ "description": "Settings for the device",
+ "buttonPin": {
+ "description": "Button pin override",
+ "label": "Button Pin"
+ },
+ "buzzerPin": {
+ "description": "Buzzer pin override",
+ "label": "Buzzer Pin"
+ },
+ "disableTripleClick": {
+ "description": "Disable triple click",
+ "label": "Disable Triple Click"
+ },
+ "doubleTapAsButtonPress": {
+ "description": "Treat double tap as button press",
+ "label": "Double Tap as Button Press"
+ },
+ "ledHeartbeatDisabled": {
+ "description": "Disable default blinking LED",
+ "label": "LED Heartbeat Disabled"
+ },
+ "nodeInfoBroadcastInterval": {
+ "description": "How often to broadcast node info",
+ "label": "Node Info Broadcast Interval"
+ },
+ "posixTimezone": {
+ "description": "The POSIX timezone string for the device",
+ "label": "POSIX Timezone"
+ },
+ "rebroadcastMode": {
+ "description": "How to handle rebroadcasting",
+ "label": "Rebroadcast Mode"
+ },
+ "role": {
+ "description": "What role the device performs on the mesh",
+ "label": "Functie"
+ }
+ },
+ "bluetooth": {
+ "title": "Bluetooth Settings",
+ "description": "Settings for the Bluetooth module",
+ "note": "Note: Some devices (ESP32) cannot use both Bluetooth and WiFi at the same time.",
+ "enabled": {
+ "description": "Enable or disable Bluetooth",
+ "label": "Enabled"
+ },
+ "pairingMode": {
+ "description": "Pin selection behaviour.",
+ "label": "Koppelmodus"
+ },
+ "pin": {
+ "description": "Pin to use when pairing",
+ "label": "Pin"
+ }
+ },
+ "display": {
+ "description": "Settings for the device display",
+ "title": "Display Settings",
+ "headingBold": {
+ "description": "Bolden the heading text",
+ "label": "Bold Heading"
+ },
+ "carouselDelay": {
+ "description": "How fast to cycle through windows",
+ "label": "Carousel Delay"
+ },
+ "compassNorthTop": {
+ "description": "Fix north to the top of compass",
+ "label": "Compass North Top"
+ },
+ "displayMode": {
+ "description": "Screen layout variant",
+ "label": "Display Mode"
+ },
+ "displayUnits": {
+ "description": "Display metric or imperial units",
+ "label": "Display Units"
+ },
+ "flipScreen": {
+ "description": "Flip display 180 degrees",
+ "label": "Flip Screen"
+ },
+ "gpsDisplayUnits": {
+ "description": "Coordinate display format",
+ "label": "GPS Display Units"
+ },
+ "oledType": {
+ "description": "Type of OLED screen attached to the device",
+ "label": "OLED Type"
+ },
+ "screenTimeout": {
+ "description": "Turn off the display after this long",
+ "label": "Screen Timeout"
+ },
+ "twelveHourClock": {
+ "description": "Use 12-hour clock format",
+ "label": "12-Hour Clock"
+ },
+ "wakeOnTapOrMotion": {
+ "description": "Wake the device on tap or motion",
+ "label": "Wake on Tap or Motion"
+ }
+ },
+ "lora": {
+ "title": "Mesh Settings",
+ "description": "Settings for the LoRa mesh",
+ "bandwidth": {
+ "description": "Channel bandwidth in MHz",
+ "label": "Bandbreedte"
+ },
+ "boostedRxGain": {
+ "description": "Boosted RX gain",
+ "label": "Boosted RX Gain"
+ },
+ "codingRate": {
+ "description": "The denominator of the coding rate",
+ "label": "Coding Rate"
+ },
+ "frequencyOffset": {
+ "description": "Frequency offset to correct for crystal calibration errors",
+ "label": "Frequency Offset"
+ },
+ "frequencySlot": {
+ "description": "LoRa frequency channel number",
+ "label": "Frequency Slot"
+ },
+ "hopLimit": {
+ "description": "Maximum number of hops",
+ "label": "Hop Limit"
+ },
+ "ignoreMqtt": {
+ "description": "Don't forward MQTT messages over the mesh",
+ "label": "Negeer MQTT"
+ },
+ "modemPreset": {
+ "description": "Modem preset to use",
+ "label": "Modem Preset"
+ },
+ "okToMqtt": {
+ "description": "When set to true, this configuration indicates that the user approves the packet to be uploaded to MQTT. If set to false, remote nodes are requested not to forward packets to MQTT",
+ "label": "OK to MQTT"
+ },
+ "overrideDutyCycle": {
+ "description": "Overschrijf Duty Cycle",
+ "label": "Overschrijf Duty Cycle"
+ },
+ "overrideFrequency": {
+ "description": "Override frequency",
+ "label": "Override Frequency"
+ },
+ "region": {
+ "description": "Sets the region for your node",
+ "label": "Regio"
+ },
+ "spreadingFactor": {
+ "description": "Indicates the number of chirps per symbol",
+ "label": "Spreading Factor"
+ },
+ "transmitEnabled": {
+ "description": "Enable/Disable transmit (TX) from the LoRa radio",
+ "label": "Transmit Enabled"
+ },
+ "transmitPower": {
+ "description": "Max transmit power",
+ "label": "Transmit Power"
+ },
+ "usePreset": {
+ "description": "Use one of the predefined modem presets",
+ "label": "Use Preset"
+ },
+ "meshSettings": {
+ "description": "Settings for the LoRa mesh",
+ "label": "Mesh Settings"
+ },
+ "waveformSettings": {
+ "description": "Settings for the LoRa waveform",
+ "label": "Waveform Settings"
+ },
+ "radioSettings": {
+ "label": "Radio Settings",
+ "description": "Settings for the LoRa radio"
+ }
+ },
+ "network": {
+ "title": "WiFi Config",
+ "description": "WiFi radio configuration",
+ "note": "Note: Some devices (ESP32) cannot use both Bluetooth and WiFi at the same time.",
+ "addressMode": {
+ "description": "Address assignment selection",
+ "label": "Address Mode"
+ },
+ "dns": {
+ "description": "DNS Server",
+ "label": "DNS"
+ },
+ "ethernetEnabled": {
+ "description": "Enable or disable the Ethernet port",
+ "label": "Enabled"
+ },
+ "gateway": {
+ "description": "Default Gateway",
+ "label": "Gateway"
+ },
+ "ip": {
+ "description": "IP Address",
+ "label": "IP-adres"
+ },
+ "psk": {
+ "description": "Network password",
+ "label": "PSK"
+ },
+ "ssid": {
+ "description": "Network name",
+ "label": "SSID"
+ },
+ "subnet": {
+ "description": "Subnet Mask",
+ "label": "Subnet"
+ },
+ "wifiEnabled": {
+ "description": "Enable or disable the WiFi radio",
+ "label": "Enabled"
+ },
+ "meshViaUdp": {
+ "label": "Mesh via UDP"
+ },
+ "ntpServer": {
+ "label": "NTP Server"
+ },
+ "rsyslogServer": {
+ "label": "Rsyslog Server"
+ },
+ "ethernetConfigSettings": {
+ "description": "Ethernet port configuration",
+ "label": "Ethernet Config"
+ },
+ "ipConfigSettings": {
+ "description": "IP configuration",
+ "label": "IP Config"
+ },
+ "ntpConfigSettings": {
+ "description": "NTP configuration",
+ "label": "NTP Config"
+ },
+ "rsyslogConfigSettings": {
+ "description": "Rsyslog configuration",
+ "label": "Rsyslog Config"
+ },
+ "udpConfigSettings": {
+ "description": "UDP over Mesh configuration",
+ "label": "UDP Configuratie"
+ }
+ },
+ "position": {
+ "title": "Position Settings",
+ "description": "Settings for the position module",
+ "broadcastInterval": {
+ "description": "How often your position is sent out over the mesh",
+ "label": "Broadcast Interval"
+ },
+ "enablePin": {
+ "description": "GPS module enable pin override",
+ "label": "Enable Pin"
+ },
+ "fixedPosition": {
+ "description": "Don't report GPS position, but a manually-specified one",
+ "label": "Fixed Position"
+ },
+ "gpsMode": {
+ "description": "Configure whether device GPS is Enabled, Disabled, or Not Present",
+ "label": "GPS Mode"
+ },
+ "gpsUpdateInterval": {
+ "description": "How often a GPS fix should be acquired",
+ "label": "GPS Update Interval"
+ },
+ "positionFlags": {
+ "description": "Optional fields to include when assembling position messages. The more fields are selected, the larger the message will be leading to longer airtime usage and a higher risk of packet loss.",
+ "label": "Position Flags"
+ },
+ "receivePin": {
+ "description": "GPS module RX pin override",
+ "label": "Receive Pin"
+ },
+ "smartPositionEnabled": {
+ "description": "Only send position when there has been a meaningful change in location",
+ "label": "Enable Smart Position"
+ },
+ "smartPositionMinDistance": {
+ "description": "Minimum distance (in meters) that must be traveled before a position update is sent",
+ "label": "Smart Position Minimum Distance"
+ },
+ "smartPositionMinInterval": {
+ "description": "Minimum interval (in seconds) that must pass before a position update is sent",
+ "label": "Smart Position Minimum Interval"
+ },
+ "transmitPin": {
+ "description": "GPS module TX pin override",
+ "label": "Transmit Pin"
+ },
+ "intervalsSettings": {
+ "description": "How often to send position updates",
+ "label": "Intervals"
+ },
+ "flags": {
+ "placeholder": "Select position flags...",
+ "altitude": "Altitude",
+ "altitudeGeoidalSeparation": "Altitude Geoidal Separation",
+ "altitudeMsl": "Altitude is Mean Sea Level",
+ "dop": "Dilution of precision (DOP) PDOP used by default",
+ "hdopVdop": "If DOP is set, use HDOP / VDOP values instead of PDOP",
+ "numSatellites": "Number of satellites",
+ "sequenceNumber": "Sequence number",
+ "timestamp": "Tijdstempel",
+ "unset": "Terugzetten",
+ "vehicleHeading": "Vehicle heading",
+ "vehicleSpeed": "Vehicle speed"
+ }
+ },
+ "power": {
+ "adcMultiplierOverride": {
+ "description": "Used for tweaking battery voltage reading",
+ "label": "ADC Multiplier Override ratio"
+ },
+ "ina219Address": {
+ "description": "Address of the INA219 battery monitor",
+ "label": "INA219 Address"
+ },
+ "lightSleepDuration": {
+ "description": "How long the device will be in light sleep for",
+ "label": "Light Sleep Duration"
+ },
+ "minimumWakeTime": {
+ "description": "Minimum amount of time the device will stay awake for after receiving a packet",
+ "label": "Minimum Wake Time"
+ },
+ "noConnectionBluetoothDisabled": {
+ "description": "If the device does not receive a Bluetooth connection, the BLE radio will be disabled after this long",
+ "label": "No Connection Bluetooth Disabled"
+ },
+ "powerSavingEnabled": {
+ "description": "Select if powered from a low-current source (i.e. solar), to minimize power consumption as much as possible.",
+ "label": "Energiebesparingsmodus inschakelen"
+ },
+ "shutdownOnBatteryDelay": {
+ "description": "Automatically shutdown node after this long when on battery, 0 for indefinite",
+ "label": "Shutdown on battery delay"
+ },
+ "superDeepSleepDuration": {
+ "description": "How long the device will be in super deep sleep for",
+ "label": "Super Deep Sleep Duration"
+ },
+ "powerConfigSettings": {
+ "description": "Settings for the power module",
+ "label": "Energie configuratie"
+ },
+ "sleepSettings": {
+ "description": "Sleep settings for the power module",
+ "label": "Sleep Settings"
+ }
+ },
+ "security": {
+ "description": "Settings for the Security configuration",
+ "title": "Security Settings",
+ "button_backupKey": "Backup Key",
+ "adminChannelEnabled": {
+ "description": "Allow incoming device control over the insecure legacy admin channel",
+ "label": "Allow Legacy Admin"
+ },
+ "enableDebugLogApi": {
+ "description": "Output live debug logging over serial, view and export position-redacted device logs over Bluetooth",
+ "label": "Enable Debug Log API"
+ },
+ "managed": {
+ "description": "If enabled, device configuration options are only able to be changed remotely by a Remote Admin node via admin messages. Do not enable this option unless at least one suitable Remote Admin node has been setup, and the public key is stored in one of the fields above.",
+ "label": "Managed"
+ },
+ "privateKey": {
+ "description": "Used to create a shared key with a remote device",
+ "label": "Privésleutel"
+ },
+ "publicKey": {
+ "description": "Sent out to other nodes on the mesh to allow them to compute a shared secret key",
+ "label": "Publieke sleutel"
+ },
+ "primaryAdminKey": {
+ "description": "The primary public key authorized to send admin messages to this node",
+ "label": "Primary Admin Key"
+ },
+ "secondaryAdminKey": {
+ "description": "The secondary public key authorized to send admin messages to this node",
+ "label": "Secondary Admin Key"
+ },
+ "serialOutputEnabled": {
+ "description": "Serial Console over the Stream API",
+ "label": "Serial Output Enabled"
+ },
+ "tertiaryAdminKey": {
+ "description": "The tertiary public key authorized to send admin messages to this node",
+ "label": "Tertiary Admin Key"
+ },
+ "adminSettings": {
+ "description": "Settings for Admin",
+ "label": "Admin Settings"
+ },
+ "loggingSettings": {
+ "description": "Settings for Logging",
+ "label": "Logging Settings"
+ }
+ },
+ "user": {
+ "title": "User Settings",
+ "description": "Configure your device name and identity settings",
+ "longName": {
+ "label": "Long Name",
+ "description": "Your full display name (1-40 characters)",
+ "validation": {
+ "min": "Long name must be at least 1 character",
+ "max": "Long name must be at most 40 characters"
+ }
+ },
+ "shortName": {
+ "label": "Short Name",
+ "description": "Your abbreviated name (2-4 characters)",
+ "validation": {
+ "min": "Short name must be at least 2 characters",
+ "max": "Short name must be at most 4 characters"
+ }
+ },
+ "isUnmessageable": {
+ "label": "Niet berichtbaar",
+ "description": "Used to identify unmonitored or infrastructure nodes so that messaging is not available to nodes that will never respond."
+ },
+ "isLicensed": {
+ "label": "Licensed amateur radio (HAM)",
+ "description": "Enable if you are a licensed amateur radio operator, enabling this option disables encryption and is not compatible with the default Meshtastic network."
+ }
+ }
+}
diff --git a/packages/web/public/i18n/locales/nl-NL/dashboard.json b/packages/web/public/i18n/locales/nl-NL/dashboard.json
index 260a9738..3f7c26d6 100644
--- a/packages/web/public/i18n/locales/nl-NL/dashboard.json
+++ b/packages/web/public/i18n/locales/nl-NL/dashboard.json
@@ -1,12 +1,12 @@
{
- "dashboard": {
- "title": "Connected Devices",
- "description": "Manage your connected Meshtastic devices.",
- "connectionType_ble": "BLE",
- "connectionType_serial": "Serieel",
- "connectionType_network": "Netwerk",
- "noDevicesTitle": "No devices connected",
- "noDevicesDescription": "Connect a new device to get started.",
- "button_newConnection": "New Connection"
- }
+ "dashboard": {
+ "title": "Connected Devices",
+ "description": "Manage your connected Meshtastic devices.",
+ "connectionType_ble": "BLE",
+ "connectionType_serial": "Serieel",
+ "connectionType_network": "Netwerk",
+ "noDevicesTitle": "No devices connected",
+ "noDevicesDescription": "Connect a new device to get started.",
+ "button_newConnection": "New Connection"
+ }
}
diff --git a/packages/web/public/i18n/locales/nl-NL/dialog.json b/packages/web/public/i18n/locales/nl-NL/dialog.json
index fad2cd24..ddfe5d20 100644
--- a/packages/web/public/i18n/locales/nl-NL/dialog.json
+++ b/packages/web/public/i18n/locales/nl-NL/dialog.json
@@ -1,193 +1,221 @@
{
- "deleteMessages": {
- "description": "This action will clear all message history. This cannot be undone. Are you sure you want to continue?",
- "title": "Clear All Messages"
- },
- "deviceName": {
- "description": "The Device will restart once the config is saved.",
- "longName": "Long Name",
- "shortName": "Short Name",
- "title": "Change Device Name",
- "validation": {
- "longNameMax": "Long name must not be more than 40 characters",
- "shortNameMax": "Short name must not be more than 4 characters",
- "longNameMin": "Long name must have at least 1 character",
- "shortNameMin": "Short name must have at least 1 character"
- }
- },
- "import": {
- "description": "The current LoRa configuration will be overridden.",
- "error": {
- "invalidUrl": "Invalid Meshtastic URL"
- },
- "channelPrefix": "Channel: ",
- "channelSetUrl": "Channel Set/QR Code URL",
- "channels": "Channels:",
- "usePreset": "Use Preset?",
- "title": "Import Channel Set"
- },
- "locationResponse": {
- "title": "Location: {{identifier}}",
- "altitude": "Altitude: ",
- "coordinates": "Coordinates: ",
- "noCoordinates": "No Coordinates"
- },
- "pkiRegenerateDialog": {
- "title": "Regenerate Pre-Shared Key?",
- "description": "Are you sure you want to regenerate the pre-shared key?",
- "regenerate": "Regenerate"
- },
- "newDeviceDialog": {
- "title": "Connect New Device",
- "https": "https",
- "http": "http",
- "tabHttp": "HTTP",
- "tabBluetooth": "Bluetooth",
- "tabSerial": "Serieel",
- "useHttps": "Use HTTPS",
- "connecting": "Connecting...",
- "connect": "Verbinding maken",
- "connectionFailedAlert": {
- "title": "Connection Failed",
- "descriptionPrefix": "Could not connect to the device. ",
- "httpsHint": "If using HTTPS, you may need to accept a self-signed certificate first. ",
- "openLinkPrefix": "Please open ",
- "openLinkSuffix": " in a new tab",
- "acceptTlsWarningSuffix": ", accept any TLS warnings if prompted, then try again",
- "learnMoreLink": "Learn more"
- },
- "httpConnection": {
- "label": "IP Address/Hostname",
- "placeholder": "000.000.000.000 / meshtastic.local"
- },
- "serialConnection": {
- "noDevicesPaired": "No devices paired yet.",
- "newDeviceButton": "New device",
- "deviceIdentifier": "# {{index}} - {{vendorId}} - {{productId}}"
- },
- "bluetoothConnection": {
- "noDevicesPaired": "No devices paired yet.",
- "newDeviceButton": "New device",
- "connectionFailed": "Connection failed",
- "deviceDisconnected": "Device disconnected",
- "unknownDevice": "Unknown Device",
- "errorLoadingDevices": "Error loading devices",
- "unknownErrorLoadingDevices": "Unknown error loading devices"
- },
- "validation": {
- "requiresWebBluetooth": "This connection type requires <0>Web Bluetooth0>. Please use a supported browser, like Chrome or Edge.",
- "requiresWebSerial": "This connection type requires <0>Web Serial0>. Please use a supported browser, like Chrome or Edge.",
- "requiresSecureContext": "This application requires a <0>secure context0>. Please connect using HTTPS or localhost.",
- "additionallyRequiresSecureContext": "Additionally, it requires a <0>secure context0>. Please connect using HTTPS or localhost."
- }
- },
- "nodeDetails": {
- "message": "Bericht",
- "requestPosition": "Request Position",
- "traceRoute": "Trace Route",
- "airTxUtilization": "Air TX utilization",
- "allRawMetrics": "All Raw Metrics:",
- "batteryLevel": "Battery level",
- "channelUtilization": "Channel utilization",
- "details": "Details:",
- "deviceMetrics": "Device Metrics:",
- "hardware": "Hardware: ",
- "lastHeard": "Last Heard: ",
- "nodeHexPrefix": "Node Hex: ",
- "nodeNumber": "Node Number: ",
- "position": "Position:",
- "role": "Role: ",
- "uptime": "Uptime: ",
- "voltage": "Spanning",
- "title": "Node Details for {{identifier}}",
- "ignoreNode": "Ignore node",
- "removeNode": "Remove node",
- "unignoreNode": "Unignore node",
- "security": "Security:",
- "publicKey": "Public Key: ",
- "messageable": "Messageable: ",
- "KeyManuallyVerifiedTrue": "Public Key has been manually verified",
- "KeyManuallyVerifiedFalse": "Public Key is not manually verified"
- },
- "pkiBackup": {
- "loseKeysWarning": "If you lose your keys, you will need to reset your device.",
- "secureBackup": "Its important to backup your public and private keys and store your backup securely!",
- "footer": "=== END OF KEYS ===",
- "header": "=== MESHTASTIC KEYS FOR {{longName}} ({{shortName}}) ===",
- "privateKey": "Private Key:",
- "publicKey": "Public Key:",
- "fileName": "meshtastic_keys_{{longName}}_{{shortName}}.txt",
- "title": "Backup Keys"
- },
- "pkiBackupReminder": {
- "description": "We recommend backing up your key data regularly. Would you like to back up now?",
- "title": "Backup Reminder",
- "remindLaterPrefix": "Remind me in",
- "remindNever": "Never remind me",
- "backupNow": "Back up now"
- },
- "pkiRegenerate": {
- "description": "Are you sure you want to regenerate key pair?",
- "title": "Regenerate Key Pair"
- },
- "qr": {
- "addChannels": "Add Channels",
- "replaceChannels": "Replace Channels",
- "description": "The current LoRa configuration will also be shared.",
- "sharableUrl": "Sharable URL",
- "title": "Generate QR Code"
- },
- "reboot": {
- "title": "Reboot device",
- "description": "Reboot now or schedule a reboot of the connected node. Optionally, you can choose to reboot into OTA (Over-the-Air) mode.",
- "ota": "Reboot into OTA mode",
- "enterDelay": "Enter delay",
- "scheduled": "Reboot has been scheduled",
- "schedule": "Schedule reboot",
- "now": "Reboot now",
- "cancel": "Cancel scheduled reboot"
- },
- "refreshKeys": {
- "description": {
- "acceptNewKeys": "This will remove the node from device and request new keys.",
- "keyMismatchReasonSuffix": ". This is due to the remote node's current public key does not match the previously stored key for this node.",
- "unableToSendDmPrefix": "Your node is unable to send a direct message to node: "
- },
- "acceptNewKeys": "Accept New Keys",
- "title": "Keys Mismatch - {{identifier}}"
- },
- "removeNode": {
- "description": "Are you sure you want to remove this Node?",
- "title": "Remove Node?"
- },
- "shutdown": {
- "title": "Schedule Shutdown",
- "description": "Turn off the connected node after x minutes."
- },
- "traceRoute": {
- "routeToDestination": "Route to destination:",
- "routeBack": "Route back:"
- },
- "tracerouteResponse": {
- "title": "Traceroute: {{identifier}}"
- },
- "unsafeRoles": {
- "confirmUnderstanding": "Yes, I know what I'm doing",
- "conjunction": " and the blog post about ",
- "postamble": " and understand the implications of changing the role.",
- "preamble": "I have read the ",
- "choosingRightDeviceRole": "Choosing The Right Device Role",
- "deviceRoleDocumentation": "Device Role Documentation",
- "title": "Weet u het zeker?"
- },
- "managedMode": {
- "confirmUnderstanding": "Yes, I know what I'm doing",
- "title": "Weet u het zeker?",
- "description": "Enabling Managed Mode blocks client applications (including the web client) from writing configurations to a radio. Once enabled, radio configurations can only be changed through Remote Admin messages. This setting is not required for remote node administration."
- },
- "clientNotification": {
- "title": "Client Notification",
- "TraceRoute can only be sent once every 30 seconds": "TraceRoute can only be sent once every 30 seconds",
- "Compromised keys were detected and regenerated.": "Compromised keys were detected and regenerated."
- }
+ "deleteMessages": {
+ "description": "This action will clear all message history. This cannot be undone. Are you sure you want to continue?",
+ "title": "Clear All Messages"
+ },
+ "deviceName": {
+ "description": "The Device will restart once the config is saved.",
+ "longName": "Long Name",
+ "shortName": "Short Name",
+ "title": "Change Device Name",
+ "validation": {
+ "longNameMax": "Long name must not be more than 40 characters",
+ "shortNameMax": "Short name must not be more than 4 characters",
+ "longNameMin": "Long name must have at least 1 character",
+ "shortNameMin": "Short name must have at least 1 character"
+ }
+ },
+ "import": {
+ "description": "The current LoRa configuration will be overridden.",
+ "error": {
+ "invalidUrl": "Invalid Meshtastic URL"
+ },
+ "channelPrefix": "Channel: ",
+ "primary": "Primary ",
+ "doNotImport": "No not import",
+ "channelName": "Naam",
+ "channelSlot": "Slot",
+ "channelSetUrl": "Channel Set/QR Code URL",
+ "useLoraConfig": "Import LoRa Config",
+ "presetDescription": "The current LoRa Config will be replaced.",
+ "title": "Import Channel Set"
+ },
+ "locationResponse": {
+ "title": "Location: {{identifier}}",
+ "altitude": "Altitude: ",
+ "coordinates": "Coordinates: ",
+ "noCoordinates": "No Coordinates"
+ },
+ "pkiRegenerateDialog": {
+ "title": "Regenerate Pre-Shared Key?",
+ "description": "Are you sure you want to regenerate the pre-shared key?",
+ "regenerate": "Regenerate"
+ },
+ "newDeviceDialog": {
+ "title": "Connect New Device",
+ "https": "https",
+ "http": "http",
+ "tabHttp": "HTTP",
+ "tabBluetooth": "Bluetooth",
+ "tabSerial": "Serieel",
+ "useHttps": "Use HTTPS",
+ "connecting": "Connecting...",
+ "connect": "Verbinding maken",
+ "connectionFailedAlert": {
+ "title": "Connection Failed",
+ "descriptionPrefix": "Could not connect to the device. ",
+ "httpsHint": "If using HTTPS, you may need to accept a self-signed certificate first. ",
+ "openLinkPrefix": "Please open ",
+ "openLinkSuffix": " in a new tab",
+ "acceptTlsWarningSuffix": ", accept any TLS warnings if prompted, then try again",
+ "learnMoreLink": "Learn more"
+ },
+ "httpConnection": {
+ "label": "IP Address/Hostname",
+ "placeholder": "000.000.000.000 / meshtastic.local"
+ },
+ "serialConnection": {
+ "noDevicesPaired": "No devices paired yet.",
+ "newDeviceButton": "New device",
+ "deviceIdentifier": "# {{index}} - {{vendorId}} - {{productId}}"
+ },
+ "bluetoothConnection": {
+ "noDevicesPaired": "No devices paired yet.",
+ "newDeviceButton": "New device",
+ "connectionFailed": "Connection failed",
+ "deviceDisconnected": "Device disconnected",
+ "unknownDevice": "Unknown Device",
+ "errorLoadingDevices": "Error loading devices",
+ "unknownErrorLoadingDevices": "Unknown error loading devices"
+ },
+ "validation": {
+ "requiresWebBluetooth": "This connection type requires <0>Web Bluetooth0>. Please use a supported browser, like Chrome or Edge.",
+ "requiresWebSerial": "This connection type requires <0>Web Serial0>. Please use a supported browser, like Chrome or Edge.",
+ "requiresSecureContext": "This application requires a <0>secure context0>. Please connect using HTTPS or localhost.",
+ "additionallyRequiresSecureContext": "Additionally, it requires a <0>secure context0>. Please connect using HTTPS or localhost."
+ }
+ },
+ "nodeDetails": {
+ "message": "Bericht",
+ "requestPosition": "Request Position",
+ "traceRoute": "Trace Route",
+ "airTxUtilization": "Air TX utilization",
+ "allRawMetrics": "All Raw Metrics:",
+ "batteryLevel": "Battery level",
+ "channelUtilization": "Channel utilization",
+ "details": "Details:",
+ "deviceMetrics": "Device Metrics:",
+ "hardware": "Hardware: ",
+ "lastHeard": "Last Heard: ",
+ "nodeHexPrefix": "Node Hex: ",
+ "nodeNumber": "Node Number: ",
+ "position": "Position:",
+ "role": "Role: ",
+ "uptime": "Uptime: ",
+ "voltage": "Spanning",
+ "title": "Node Details for {{identifier}}",
+ "ignoreNode": "Ignore node",
+ "removeNode": "Remove node",
+ "unignoreNode": "Unignore node",
+ "security": "Security:",
+ "publicKey": "Public Key: ",
+ "messageable": "Messageable: ",
+ "KeyManuallyVerifiedTrue": "Public Key has been manually verified",
+ "KeyManuallyVerifiedFalse": "Public Key is not manually verified"
+ },
+ "pkiBackup": {
+ "loseKeysWarning": "If you lose your keys, you will need to reset your device.",
+ "secureBackup": "Its important to backup your public and private keys and store your backup securely!",
+ "footer": "=== END OF KEYS ===",
+ "header": "=== MESHTASTIC KEYS FOR {{longName}} ({{shortName}}) ===",
+ "privateKey": "Private Key:",
+ "publicKey": "Public Key:",
+ "fileName": "meshtastic_keys_{{longName}}_{{shortName}}.txt",
+ "title": "Backup Keys"
+ },
+ "pkiBackupReminder": {
+ "description": "We recommend backing up your key data regularly. Would you like to back up now?",
+ "title": "Backup Reminder",
+ "remindLaterPrefix": "Remind me in",
+ "remindNever": "Never remind me",
+ "backupNow": "Back up now"
+ },
+ "pkiRegenerate": {
+ "description": "Are you sure you want to regenerate key pair?",
+ "title": "Regenerate Key Pair"
+ },
+ "qr": {
+ "addChannels": "Add Channels",
+ "replaceChannels": "Replace Channels",
+ "description": "The current LoRa configuration will also be shared.",
+ "sharableUrl": "Sharable URL",
+ "title": "Generate QR Code"
+ },
+ "reboot": {
+ "title": "Reboot device",
+ "description": "Reboot now or schedule a reboot of the connected node. Optionally, you can choose to reboot into OTA (Over-the-Air) mode.",
+ "ota": "Reboot into OTA mode",
+ "enterDelay": "Enter delay",
+ "scheduled": "Reboot has been scheduled",
+ "schedule": "Schedule reboot",
+ "now": "Reboot now",
+ "cancel": "Cancel scheduled reboot"
+ },
+ "refreshKeys": {
+ "description": {
+ "acceptNewKeys": "This will remove the node from device and request new keys.",
+ "keyMismatchReasonSuffix": ". This is due to the remote node's current public key does not match the previously stored key for this node.",
+ "unableToSendDmPrefix": "Your node is unable to send a direct message to node: "
+ },
+ "acceptNewKeys": "Accept New Keys",
+ "title": "Keys Mismatch - {{identifier}}"
+ },
+ "removeNode": {
+ "description": "Are you sure you want to remove this Node?",
+ "title": "Remove Node?"
+ },
+ "shutdown": {
+ "title": "Schedule Shutdown",
+ "description": "Turn off the connected node after x minutes."
+ },
+ "traceRoute": {
+ "routeToDestination": "Route to destination:",
+ "routeBack": "Route back:"
+ },
+ "tracerouteResponse": {
+ "title": "Traceroute: {{identifier}}"
+ },
+ "unsafeRoles": {
+ "confirmUnderstanding": "Yes, I know what I'm doing",
+ "conjunction": " and the blog post about ",
+ "postamble": " and understand the implications of changing the role.",
+ "preamble": "I have read the ",
+ "choosingRightDeviceRole": "Choosing The Right Device Role",
+ "deviceRoleDocumentation": "Device Role Documentation",
+ "title": "Weet u het zeker?"
+ },
+ "managedMode": {
+ "confirmUnderstanding": "Yes, I know what I'm doing",
+ "title": "Weet u het zeker?",
+ "description": "Enabling Managed Mode blocks client applications (including the web client) from writing configurations to a radio. Once enabled, radio configurations can only be changed through Remote Admin messages. This setting is not required for remote node administration."
+ },
+ "clientNotification": {
+ "title": "Client Notification",
+ "TraceRoute can only be sent once every 30 seconds": "TraceRoute can only be sent once every 30 seconds",
+ "Compromised keys were detected and regenerated.": "Compromised keys were detected and regenerated."
+ },
+ "resetNodeDb": {
+ "title": "Reset Node Database",
+ "description": "This will clear all nodes from the connected device's node database and clear all message history in the client. This cannot be undone. Are you sure you want to continue?",
+ "confirm": "Reset Node Database",
+ "failedTitle": "There was an error resetting the Node DB. Please try again."
+ },
+ "clearAllStores": {
+ "title": "Clear All Local Storage",
+ "description": "This will clear all locally stored data, including message history and node databases for all previously connected devices. This will require you to reconnect to your node once complete and cannot be undone. Are you sure you want to continue?",
+ "confirm": "Clear all local storage",
+ "failedTitle": "There was an error clearing local storage. Please try again."
+ },
+ "factoryResetDevice": {
+ "title": "Factory Reset Device",
+ "description": "This will factory reset the connected device, erasing all configurations and data on the device as well as all nodes and messages saved in the client. This cannot be undone. Are you sure you want to continue?",
+ "confirm": "Factory Reset Device",
+ "failedTitle": "There was an error performing the factory reset. Please try again."
+ },
+ "factoryResetConfig": {
+ "title": "Factory Reset Config",
+ "description": "This will factory reset the configuration on the connected device, erasing all configurations on the device. This cannot be undone. Are you sure you want to continue?",
+ "confirm": "Factory Reset Config",
+ "failedTitle": "There was an error performing the factory reset. Please try again."
+ }
}
diff --git a/packages/web/public/i18n/locales/nl-NL/map.json b/packages/web/public/i18n/locales/nl-NL/map.json
new file mode 100644
index 00000000..786abaa4
--- /dev/null
+++ b/packages/web/public/i18n/locales/nl-NL/map.json
@@ -0,0 +1,38 @@
+{
+ "maplibre": {
+ "GeolocateControl.FindMyLocation": "Find my location",
+ "NavigationControl.ZoomIn": "Zoom in",
+ "NavigationControl.ZoomOut": "Zoom out",
+ "CooperativeGesturesHandler.WindowsHelpText": "Use Ctrl + scroll to zoom the map",
+ "CooperativeGesturesHandler.MacHelpText": "Use ⌘ + scroll to zoom the map",
+ "CooperativeGesturesHandler.MobileHelpText": "Use two fingers to move the map"
+ },
+ "layerTool": {
+ "nodeMarkers": "Show nodes",
+ "directNeighbors": "Show direct connections",
+ "remoteNeighbors": "Show remote connections",
+ "positionPrecision": "Show position precision",
+ "traceroutes": "Show traceroutes",
+ "waypoints": "Show waypoints"
+ },
+ "mapMenu": {
+ "locateAria": "Locate my node",
+ "layersAria": "Change map style"
+ },
+ "waypointDetail": {
+ "edit": "Wijzig",
+ "description": "Description:",
+ "createdBy": "Edited by:",
+ "createdDate": "Created:",
+ "updated": "Updated:",
+ "expires": "Expires:",
+ "distance": "Distance:",
+ "bearing": "Absolute bearing:",
+ "lockedTo": "Locked by:",
+ "latitude": "Latitude:",
+ "longitude": "Longitude:"
+ },
+ "myNode": {
+ "tooltip": "This device"
+ }
+}
diff --git a/packages/web/public/i18n/locales/nl-NL/messages.json b/packages/web/public/i18n/locales/nl-NL/messages.json
index 198a335b..2572ee9e 100644
--- a/packages/web/public/i18n/locales/nl-NL/messages.json
+++ b/packages/web/public/i18n/locales/nl-NL/messages.json
@@ -1,39 +1,39 @@
{
- "page": {
- "title": "Messages: {{chatName}}",
- "placeholder": "Enter Message"
- },
- "emptyState": {
- "title": "Select a Chat",
- "text": "No messages yet."
- },
- "selectChatPrompt": {
- "text": "Select a channel or node to start messaging."
- },
- "sendMessage": {
- "placeholder": "Enter your message here...",
- "sendButton": "Verzend"
- },
- "actionsMenu": {
- "addReactionLabel": "Add Reaction",
- "replyLabel": "Reply"
- },
- "deliveryStatus": {
- "delivered": {
- "label": "Message delivered",
- "displayText": "Message delivered"
- },
- "failed": {
- "label": "Message delivery failed",
- "displayText": "Delivery failed"
- },
- "unknown": {
- "label": "Message status unknown",
- "displayText": "Unknown state"
- },
- "waiting": {
- "label": "Sending message",
- "displayText": "Waiting for delivery"
- }
- }
+ "page": {
+ "title": "Messages: {{chatName}}",
+ "placeholder": "Enter Message"
+ },
+ "emptyState": {
+ "title": "Select a Chat",
+ "text": "No messages yet."
+ },
+ "selectChatPrompt": {
+ "text": "Select a channel or node to start messaging."
+ },
+ "sendMessage": {
+ "placeholder": "Enter your message here...",
+ "sendButton": "Verzend"
+ },
+ "actionsMenu": {
+ "addReactionLabel": "Add Reaction",
+ "replyLabel": "Reply"
+ },
+ "deliveryStatus": {
+ "delivered": {
+ "label": "Message delivered",
+ "displayText": "Message delivered"
+ },
+ "failed": {
+ "label": "Message delivery failed",
+ "displayText": "Delivery failed"
+ },
+ "unknown": {
+ "label": "Message status unknown",
+ "displayText": "Unknown state"
+ },
+ "waiting": {
+ "label": "Sending message",
+ "displayText": "Waiting for delivery"
+ }
+ }
}
diff --git a/packages/web/public/i18n/locales/nl-NL/moduleConfig.json b/packages/web/public/i18n/locales/nl-NL/moduleConfig.json
index 833e45e2..d0e6a33f 100644
--- a/packages/web/public/i18n/locales/nl-NL/moduleConfig.json
+++ b/packages/web/public/i18n/locales/nl-NL/moduleConfig.json
@@ -1,448 +1,448 @@
{
- "page": {
- "tabAmbientLighting": "Sfeerverlichting",
- "tabAudio": "Geluid",
- "tabCannedMessage": "Canned",
- "tabDetectionSensor": "Detectie Sensor",
- "tabExternalNotification": "Ext Notif",
- "tabMqtt": "MQTT",
- "tabNeighborInfo": "Neighbor Info",
- "tabPaxcounter": "Paxcounter",
- "tabRangeTest": "Bereik Test",
- "tabSerial": "Serieel",
- "tabStoreAndForward": "S&F",
- "tabTelemetry": "Telemetrie"
- },
- "ambientLighting": {
- "title": "Ambient Lighting Settings",
- "description": "Settings for the Ambient Lighting module",
- "ledState": {
- "label": "LED State",
- "description": "Sets LED to on or off"
- },
- "current": {
- "label": "Huidige",
- "description": "Sets the current for the LED output. Default is 10"
- },
- "red": {
- "label": "Rood",
- "description": "Sets the red LED level. Values are 0-255"
- },
- "green": {
- "label": "Groen",
- "description": "Sets the green LED level. Values are 0-255"
- },
- "blue": {
- "label": "Blauw",
- "description": "Sets the blue LED level. Values are 0-255"
- }
- },
- "audio": {
- "title": "Audio Settings",
- "description": "Settings for the Audio module",
- "codec2Enabled": {
- "label": "Codec 2 Enabled",
- "description": "Enable Codec 2 audio encoding"
- },
- "pttPin": {
- "label": "PTT Pin",
- "description": "GPIO pin to use for PTT"
- },
- "bitrate": {
- "label": "Bitrate",
- "description": "Bitrate to use for audio encoding"
- },
- "i2sWs": {
- "label": "i2S WS",
- "description": "GPIO pin to use for i2S WS"
- },
- "i2sSd": {
- "label": "i2S SD",
- "description": "GPIO pin to use for i2S SD"
- },
- "i2sDin": {
- "label": "i2S DIN",
- "description": "GPIO pin to use for i2S DIN"
- },
- "i2sSck": {
- "label": "i2S SCK",
- "description": "GPIO pin to use for i2S SCK"
- }
- },
- "cannedMessage": {
- "title": "Canned Message Settings",
- "description": "Settings for the Canned Message module",
- "moduleEnabled": {
- "label": "Module Enabled",
- "description": "Enable Canned Message"
- },
- "rotary1Enabled": {
- "label": "Rotary Encoder #1 Enabled",
- "description": "Enable the rotary encoder"
- },
- "inputbrokerPinA": {
- "label": "Encoder Pin A",
- "description": "GPIO Pin Value (1-39) For encoder port A"
- },
- "inputbrokerPinB": {
- "label": "Encoder Pin B",
- "description": "GPIO Pin Value (1-39) For encoder port B"
- },
- "inputbrokerPinPress": {
- "label": "Encoder Pin Press",
- "description": "GPIO Pin Value (1-39) For encoder Press"
- },
- "inputbrokerEventCw": {
- "label": "Clockwise event",
- "description": "Select input event."
- },
- "inputbrokerEventCcw": {
- "label": "Counter Clockwise event",
- "description": "Select input event."
- },
- "inputbrokerEventPress": {
- "label": "Press event",
- "description": "Select input event"
- },
- "updown1Enabled": {
- "label": "Up Down enabled",
- "description": "Enable the up / down encoder"
- },
- "allowInputSource": {
- "label": "Allow Input Source",
- "description": "Select from: '_any', 'rotEnc1', 'upDownEnc1', 'cardkb'"
- },
- "sendBell": {
- "label": "Send Bell",
- "description": "Sends a bell character with each message"
- }
- },
- "detectionSensor": {
- "title": "Detection Sensor Settings",
- "description": "Settings for the Detection Sensor module",
- "enabled": {
- "label": "Enabled",
- "description": "Enable or disable Detection Sensor Module"
- },
- "minimumBroadcastSecs": {
- "label": "Minimum Broadcast Seconds",
- "description": "The interval in seconds of how often we can send a message to the mesh when a state change is detected"
- },
- "stateBroadcastSecs": {
- "label": "State Broadcast Seconds",
- "description": "The interval in seconds of how often we should send a message to the mesh with the current state regardless of changes"
- },
- "sendBell": {
- "label": "Send Bell",
- "description": "Send ASCII bell with alert message"
- },
- "name": {
- "label": "Friendly Name",
- "description": "Used to format the message sent to mesh, max 20 Characters"
- },
- "monitorPin": {
- "label": "Monitor Pin",
- "description": "The GPIO pin to monitor for state changes"
- },
- "detectionTriggerType": {
- "label": "Detection Triggered Type",
- "description": "The type of trigger event to be used"
- },
- "usePullup": {
- "label": "Use Pullup",
- "description": "Whether or not use INPUT_PULLUP mode for GPIO pin"
- }
- },
- "externalNotification": {
- "title": "External Notification Settings",
- "description": "Configure the external notification module",
- "enabled": {
- "label": "Module Enabled",
- "description": "Enable External Notification"
- },
- "outputMs": {
- "label": "Output MS",
- "description": "Output MS"
- },
- "output": {
- "label": "Output",
- "description": "Output"
- },
- "outputVibra": {
- "label": "Output Vibrate",
- "description": "Output Vibrate"
- },
- "outputBuzzer": {
- "label": "Output Buzzer",
- "description": "Output Buzzer"
- },
- "active": {
- "label": "Active",
- "description": "Active"
- },
- "alertMessage": {
- "label": "Alert Message",
- "description": "Alert Message"
- },
- "alertMessageVibra": {
- "label": "Alert Message Vibrate",
- "description": "Alert Message Vibrate"
- },
- "alertMessageBuzzer": {
- "label": "Alert Message Buzzer",
- "description": "Alert Message Buzzer"
- },
- "alertBell": {
- "label": "Alert Bell",
- "description": "Should an alert be triggered when receiving an incoming bell?"
- },
- "alertBellVibra": {
- "label": "Alert Bell Vibrate",
- "description": "Alert Bell Vibrate"
- },
- "alertBellBuzzer": {
- "label": "Alert Bell Buzzer",
- "description": "Alert Bell Buzzer"
- },
- "usePwm": {
- "label": "Use PWM",
- "description": "Use PWM"
- },
- "nagTimeout": {
- "label": "Nag Timeout",
- "description": "Nag Timeout"
- },
- "useI2sAsBuzzer": {
- "label": "Use I²S Pin as Buzzer",
- "description": "Designate I²S Pin as Buzzer Output"
- }
- },
- "mqtt": {
- "title": "MQTT Settings",
- "description": "Settings for the MQTT module",
- "enabled": {
- "label": "Enabled",
- "description": "Enable or disable MQTT"
- },
- "address": {
- "label": "MQTT Server Address",
- "description": "MQTT server address to use for default/custom servers"
- },
- "username": {
- "label": "MQTT Username",
- "description": "MQTT username to use for default/custom servers"
- },
- "password": {
- "label": "MQTT Password",
- "description": "MQTT password to use for default/custom servers"
- },
- "encryptionEnabled": {
- "label": "Encryption Enabled",
- "description": "Enable or disable MQTT encryption. Note: All messages are sent to the MQTT broker unencrypted if this option is not enabled, even when your uplink channels have encryption keys set. This includes position data."
- },
- "jsonEnabled": {
- "label": "JSON Enabled",
- "description": "Whether to send/consume JSON packets on MQTT"
- },
- "tlsEnabled": {
- "label": "TLS Enabled",
- "description": "Enable or disable TLS"
- },
- "root": {
- "label": "Root topic",
- "description": "MQTT root topic to use for default/custom servers"
- },
- "proxyToClientEnabled": {
- "label": "MQTT Client Proxy Enabled",
- "description": "Utilizes the network connection to proxy MQTT messages to the client."
- },
- "mapReportingEnabled": {
- "label": "Map Reporting Enabled",
- "description": "Your node will periodically send an unencrypted map report packet to the configured MQTT server, this includes id, short and long name, approximate location, hardware model, role, firmware version, LoRa region, modem preset and primary channel name."
- },
- "mapReportSettings": {
- "publishIntervalSecs": {
- "label": "Map Report Publish Interval (s)",
- "description": "Interval in seconds to publish map reports"
- },
- "positionPrecision": {
- "label": "Approximate Location",
- "description": "Position shared will be accurate within this distance",
- "options": {
- "metric_km23": "Within 23 km",
- "metric_km12": "Within 12 km",
- "metric_km5_8": "Within 5.8 km",
- "metric_km2_9": "Within 2.9 km",
- "metric_km1_5": "Within 1.5 km",
- "metric_m700": "Within 700 m",
- "metric_m350": "Within 350 m",
- "metric_m200": "Within 200 m",
- "metric_m90": "Within 90 m",
- "metric_m50": "Within 50 m",
- "imperial_mi15": "Within 15 miles",
- "imperial_mi7_3": "Within 7.3 miles",
- "imperial_mi3_6": "Within 3.6 miles",
- "imperial_mi1_8": "Within 1.8 miles",
- "imperial_mi0_9": "Within 0.9 miles",
- "imperial_mi0_5": "Within 0.5 miles",
- "imperial_mi0_2": "Within 0.2 miles",
- "imperial_ft600": "Within 600 feet",
- "imperial_ft300": "Within 300 feet",
- "imperial_ft150": "Within 150 feet"
- }
- }
- }
- },
- "neighborInfo": {
- "title": "Neighbor Info Settings",
- "description": "Settings for the Neighbor Info module",
- "enabled": {
- "label": "Enabled",
- "description": "Enable or disable Neighbor Info Module"
- },
- "updateInterval": {
- "label": "Update Interval",
- "description": "Interval in seconds of how often we should try to send our Neighbor Info to the mesh"
- }
- },
- "paxcounter": {
- "title": "Paxcounter Settings",
- "description": "Settings for the Paxcounter module",
- "enabled": {
- "label": "Module Enabled",
- "description": "Enable Paxcounter"
- },
- "paxcounterUpdateInterval": {
- "label": "Update Interval (seconds)",
- "description": "How long to wait between sending paxcounter packets"
- },
- "wifiThreshold": {
- "label": "WiFi RSSI Threshold",
- "description": "At what WiFi RSSI level should the counter increase. Defaults to -80."
- },
- "bleThreshold": {
- "label": "BLE RSSI Threshold",
- "description": "At what BLE RSSI level should the counter increase. Defaults to -80."
- }
- },
- "rangeTest": {
- "title": "Range Test Settings",
- "description": "Settings for the Range Test module",
- "enabled": {
- "label": "Module Enabled",
- "description": "Enable Range Test"
- },
- "sender": {
- "label": "Message Interval",
- "description": "How long to wait between sending test packets"
- },
- "save": {
- "label": "Save CSV to storage",
- "description": "ESP32 Only"
- }
- },
- "serial": {
- "title": "Serial Settings",
- "description": "Settings for the Serial module",
- "enabled": {
- "label": "Module Enabled",
- "description": "Enable Serial output"
- },
- "echo": {
- "label": "Echo",
- "description": "Any packets you send will be echoed back to your device"
- },
- "rxd": {
- "label": "Receive Pin",
- "description": "Set the GPIO pin to the RXD pin you have set up."
- },
- "txd": {
- "label": "Transmit Pin",
- "description": "Set the GPIO pin to the TXD pin you have set up."
- },
- "baud": {
- "label": "Baud Rate",
- "description": "The serial baud rate"
- },
- "timeout": {
- "label": "Time-Out",
- "description": "Seconds to wait before we consider your packet as 'done'"
- },
- "mode": {
- "label": "Mode",
- "description": "Select Mode"
- },
- "overrideConsoleSerialPort": {
- "label": "Override Console Serial Port",
- "description": "If you have a serial port connected to the console, this will override it."
- }
- },
- "storeForward": {
- "title": "Store & Forward Settings",
- "description": "Settings for the Store & Forward module",
- "enabled": {
- "label": "Module Enabled",
- "description": "Enable Store & Forward"
- },
- "heartbeat": {
- "label": "Heartbeat Enabled",
- "description": "Enable Store & Forward heartbeat"
- },
- "records": {
- "label": "Aantal records",
- "description": "Number of records to store"
- },
- "historyReturnMax": {
- "label": "History return max",
- "description": "Max number of records to return"
- },
- "historyReturnWindow": {
- "label": "History return window",
- "description": "Retourneer records uit dit tijdvenster (minuten)"
- }
- },
- "telemetry": {
- "title": "Telemetry Settings",
- "description": "Settings for the Telemetry module",
- "deviceUpdateInterval": {
- "label": "Device Metrics",
- "description": "Device metrics update interval (seconds)"
- },
- "environmentUpdateInterval": {
- "label": "Environment metrics update interval (seconds)",
- "description": ""
- },
- "environmentMeasurementEnabled": {
- "label": "Module Enabled",
- "description": "Enable the Environment Telemetry"
- },
- "environmentScreenEnabled": {
- "label": "Displayed on Screen",
- "description": "Show the Telemetry Module on the OLED"
- },
- "environmentDisplayFahrenheit": {
- "label": "Display Fahrenheit",
- "description": "Display temp in Fahrenheit"
- },
- "airQualityEnabled": {
- "label": "Air Quality Enabled",
- "description": "Enable the Air Quality Telemetry"
- },
- "airQualityInterval": {
- "label": "Air Quality Update Interval",
- "description": "How often to send Air Quality data over the mesh"
- },
- "powerMeasurementEnabled": {
- "label": "Power Measurement Enabled",
- "description": "Enable the Power Measurement Telemetry"
- },
- "powerUpdateInterval": {
- "label": "Power Update Interval",
- "description": "How often to send Power data over the mesh"
- },
- "powerScreenEnabled": {
- "label": "Power Screen Enabled",
- "description": "Enable the Power Telemetry Screen"
- }
- }
+ "page": {
+ "tabAmbientLighting": "Sfeerverlichting",
+ "tabAudio": "Geluid",
+ "tabCannedMessage": "Canned",
+ "tabDetectionSensor": "Detectie Sensor",
+ "tabExternalNotification": "Ext Notif",
+ "tabMqtt": "MQTT",
+ "tabNeighborInfo": "Neighbor Info",
+ "tabPaxcounter": "Paxcounter",
+ "tabRangeTest": "Bereik Test",
+ "tabSerial": "Serieel",
+ "tabStoreAndForward": "S&F",
+ "tabTelemetry": "Telemetrie"
+ },
+ "ambientLighting": {
+ "title": "Ambient Lighting Settings",
+ "description": "Settings for the Ambient Lighting module",
+ "ledState": {
+ "label": "LED State",
+ "description": "Sets LED to on or off"
+ },
+ "current": {
+ "label": "Huidige",
+ "description": "Sets the current for the LED output. Default is 10"
+ },
+ "red": {
+ "label": "Rood",
+ "description": "Sets the red LED level. Values are 0-255"
+ },
+ "green": {
+ "label": "Groen",
+ "description": "Sets the green LED level. Values are 0-255"
+ },
+ "blue": {
+ "label": "Blauw",
+ "description": "Sets the blue LED level. Values are 0-255"
+ }
+ },
+ "audio": {
+ "title": "Audio Settings",
+ "description": "Settings for the Audio module",
+ "codec2Enabled": {
+ "label": "Codec 2 Enabled",
+ "description": "Enable Codec 2 audio encoding"
+ },
+ "pttPin": {
+ "label": "PTT Pin",
+ "description": "GPIO pin to use for PTT"
+ },
+ "bitrate": {
+ "label": "Bitrate",
+ "description": "Bitrate to use for audio encoding"
+ },
+ "i2sWs": {
+ "label": "i2S WS",
+ "description": "GPIO pin to use for i2S WS"
+ },
+ "i2sSd": {
+ "label": "i2S SD",
+ "description": "GPIO pin to use for i2S SD"
+ },
+ "i2sDin": {
+ "label": "i2S DIN",
+ "description": "GPIO pin to use for i2S DIN"
+ },
+ "i2sSck": {
+ "label": "i2S SCK",
+ "description": "GPIO pin to use for i2S SCK"
+ }
+ },
+ "cannedMessage": {
+ "title": "Canned Message Settings",
+ "description": "Settings for the Canned Message module",
+ "moduleEnabled": {
+ "label": "Module Enabled",
+ "description": "Enable Canned Message"
+ },
+ "rotary1Enabled": {
+ "label": "Rotary Encoder #1 Enabled",
+ "description": "Enable the rotary encoder"
+ },
+ "inputbrokerPinA": {
+ "label": "Encoder Pin A",
+ "description": "GPIO Pin Value (1-39) For encoder port A"
+ },
+ "inputbrokerPinB": {
+ "label": "Encoder Pin B",
+ "description": "GPIO Pin Value (1-39) For encoder port B"
+ },
+ "inputbrokerPinPress": {
+ "label": "Encoder Pin Press",
+ "description": "GPIO Pin Value (1-39) For encoder Press"
+ },
+ "inputbrokerEventCw": {
+ "label": "Clockwise event",
+ "description": "Select input event."
+ },
+ "inputbrokerEventCcw": {
+ "label": "Counter Clockwise event",
+ "description": "Select input event."
+ },
+ "inputbrokerEventPress": {
+ "label": "Press event",
+ "description": "Select input event"
+ },
+ "updown1Enabled": {
+ "label": "Up Down enabled",
+ "description": "Enable the up / down encoder"
+ },
+ "allowInputSource": {
+ "label": "Allow Input Source",
+ "description": "Select from: '_any', 'rotEnc1', 'upDownEnc1', 'cardkb'"
+ },
+ "sendBell": {
+ "label": "Send Bell",
+ "description": "Sends a bell character with each message"
+ }
+ },
+ "detectionSensor": {
+ "title": "Detection Sensor Settings",
+ "description": "Settings for the Detection Sensor module",
+ "enabled": {
+ "label": "Enabled",
+ "description": "Enable or disable Detection Sensor Module"
+ },
+ "minimumBroadcastSecs": {
+ "label": "Minimum Broadcast Seconds",
+ "description": "The interval in seconds of how often we can send a message to the mesh when a state change is detected"
+ },
+ "stateBroadcastSecs": {
+ "label": "State Broadcast Seconds",
+ "description": "The interval in seconds of how often we should send a message to the mesh with the current state regardless of changes"
+ },
+ "sendBell": {
+ "label": "Send Bell",
+ "description": "Send ASCII bell with alert message"
+ },
+ "name": {
+ "label": "Friendly Name",
+ "description": "Used to format the message sent to mesh, max 20 Characters"
+ },
+ "monitorPin": {
+ "label": "Monitor Pin",
+ "description": "The GPIO pin to monitor for state changes"
+ },
+ "detectionTriggerType": {
+ "label": "Detection Triggered Type",
+ "description": "The type of trigger event to be used"
+ },
+ "usePullup": {
+ "label": "Use Pullup",
+ "description": "Whether or not use INPUT_PULLUP mode for GPIO pin"
+ }
+ },
+ "externalNotification": {
+ "title": "External Notification Settings",
+ "description": "Configure the external notification module",
+ "enabled": {
+ "label": "Module Enabled",
+ "description": "Enable External Notification"
+ },
+ "outputMs": {
+ "label": "Output MS",
+ "description": "Output MS"
+ },
+ "output": {
+ "label": "Output",
+ "description": "Output"
+ },
+ "outputVibra": {
+ "label": "Output Vibrate",
+ "description": "Output Vibrate"
+ },
+ "outputBuzzer": {
+ "label": "Output Buzzer",
+ "description": "Output Buzzer"
+ },
+ "active": {
+ "label": "Active",
+ "description": "Active"
+ },
+ "alertMessage": {
+ "label": "Alert Message",
+ "description": "Alert Message"
+ },
+ "alertMessageVibra": {
+ "label": "Alert Message Vibrate",
+ "description": "Alert Message Vibrate"
+ },
+ "alertMessageBuzzer": {
+ "label": "Alert Message Buzzer",
+ "description": "Alert Message Buzzer"
+ },
+ "alertBell": {
+ "label": "Alert Bell",
+ "description": "Should an alert be triggered when receiving an incoming bell?"
+ },
+ "alertBellVibra": {
+ "label": "Alert Bell Vibrate",
+ "description": "Alert Bell Vibrate"
+ },
+ "alertBellBuzzer": {
+ "label": "Alert Bell Buzzer",
+ "description": "Alert Bell Buzzer"
+ },
+ "usePwm": {
+ "label": "Use PWM",
+ "description": "Use PWM"
+ },
+ "nagTimeout": {
+ "label": "Nag Timeout",
+ "description": "Nag Timeout"
+ },
+ "useI2sAsBuzzer": {
+ "label": "Use I²S Pin as Buzzer",
+ "description": "Designate I²S Pin as Buzzer Output"
+ }
+ },
+ "mqtt": {
+ "title": "MQTT Settings",
+ "description": "Settings for the MQTT module",
+ "enabled": {
+ "label": "Enabled",
+ "description": "Enable or disable MQTT"
+ },
+ "address": {
+ "label": "MQTT Server Address",
+ "description": "MQTT server address to use for default/custom servers"
+ },
+ "username": {
+ "label": "MQTT Username",
+ "description": "MQTT username to use for default/custom servers"
+ },
+ "password": {
+ "label": "MQTT Password",
+ "description": "MQTT password to use for default/custom servers"
+ },
+ "encryptionEnabled": {
+ "label": "Encryption Enabled",
+ "description": "Enable or disable MQTT encryption. Note: All messages are sent to the MQTT broker unencrypted if this option is not enabled, even when your uplink channels have encryption keys set. This includes position data."
+ },
+ "jsonEnabled": {
+ "label": "JSON Enabled",
+ "description": "Whether to send/consume JSON packets on MQTT"
+ },
+ "tlsEnabled": {
+ "label": "TLS Enabled",
+ "description": "Enable or disable TLS"
+ },
+ "root": {
+ "label": "Root topic",
+ "description": "MQTT root topic to use for default/custom servers"
+ },
+ "proxyToClientEnabled": {
+ "label": "MQTT Client Proxy Enabled",
+ "description": "Utilizes the network connection to proxy MQTT messages to the client."
+ },
+ "mapReportingEnabled": {
+ "label": "Map Reporting Enabled",
+ "description": "Your node will periodically send an unencrypted map report packet to the configured MQTT server, this includes id, short and long name, approximate location, hardware model, role, firmware version, LoRa region, modem preset and primary channel name."
+ },
+ "mapReportSettings": {
+ "publishIntervalSecs": {
+ "label": "Map Report Publish Interval (s)",
+ "description": "Interval in seconds to publish map reports"
+ },
+ "positionPrecision": {
+ "label": "Approximate Location",
+ "description": "Position shared will be accurate within this distance",
+ "options": {
+ "metric_km23": "Within 23 km",
+ "metric_km12": "Within 12 km",
+ "metric_km5_8": "Within 5.8 km",
+ "metric_km2_9": "Within 2.9 km",
+ "metric_km1_5": "Within 1.5 km",
+ "metric_m700": "Within 700 m",
+ "metric_m350": "Within 350 m",
+ "metric_m200": "Within 200 m",
+ "metric_m90": "Within 90 m",
+ "metric_m50": "Within 50 m",
+ "imperial_mi15": "Within 15 miles",
+ "imperial_mi7_3": "Within 7.3 miles",
+ "imperial_mi3_6": "Within 3.6 miles",
+ "imperial_mi1_8": "Within 1.8 miles",
+ "imperial_mi0_9": "Within 0.9 miles",
+ "imperial_mi0_5": "Within 0.5 miles",
+ "imperial_mi0_2": "Within 0.2 miles",
+ "imperial_ft600": "Within 600 feet",
+ "imperial_ft300": "Within 300 feet",
+ "imperial_ft150": "Within 150 feet"
+ }
+ }
+ }
+ },
+ "neighborInfo": {
+ "title": "Neighbor Info Settings",
+ "description": "Settings for the Neighbor Info module",
+ "enabled": {
+ "label": "Enabled",
+ "description": "Enable or disable Neighbor Info Module"
+ },
+ "updateInterval": {
+ "label": "Update Interval",
+ "description": "Interval in seconds of how often we should try to send our Neighbor Info to the mesh"
+ }
+ },
+ "paxcounter": {
+ "title": "Paxcounter Settings",
+ "description": "Settings for the Paxcounter module",
+ "enabled": {
+ "label": "Module Enabled",
+ "description": "Enable Paxcounter"
+ },
+ "paxcounterUpdateInterval": {
+ "label": "Update Interval (seconds)",
+ "description": "How long to wait between sending paxcounter packets"
+ },
+ "wifiThreshold": {
+ "label": "WiFi RSSI Threshold",
+ "description": "At what WiFi RSSI level should the counter increase. Defaults to -80."
+ },
+ "bleThreshold": {
+ "label": "BLE RSSI Threshold",
+ "description": "At what BLE RSSI level should the counter increase. Defaults to -80."
+ }
+ },
+ "rangeTest": {
+ "title": "Range Test Settings",
+ "description": "Settings for the Range Test module",
+ "enabled": {
+ "label": "Module Enabled",
+ "description": "Enable Range Test"
+ },
+ "sender": {
+ "label": "Message Interval",
+ "description": "How long to wait between sending test packets"
+ },
+ "save": {
+ "label": "Save CSV to storage",
+ "description": "ESP32 Only"
+ }
+ },
+ "serial": {
+ "title": "Serial Settings",
+ "description": "Settings for the Serial module",
+ "enabled": {
+ "label": "Module Enabled",
+ "description": "Enable Serial output"
+ },
+ "echo": {
+ "label": "Echo",
+ "description": "Any packets you send will be echoed back to your device"
+ },
+ "rxd": {
+ "label": "Receive Pin",
+ "description": "Set the GPIO pin to the RXD pin you have set up."
+ },
+ "txd": {
+ "label": "Transmit Pin",
+ "description": "Set the GPIO pin to the TXD pin you have set up."
+ },
+ "baud": {
+ "label": "Baud Rate",
+ "description": "The serial baud rate"
+ },
+ "timeout": {
+ "label": "Time-Out",
+ "description": "Seconds to wait before we consider your packet as 'done'"
+ },
+ "mode": {
+ "label": "Mode",
+ "description": "Select Mode"
+ },
+ "overrideConsoleSerialPort": {
+ "label": "Override Console Serial Port",
+ "description": "If you have a serial port connected to the console, this will override it."
+ }
+ },
+ "storeForward": {
+ "title": "Store & Forward Settings",
+ "description": "Settings for the Store & Forward module",
+ "enabled": {
+ "label": "Module Enabled",
+ "description": "Enable Store & Forward"
+ },
+ "heartbeat": {
+ "label": "Heartbeat Enabled",
+ "description": "Enable Store & Forward heartbeat"
+ },
+ "records": {
+ "label": "Aantal records",
+ "description": "Number of records to store"
+ },
+ "historyReturnMax": {
+ "label": "History return max",
+ "description": "Max number of records to return"
+ },
+ "historyReturnWindow": {
+ "label": "History return window",
+ "description": "Retourneer records uit dit tijdvenster (minuten)"
+ }
+ },
+ "telemetry": {
+ "title": "Telemetry Settings",
+ "description": "Settings for the Telemetry module",
+ "deviceUpdateInterval": {
+ "label": "Device Metrics",
+ "description": "Device metrics update interval (seconds)"
+ },
+ "environmentUpdateInterval": {
+ "label": "Environment metrics update interval (seconds)",
+ "description": ""
+ },
+ "environmentMeasurementEnabled": {
+ "label": "Module Enabled",
+ "description": "Enable the Environment Telemetry"
+ },
+ "environmentScreenEnabled": {
+ "label": "Displayed on Screen",
+ "description": "Show the Telemetry Module on the OLED"
+ },
+ "environmentDisplayFahrenheit": {
+ "label": "Display Fahrenheit",
+ "description": "Display temp in Fahrenheit"
+ },
+ "airQualityEnabled": {
+ "label": "Air Quality Enabled",
+ "description": "Enable the Air Quality Telemetry"
+ },
+ "airQualityInterval": {
+ "label": "Air Quality Update Interval",
+ "description": "How often to send Air Quality data over the mesh"
+ },
+ "powerMeasurementEnabled": {
+ "label": "Power Measurement Enabled",
+ "description": "Enable the Power Measurement Telemetry"
+ },
+ "powerUpdateInterval": {
+ "label": "Power Update Interval",
+ "description": "How often to send Power data over the mesh"
+ },
+ "powerScreenEnabled": {
+ "label": "Power Screen Enabled",
+ "description": "Enable the Power Telemetry Screen"
+ }
+ }
}
diff --git a/packages/web/public/i18n/locales/nl-NL/nodes.json b/packages/web/public/i18n/locales/nl-NL/nodes.json
index 38d882ea..0dd89317 100644
--- a/packages/web/public/i18n/locales/nl-NL/nodes.json
+++ b/packages/web/public/i18n/locales/nl-NL/nodes.json
@@ -1,63 +1,59 @@
{
- "nodeDetail": {
- "publicKeyEnabled": {
- "label": "Public Key Enabled"
- },
- "noPublicKey": {
- "label": "No Public Key"
- },
- "directMessage": {
- "label": "Direct Message {{shortName}}"
- },
- "favorite": {
- "label": "Favoriet",
- "tooltip": "Add or remove this node from your favorites"
- },
- "notFavorite": {
- "label": "Not a Favorite"
- },
- "error": {
- "label": "Foutmelding",
- "text": "An error occurred while fetching node details. Please try again later."
- },
- "status": {
- "heard": "Heard",
- "mqtt": "MQTT"
- },
- "elevation": {
- "label": "Elevation"
- },
- "channelUtil": {
- "label": "Channel Util"
- },
- "airtimeUtil": {
- "label": "Airtime Util"
- }
- },
- "nodesTable": {
- "headings": {
- "longName": "Long Name",
- "connection": "Connection",
- "lastHeard": "Last Heard",
- "encryption": "Encryption",
- "model": "Model",
- "macAddress": "MAC Address"
- },
- "connectionStatus": {
- "direct": "Direct",
- "away": "away",
- "unknown": "-",
- "viaMqtt": ", via MQTT"
- },
- "lastHeardStatus": {
- "never": "Never"
- }
- },
- "actions": {
- "added": "Added",
- "removed": "Removed",
- "ignoreNode": "Ignore Node",
- "unignoreNode": "Unignore Node",
- "requestPosition": "Request Position"
- }
+ "nodeDetail": {
+ "publicKeyEnabled": {
+ "label": "Public Key Enabled"
+ },
+ "noPublicKey": {
+ "label": "No Public Key"
+ },
+ "directMessage": {
+ "label": "Direct Message {{shortName}}"
+ },
+ "favorite": {
+ "label": "Favoriet",
+ "tooltip": "Add or remove this node from your favorites"
+ },
+ "notFavorite": {
+ "label": "Not a Favorite"
+ },
+ "error": {
+ "label": "Foutmelding",
+ "text": "An error occurred while fetching node details. Please try again later."
+ },
+ "status": {
+ "heard": "Heard",
+ "mqtt": "MQTT"
+ },
+ "elevation": {
+ "label": "Elevation"
+ },
+ "channelUtil": {
+ "label": "Channel Util"
+ },
+ "airtimeUtil": {
+ "label": "Airtime Util"
+ }
+ },
+ "nodesTable": {
+ "headings": {
+ "longName": "Long Name",
+ "connection": "Connection",
+ "lastHeard": "Last Heard",
+ "encryption": "Encryption",
+ "model": "Model",
+ "macAddress": "MAC Address"
+ },
+ "connectionStatus": {
+ "direct": "Direct",
+ "away": "away",
+ "viaMqtt": ", via MQTT"
+ }
+ },
+ "actions": {
+ "added": "Added",
+ "removed": "Removed",
+ "ignoreNode": "Ignore Node",
+ "unignoreNode": "Unignore Node",
+ "requestPosition": "Request Position"
+ }
}
diff --git a/packages/web/public/i18n/locales/nl-NL/ui.json b/packages/web/public/i18n/locales/nl-NL/ui.json
index 6b33c8df..9d57f2a8 100644
--- a/packages/web/public/i18n/locales/nl-NL/ui.json
+++ b/packages/web/public/i18n/locales/nl-NL/ui.json
@@ -1,228 +1,229 @@
{
- "navigation": {
- "title": "Navigation",
- "messages": "Berichten",
- "map": "Kaart",
- "config": "Config",
- "radioConfig": "Radio Config",
- "moduleConfig": "Module Config",
- "channels": "Kanalen",
- "nodes": "Nodes"
- },
- "app": {
- "title": "Meshtastic",
- "logo": "Meshtastic Logo"
- },
- "sidebar": {
- "collapseToggle": {
- "button": {
- "open": "Open sidebar",
- "close": "Close sidebar"
- }
- },
- "deviceInfo": {
- "volts": "{{voltage}} volts",
- "firmware": {
- "title": "Firmware",
- "version": "v{{version}}",
- "buildDate": "Build date: {{date}}"
- },
- "deviceName": {
- "title": "Device Name",
- "changeName": "Change Device Name",
- "placeholder": "Enter device name"
- },
- "editDeviceName": "Edit device name"
- }
- },
- "batteryStatus": {
- "charging": "{{level}}% charging",
- "pluggedIn": "Plugged in",
- "title": "Batterij"
- },
- "search": {
- "nodes": "Search nodes...",
- "channels": "Search channels...",
- "commandPalette": "Search commands..."
- },
- "toast": {
- "positionRequestSent": {
- "title": "Position request sent."
- },
- "requestingPosition": {
- "title": "Requesting position, please wait..."
- },
- "sendingTraceroute": {
- "title": "Sending Traceroute, please wait..."
- },
- "tracerouteSent": {
- "title": "Traceroute sent."
- },
- "savedChannel": {
- "title": "Saved Channel: {{channelName}}"
- },
- "messages": {
- "pkiEncryption": {
- "title": "Chat is using PKI encryption."
- },
- "pskEncryption": {
- "title": "Chat is using PSK encryption."
- }
- },
- "configSaveError": {
- "title": "Error Saving Config",
- "description": "An error occurred while saving the configuration."
- },
- "validationError": {
- "title": "Config Errors Exist",
- "description": "Please fix the configuration errors before saving."
- },
- "saveSuccess": {
- "title": "Saving Config",
- "description": "The configuration change {{case}} has been saved."
- },
- "favoriteNode": {
- "title": "{{action}} {{nodeName}} {{direction}} favorites.",
- "action": {
- "added": "Added",
- "removed": "Removed",
- "to": "to",
- "from": "from"
- }
- },
- "ignoreNode": {
- "title": "{{action}} {{nodeName}} {{direction}} ignore list",
- "action": {
- "added": "Added",
- "removed": "Removed",
- "to": "to",
- "from": "from"
- }
- }
- },
- "notifications": {
- "copied": {
- "label": "Copied!"
- },
- "copyToClipboard": {
- "label": "Copy to clipboard"
- },
- "hidePassword": {
- "label": "Wachtwoord verbergen"
- },
- "showPassword": {
- "label": "Wachtwoord tonen"
- },
- "deliveryStatus": {
- "delivered": "Delivered",
- "failed": "Delivery Failed",
- "waiting": "Waiting",
- "unknown": "Unknown"
- }
- },
- "general": {
- "label": "General"
- },
- "hardware": {
- "label": "Hardware"
- },
- "metrics": {
- "label": "Metrics"
- },
- "role": {
- "label": "Functie"
- },
- "filter": {
- "label": "Filter"
- },
- "advanced": {
- "label": "Advanced"
- },
- "clearInput": {
- "label": "Clear input"
- },
- "resetFilters": {
- "label": "Reset Filters"
- },
- "nodeName": {
- "label": "Node name/number",
- "placeholder": "Meshtastic 1234"
- },
- "airtimeUtilization": {
- "label": "Airtime Utilization (%)"
- },
- "batteryLevel": {
- "label": "Battery level (%)",
- "labelText": "Battery level (%): {{value}}"
- },
- "batteryVoltage": {
- "label": "Battery voltage (V)",
- "title": "Spanning"
- },
- "channelUtilization": {
- "label": "Channel Utilization (%)"
- },
- "hops": {
- "direct": "Direct",
- "label": "Number of hops",
- "text": "Number of hops: {{value}}"
- },
- "lastHeard": {
- "label": "Laatst gehoord",
- "labelText": "Last heard: {{value}}",
- "nowLabel": "Now"
- },
- "snr": {
- "label": "SNR (db)"
- },
- "favorites": {
- "label": "Favorites"
- },
- "hide": {
- "label": "Hide"
- },
- "showOnly": {
- "label": "Show Only"
- },
- "viaMqtt": {
- "label": "Connected via MQTT"
- },
- "hopsUnknown": {
- "label": "Unknown number of hops"
- },
- "showUnheard": {
- "label": "Never heard"
- },
- "language": {
- "label": "Taal",
- "changeLanguage": "Change Language"
- },
- "theme": {
- "dark": "Donker",
- "light": "Licht",
- "system": "Automatic",
- "changeTheme": "Change Color Scheme"
- },
- "errorPage": {
- "title": "This is a little embarrassing...",
- "description1": "We are really sorry but an error occurred in the web client that caused it to crash.
This is not supposed to happen, and we are working hard to fix it.",
- "description2": "The best way to prevent this from happening again to you or anyone else is to report the issue to us.",
- "reportInstructions": "Please include the following information in your report:",
- "reportSteps": {
- "step1": "What you were doing when the error occurred",
- "step2": "What you expected to happen",
- "step3": "What actually happened",
- "step4": "Any other relevant information"
- },
- "reportLink": "You can report the issue to our <0>GitHub0>",
- "dashboardLink": "Return to the <0>dashboard0>",
- "detailsSummary": "Error Details",
- "errorMessageLabel": "Error message:",
- "stackTraceLabel": "Stack trace:",
- "fallbackError": "{{error}}"
- },
- "footer": {
- "text": "Powered by <0>▲ Vercel0> | Meshtastic® is a registered trademark of Meshtastic LLC. | <1>Legal Information1>",
- "commitSha": "Commit SHA: {{sha}}"
- }
+ "navigation": {
+ "title": "Navigation",
+ "messages": "Berichten",
+ "map": "Kaart",
+ "settings": "Instellingen",
+ "channels": "Kanalen",
+ "radioConfig": "Radio Config",
+ "deviceConfig": "Apparaat Configuratie",
+ "moduleConfig": "Module Config",
+ "nodes": "Nodes"
+ },
+ "app": {
+ "title": "Meshtastic",
+ "logo": "Meshtastic Logo"
+ },
+ "sidebar": {
+ "collapseToggle": {
+ "button": {
+ "open": "Open sidebar",
+ "close": "Close sidebar"
+ }
+ },
+ "deviceInfo": {
+ "volts": "{{voltage}} volts",
+ "firmware": {
+ "title": "Firmware",
+ "version": "v{{version}}",
+ "buildDate": "Build date: {{date}}"
+ }
+ }
+ },
+ "batteryStatus": {
+ "charging": "{{level}}% charging",
+ "pluggedIn": "Plugged in",
+ "title": "Batterij"
+ },
+ "search": {
+ "nodes": "Search nodes...",
+ "channels": "Search channels...",
+ "commandPalette": "Search commands..."
+ },
+ "toast": {
+ "positionRequestSent": {
+ "title": "Position request sent."
+ },
+ "requestingPosition": {
+ "title": "Requesting position, please wait..."
+ },
+ "sendingTraceroute": {
+ "title": "Sending Traceroute, please wait..."
+ },
+ "tracerouteSent": {
+ "title": "Traceroute sent."
+ },
+ "savedChannel": {
+ "title": "Saved Channel: {{channelName}}"
+ },
+ "messages": {
+ "pkiEncryption": {
+ "title": "Chat is using PKI encryption."
+ },
+ "pskEncryption": {
+ "title": "Chat is using PSK encryption."
+ }
+ },
+ "configSaveError": {
+ "title": "Error Saving Config",
+ "description": "An error occurred while saving the configuration."
+ },
+ "validationError": {
+ "title": "Config Errors Exist",
+ "description": "Please fix the configuration errors before saving."
+ },
+ "saveSuccess": {
+ "title": "Saving Config",
+ "description": "The configuration change {{case}} has been saved."
+ },
+ "saveAllSuccess": {
+ "title": "Saved",
+ "description": "All configuration changes have been saved."
+ },
+ "favoriteNode": {
+ "title": "{{action}} {{nodeName}} {{direction}} favorites.",
+ "action": {
+ "added": "Added",
+ "removed": "Removed",
+ "to": "to",
+ "from": "from"
+ }
+ },
+ "ignoreNode": {
+ "title": "{{action}} {{nodeName}} {{direction}} ignore list",
+ "action": {
+ "added": "Added",
+ "removed": "Removed",
+ "to": "to",
+ "from": "from"
+ }
+ }
+ },
+ "notifications": {
+ "copied": {
+ "label": "Copied!"
+ },
+ "copyToClipboard": {
+ "label": "Copy to clipboard"
+ },
+ "hidePassword": {
+ "label": "Wachtwoord verbergen"
+ },
+ "showPassword": {
+ "label": "Wachtwoord tonen"
+ },
+ "deliveryStatus": {
+ "delivered": "Delivered",
+ "failed": "Delivery Failed",
+ "waiting": "Waiting",
+ "unknown": "Unknown"
+ }
+ },
+ "general": {
+ "label": "General"
+ },
+ "hardware": {
+ "label": "Hardware"
+ },
+ "metrics": {
+ "label": "Metrics"
+ },
+ "role": {
+ "label": "Functie"
+ },
+ "filter": {
+ "label": "Filter"
+ },
+ "advanced": {
+ "label": "Advanced"
+ },
+ "clearInput": {
+ "label": "Clear input"
+ },
+ "resetFilters": {
+ "label": "Reset Filters"
+ },
+ "nodeName": {
+ "label": "Node name/number",
+ "placeholder": "Meshtastic 1234"
+ },
+ "airtimeUtilization": {
+ "label": "Airtime Utilization (%)",
+ "short": "Airtime Util. (%)"
+ },
+ "batteryLevel": {
+ "label": "Battery level (%)",
+ "labelText": "Battery level (%): {{value}}"
+ },
+ "batteryVoltage": {
+ "label": "Battery voltage (V)",
+ "title": "Spanning"
+ },
+ "channelUtilization": {
+ "label": "Channel Utilization (%)",
+ "short": "Channel Util. (%)"
+ },
+ "hops": {
+ "direct": "Direct",
+ "label": "Number of hops",
+ "text": "Number of hops: {{value}}"
+ },
+ "lastHeard": {
+ "label": "Laatst gehoord",
+ "labelText": "Last heard: {{value}}",
+ "nowLabel": "Now"
+ },
+ "snr": {
+ "label": "SNR (db)"
+ },
+ "favorites": {
+ "label": "Favorites"
+ },
+ "hide": {
+ "label": "Hide"
+ },
+ "showOnly": {
+ "label": "Show Only"
+ },
+ "viaMqtt": {
+ "label": "Connected via MQTT"
+ },
+ "hopsUnknown": {
+ "label": "Unknown number of hops"
+ },
+ "showUnheard": {
+ "label": "Never heard"
+ },
+ "language": {
+ "label": "Taal",
+ "changeLanguage": "Change Language"
+ },
+ "theme": {
+ "dark": "Donker",
+ "light": "Licht",
+ "system": "Automatic",
+ "changeTheme": "Change Color Scheme"
+ },
+ "errorPage": {
+ "title": "This is a little embarrassing...",
+ "description1": "We are really sorry but an error occurred in the web client that caused it to crash.
This is not supposed to happen, and we are working hard to fix it.",
+ "description2": "The best way to prevent this from happening again to you or anyone else is to report the issue to us.",
+ "reportInstructions": "Please include the following information in your report:",
+ "reportSteps": {
+ "step1": "What you were doing when the error occurred",
+ "step2": "What you expected to happen",
+ "step3": "What actually happened",
+ "step4": "Any other relevant information"
+ },
+ "reportLink": "You can report the issue to our <0>GitHub0>",
+ "dashboardLink": "Return to the <0>dashboard0>",
+ "detailsSummary": "Error Details",
+ "errorMessageLabel": "Error message:",
+ "stackTraceLabel": "Stack trace:",
+ "fallbackError": "{{error}}"
+ },
+ "footer": {
+ "text": "Powered by <0>▲ Vercel0> | Meshtastic® is a registered trademark of Meshtastic LLC. | <1>Legal Information1>",
+ "commitSha": "Commit SHA: {{sha}}"
+ }
}
diff --git a/packages/web/public/i18n/locales/pl-PL/channels.json b/packages/web/public/i18n/locales/pl-PL/channels.json
index 5710e5dd..7dbdc06a 100644
--- a/packages/web/public/i18n/locales/pl-PL/channels.json
+++ b/packages/web/public/i18n/locales/pl-PL/channels.json
@@ -1,69 +1,71 @@
{
- "page": {
- "sectionLabel": "Kanały",
- "channelName": "Kanał: {{channelName}}",
- "broadcastLabel": "Podstawowy",
- "channelIndex": "Kan. {{index}}"
- },
- "validation": {
- "pskInvalid": "Musisz wprowadzić prawidłowy {{bits}} bitowy klucz."
- },
- "settings": {
- "label": "Ustawienia kanału",
- "description": "Kryptografia, MQTT i inne ustawienia"
- },
- "role": {
- "label": "Rola",
- "description": "Telemetria urządzenia jest tylko wysyłania przez GŁOWNY. Tylko jeden GŁOWNY jest dozwolony",
- "options": {
- "primary": "GŁOWNY",
- "disabled": "WYŁĄCZONY",
- "secondary": "DODATKOWY"
- }
- },
- "psk": {
- "label": "Klucz współdzielony",
- "description": "Wspierane długości klucza: 256, 128, 8, pusty (0) bitów",
- "generate": "Wygeneruj"
- },
- "name": {
- "label": "Nazwa",
- "description": "Unikalna nazwa kanału mniejsza niż 12 bajtów, pusty jako domyślny"
- },
- "uplinkEnabled": {
- "label": "Wysył włączony",
- "description": "Wysyłaj wiadomości z lokalnej sieci do MQTT"
- },
- "downlinkEnabled": {
- "label": "Odbiór włączony",
- "description": "Wysyłaj wiadomości z MQTT to lokalnej sieci"
- },
- "positionPrecision": {
- "label": "Lokalizacja",
- "description": "Precyzja lokalizacji, która jest wysyłana na kanale. Może zostać wyłączona.",
- "options": {
- "none": "Nie udostępniaj lokalizacji",
- "precise": "Precyzyjna lokalizacja",
- "metric_km23": "W zasięgu 23 kilometrów",
- "metric_km12": "W zasięgu 12 kilometrów",
- "metric_km5_8": "W zasięgu 5,8 kilometrów",
- "metric_km2_9": "W zasięgu 2,9 kilometrów",
- "metric_km1_5": "W zasięgu 1,5 kilometra",
- "metric_m700": "W zasięgu 700 metrów",
- "metric_m350": "W zasięgu 350 metrów",
- "metric_m200": "W zasięgu 200 metrów",
- "metric_m90": "W zasięgu 90 metrów",
- "metric_m50": "W zasięgu 50 metrów",
- "imperial_mi15": "W zasięgu 15 mil",
- "imperial_mi7_3": "W zasięgu 7,3 mil",
- "imperial_mi3_6": "W zasięgu 3,6 mil",
- "imperial_mi1_8": "W zasięgu 1,8 mil",
- "imperial_mi0_9": "W zasięgu 0,9 mil",
- "imperial_mi0_5": "W zasięgu 0,5 mili",
- "imperial_mi0_2": "W zasięgu 0,2 mil",
- "imperial_ft600": "W zasięgu 600 stóp",
- "imperial_ft300": "W zasięgu 300 stóp",
- "imperial_ft150": "W zasięgu 150 stóp"
- }
- }
+ "page": {
+ "sectionLabel": "Kanały",
+ "channelName": "Kanał: {{channelName}}",
+ "broadcastLabel": "Podstawowy",
+ "channelIndex": "Kan. {{index}}",
+ "import": "Import",
+ "export": "Eksport"
+ },
+ "validation": {
+ "pskInvalid": "Musisz wprowadzić prawidłowy {{bits}} bitowy klucz."
+ },
+ "settings": {
+ "label": "Ustawienia kanału",
+ "description": "Kryptografia, MQTT i inne ustawienia"
+ },
+ "role": {
+ "label": "Rola",
+ "description": "Telemetria urządzenia jest tylko wysyłania przez GŁOWNY. Tylko jeden GŁOWNY jest dozwolony",
+ "options": {
+ "primary": "GŁOWNY",
+ "disabled": "WYŁĄCZONY",
+ "secondary": "DODATKOWY"
+ }
+ },
+ "psk": {
+ "label": "Klucz współdzielony",
+ "description": "Wspierane długości klucza: 256, 128, 8, pusty (0) bitów",
+ "generate": "Wygeneruj"
+ },
+ "name": {
+ "label": "Nazwa",
+ "description": "Unikalna nazwa kanału mniejsza niż 12 bajtów, pusty jako domyślny"
+ },
+ "uplinkEnabled": {
+ "label": "Wysył włączony",
+ "description": "Wysyłaj wiadomości z lokalnej sieci do MQTT"
+ },
+ "downlinkEnabled": {
+ "label": "Odbiór włączony",
+ "description": "Wysyłaj wiadomości z MQTT to lokalnej sieci"
+ },
+ "positionPrecision": {
+ "label": "Lokalizacja",
+ "description": "Precyzja lokalizacji, która jest wysyłana na kanale. Może zostać wyłączona.",
+ "options": {
+ "none": "Nie udostępniaj lokalizacji",
+ "precise": "Precyzyjna lokalizacja",
+ "metric_km23": "W zasięgu 23 kilometrów",
+ "metric_km12": "W zasięgu 12 kilometrów",
+ "metric_km5_8": "W zasięgu 5,8 kilometrów",
+ "metric_km2_9": "W zasięgu 2,9 kilometrów",
+ "metric_km1_5": "W zasięgu 1,5 kilometra",
+ "metric_m700": "W zasięgu 700 metrów",
+ "metric_m350": "W zasięgu 350 metrów",
+ "metric_m200": "W zasięgu 200 metrów",
+ "metric_m90": "W zasięgu 90 metrów",
+ "metric_m50": "W zasięgu 50 metrów",
+ "imperial_mi15": "W zasięgu 15 mil",
+ "imperial_mi7_3": "W zasięgu 7,3 mil",
+ "imperial_mi3_6": "W zasięgu 3,6 mil",
+ "imperial_mi1_8": "W zasięgu 1,8 mil",
+ "imperial_mi0_9": "W zasięgu 0,9 mil",
+ "imperial_mi0_5": "W zasięgu 0,5 mili",
+ "imperial_mi0_2": "W zasięgu 0,2 mil",
+ "imperial_ft600": "W zasięgu 600 stóp",
+ "imperial_ft300": "W zasięgu 300 stóp",
+ "imperial_ft150": "W zasięgu 150 stóp"
+ }
+ }
}
diff --git a/packages/web/public/i18n/locales/pl-PL/commandPalette.json b/packages/web/public/i18n/locales/pl-PL/commandPalette.json
index 018f88a6..3719cba7 100644
--- a/packages/web/public/i18n/locales/pl-PL/commandPalette.json
+++ b/packages/web/public/i18n/locales/pl-PL/commandPalette.json
@@ -15,7 +15,6 @@
"messages": "Wiadomości",
"map": "Mapa",
"config": "Config",
- "channels": "Kanały",
"nodes": "Nodes"
}
},
@@ -45,7 +44,8 @@
"label": "Debug",
"command": {
"reconfigure": "Reconfigure",
- "clearAllStoredMessages": "Clear All Stored Message"
+ "clearAllStoredMessages": "Clear All Stored Message",
+ "clearAllStores": "Clear All Local Storage"
}
}
}
diff --git a/packages/web/public/i18n/locales/pl-PL/common.json b/packages/web/public/i18n/locales/pl-PL/common.json
index fc1709d8..a85625ec 100644
--- a/packages/web/public/i18n/locales/pl-PL/common.json
+++ b/packages/web/public/i18n/locales/pl-PL/common.json
@@ -1,142 +1,157 @@
{
- "button": {
- "apply": "Zastosuj",
- "backupKey": "Backup Key",
- "cancel": "Anuluj",
- "clearMessages": "Clear Messages",
- "close": "Zamknij",
- "confirm": "Confirm",
- "delete": "Usuń",
- "dismiss": "Zamknij",
- "download": "Download",
- "export": "Export",
- "generate": "Wygeneruj",
- "regenerate": "Regenerate",
- "import": "Import",
- "message": "Wiadomość",
- "now": "Now",
- "ok": "OK",
- "print": "Print",
- "remove": "Usuń",
- "requestNewKeys": "Request New Keys",
- "requestPosition": "Poproś o pozycję",
- "reset": "Zresetuj",
- "save": "Zapisz",
- "scanQr": "Scan QR Code",
- "traceRoute": "Trace Route",
- "submit": "Submit"
- },
- "app": {
- "title": "Meshtastic",
- "fullTitle": "Meshtastic Web Client"
- },
- "loading": "Loading...",
- "unit": {
- "cps": "CPS",
- "dbm": "dBm",
- "hertz": "Hz",
- "hop": {
- "one": "Hop",
- "plural": "Hops"
- },
- "hopsAway": {
- "one": "{{count}} hop away",
- "plural": "{{count}} hops away",
- "unknown": "Unknown hops away"
- },
- "megahertz": "MHz",
- "raw": "raw",
- "meter": {
- "one": "Meter",
- "plural": "Meters",
- "suffix": "m"
- },
- "minute": {
- "one": "Minute",
- "plural": "Minutes"
- },
- "hour": {
- "one": "Hour",
- "plural": "Hours"
- },
- "millisecond": {
- "one": "Millisecond",
- "plural": "Milliseconds",
- "suffix": "ms"
- },
- "second": {
- "one": "Second",
- "plural": "Seconds"
- },
- "day": {
- "one": "Day",
- "plural": "Days"
- },
- "month": {
- "one": "Month",
- "plural": "Months"
- },
- "year": {
- "one": "Year",
- "plural": "Years"
- },
- "snr": "SNR:",
- "volt": {
- "one": "Volt",
- "plural": "Volts",
- "suffix": "V"
- },
- "record": {
- "one": "Rekordy",
- "plural": "Rekordy"
- }
- },
- "security": {
- "0bit": "Pusty",
- "8bit": "8-bitowy",
- "128bit": "128-bitowy",
- "256bit": "256-bitowy"
- },
- "unknown": {
- "longName": "Nieznany",
- "shortName": "UNK",
- "notAvailable": "N/A",
- "num": "??"
- },
- "nodeUnknownPrefix": "!",
- "unset": "UNSET",
- "fallbackName": "Meshtastic {{last4}}",
- "node": "Węzeł",
- "formValidation": {
- "unsavedChanges": "Niezapisane zmiany",
- "tooBig": {
- "string": "Too long, expected less than or equal to {{maximum}} characters.",
- "number": "Too big, expected a number smaller than or equal to {{maximum}}.",
- "bytes": "Too big, expected less than or equal to {{params.maximum}} bytes."
- },
- "tooSmall": {
- "string": "Too short, expected more than or equal to {{minimum}} characters.",
- "number": "Too small, expected a number larger than or equal to {{minimum}}."
- },
- "invalidFormat": {
- "ipv4": "Nieprawidłowy format, oczekiwany adres IPv4.",
- "key": "Invalid format, expected a Base64 encoded pre-shared key (PSK)."
- },
- "invalidType": {
- "number": "Nieprawidłowy typ, oczekiwana liczba."
- },
- "pskLength": {
- "0bit": "Klucz musi być pusty.",
- "8bit": "Key is required to be an 8 bit pre-shared key (PSK).",
- "128bit": "Key is required to be a 128 bit pre-shared key (PSK).",
- "256bit": "Key is required to be a 256 bit pre-shared key (PSK)."
- },
- "required": {
- "generic": "To pole jest wymagane.",
- "managed": "Co najmniej jeden klucz administratora jest wymagany, jeśli węzeł jest zarządzany.",
- "key": "Klucz jest wymagany."
- }
- },
- "yes": "Yes",
- "no": "No"
+ "button": {
+ "apply": "Zastosuj",
+ "backupKey": "Backup Key",
+ "cancel": "Anuluj",
+ "clearMessages": "Clear Messages",
+ "close": "Zamknij",
+ "confirm": "Confirm",
+ "delete": "Usuń",
+ "dismiss": "Zamknij",
+ "download": "Download",
+ "export": "Export",
+ "generate": "Wygeneruj",
+ "regenerate": "Regenerate",
+ "import": "Import",
+ "message": "Wiadomość",
+ "now": "Now",
+ "ok": "OK",
+ "print": "Print",
+ "remove": "Usuń",
+ "requestNewKeys": "Request New Keys",
+ "requestPosition": "Poproś o pozycję",
+ "reset": "Zresetuj",
+ "save": "Zapisz",
+ "scanQr": "Scan QR Code",
+ "traceRoute": "Trace Route",
+ "submit": "Submit"
+ },
+ "app": {
+ "title": "Meshtastic",
+ "fullTitle": "Meshtastic Web Client"
+ },
+ "loading": "Loading...",
+ "unit": {
+ "cps": "CPS",
+ "dbm": "dBm",
+ "hertz": "Hz",
+ "hop": {
+ "one": "Hop",
+ "plural": "Hops"
+ },
+ "hopsAway": {
+ "one": "{{count}} hop away",
+ "plural": "{{count}} hops away",
+ "unknown": "Unknown hops away"
+ },
+ "megahertz": "MHz",
+ "raw": "raw",
+ "meter": {
+ "one": "Meter",
+ "plural": "Meters",
+ "suffix": "m"
+ },
+ "kilometer": {
+ "one": "Kilometer",
+ "plural": "Kilometers",
+ "suffix": "km"
+ },
+ "minute": {
+ "one": "Minute",
+ "plural": "Minutes"
+ },
+ "hour": {
+ "one": "Hour",
+ "plural": "Hours"
+ },
+ "millisecond": {
+ "one": "Millisecond",
+ "plural": "Milliseconds",
+ "suffix": "ms"
+ },
+ "second": {
+ "one": "Second",
+ "plural": "Seconds"
+ },
+ "day": {
+ "one": "Day",
+ "plural": "Days",
+ "today": "Today",
+ "yesterday": "Yesterday"
+ },
+ "month": {
+ "one": "Month",
+ "plural": "Months"
+ },
+ "year": {
+ "one": "Year",
+ "plural": "Years"
+ },
+ "snr": "SNR:",
+ "volt": {
+ "one": "Volt",
+ "plural": "Volts",
+ "suffix": "V"
+ },
+ "record": {
+ "one": "Rekordy",
+ "plural": "Rekordy"
+ },
+ "degree": {
+ "one": "Degree",
+ "plural": "Degrees",
+ "suffix": "°"
+ }
+ },
+ "security": {
+ "0bit": "Pusty",
+ "8bit": "8-bitowy",
+ "128bit": "128-bitowy",
+ "256bit": "256-bitowy"
+ },
+ "unknown": {
+ "longName": "Nieznany",
+ "shortName": "UNK",
+ "notAvailable": "N/A",
+ "num": "??"
+ },
+ "nodeUnknownPrefix": "!",
+ "unset": "UNSET",
+ "fallbackName": "Meshtastic {{last4}}",
+ "node": "Węzeł",
+ "formValidation": {
+ "unsavedChanges": "Niezapisane zmiany",
+ "tooBig": {
+ "string": "Too long, expected less than or equal to {{maximum}} characters.",
+ "number": "Too big, expected a number smaller than or equal to {{maximum}}.",
+ "bytes": "Too big, expected less than or equal to {{params.maximum}} bytes."
+ },
+ "tooSmall": {
+ "string": "Too short, expected more than or equal to {{minimum}} characters.",
+ "number": "Too small, expected a number larger than or equal to {{minimum}}."
+ },
+ "invalidFormat": {
+ "ipv4": "Nieprawidłowy format, oczekiwany adres IPv4.",
+ "key": "Invalid format, expected a Base64 encoded pre-shared key (PSK)."
+ },
+ "invalidType": {
+ "number": "Nieprawidłowy typ, oczekiwana liczba."
+ },
+ "pskLength": {
+ "0bit": "Klucz musi być pusty.",
+ "8bit": "Key is required to be an 8 bit pre-shared key (PSK).",
+ "128bit": "Key is required to be a 128 bit pre-shared key (PSK).",
+ "256bit": "Key is required to be a 256 bit pre-shared key (PSK)."
+ },
+ "required": {
+ "generic": "To pole jest wymagane.",
+ "managed": "Co najmniej jeden klucz administratora jest wymagany, jeśli węzeł jest zarządzany.",
+ "key": "Klucz jest wymagany."
+ },
+ "invalidOverrideFreq": {
+ "number": "Invalid format, expected a value in the range 410-930 MHz or 0 (use default)."
+ }
+ },
+ "yes": "Yes",
+ "no": "No"
}
diff --git a/packages/web/public/i18n/locales/pl-PL/config.json b/packages/web/public/i18n/locales/pl-PL/config.json
new file mode 100644
index 00000000..19506cd5
--- /dev/null
+++ b/packages/web/public/i18n/locales/pl-PL/config.json
@@ -0,0 +1,458 @@
+{
+ "page": {
+ "title": "Ustawienia",
+ "tabUser": "Użytkownik",
+ "tabChannels": "Kanały",
+ "tabBluetooth": "Bluetooth",
+ "tabDevice": "Urządzenie",
+ "tabDisplay": "Wyświetlacz",
+ "tabLora": "LoRa",
+ "tabNetwork": "Sieć",
+ "tabPosition": "Pozycjonowanie",
+ "tabPower": "Zasilanie",
+ "tabSecurity": "Bezpieczeństwo"
+ },
+ "sidebar": {
+ "label": "Konfiguracja"
+ },
+ "device": {
+ "title": "Ustawienia Urządzenia",
+ "description": "Ustawienia urządzenia",
+ "buttonPin": {
+ "description": "Nadpisanie pinu przycisku",
+ "label": "Pin przycisku"
+ },
+ "buzzerPin": {
+ "description": "Nadpisanie pinu buzzera",
+ "label": "Pin buzzera"
+ },
+ "disableTripleClick": {
+ "description": "Wyłącz potrójne kliknięcie",
+ "label": "Wyłącz potrójne kliknięcie"
+ },
+ "doubleTapAsButtonPress": {
+ "description": "Traktuj podwójne dotknięcie jako naciśnięcie przycisku",
+ "label": "Podwójne dotknięcie jako naciśnięcie przycisku"
+ },
+ "ledHeartbeatDisabled": {
+ "description": "Wyłącz domyślne miganie diody LED",
+ "label": "Pulsowanie diodą LED wyłączone"
+ },
+ "nodeInfoBroadcastInterval": {
+ "description": "Jak często nadawać informacje o węźle",
+ "label": "Interwał transmisji informacji o węźle"
+ },
+ "posixTimezone": {
+ "description": "Strefa czasowa POSIX urządzenia",
+ "label": "Strefa czasowa POSIX"
+ },
+ "rebroadcastMode": {
+ "description": "Jak obsługiwać retransmisję",
+ "label": "Tryb retransmisji"
+ },
+ "role": {
+ "description": "Jaką rolę pełni urządzenie w sieci",
+ "label": "Rola"
+ }
+ },
+ "bluetooth": {
+ "title": "Ustawienia Bluetooth",
+ "description": "Ustawienia modułu Bluetooth",
+ "note": "Uwaga: Niektóre urządzenia (ESP32) nie mogą używać jednocześnie Bluetooth i WiFi.",
+ "enabled": {
+ "description": "Włącz/wyłącz Bluetooth",
+ "label": "Włączony"
+ },
+ "pairingMode": {
+ "description": "Wybór trybu pinu",
+ "label": "Tryb parowania"
+ },
+ "pin": {
+ "description": "Pin do użycia podczas łączenia",
+ "label": "Pin"
+ }
+ },
+ "display": {
+ "description": "Ustawienia ekranu urządzenia",
+ "title": "Ustawienia ekranu",
+ "headingBold": {
+ "description": "Pogrubiony tekst nagłówka",
+ "label": "Pogrubiony nagłówek"
+ },
+ "carouselDelay": {
+ "description": "Jak szybko przechodzić przez okna",
+ "label": "Opóźnienie karuzeli"
+ },
+ "compassNorthTop": {
+ "description": "Przypnij północ na górę kompasu",
+ "label": "Północ na górze kompasu"
+ },
+ "displayMode": {
+ "description": "Wariant układu ekranu",
+ "label": "Tryb wyświetlania"
+ },
+ "displayUnits": {
+ "description": "Wyświetl jednostki metryczne lub imperialne",
+ "label": "Jednostki wyświetlania"
+ },
+ "flipScreen": {
+ "description": "Odwróć ekran o 180 stopni",
+ "label": "Odwróć ekran"
+ },
+ "gpsDisplayUnits": {
+ "description": "Format wyświetlania współrzędnych",
+ "label": "Jednostki wyświetlania GPS"
+ },
+ "oledType": {
+ "description": "Typ ekranu OLED podłączonego do urządzenia",
+ "label": "Typ ekranu OLED"
+ },
+ "screenTimeout": {
+ "description": "Wyłącz ekran po tym czasie",
+ "label": "Wygaszenie ekranu"
+ },
+ "twelveHourClock": {
+ "description": "Użyj 12-godzinnego formatu zegara",
+ "label": "12-Godzinny Zegar"
+ },
+ "wakeOnTapOrMotion": {
+ "description": "Obudź urządzenie przy dotknięciu lub ruchu",
+ "label": "Wybudź przy dotknięciu lub ruchu"
+ }
+ },
+ "lora": {
+ "title": "Ustawienia sieci",
+ "description": "Ustawienia sieci LoRa",
+ "bandwidth": {
+ "description": "Szerokość kanału w MHz",
+ "label": "Pasmo"
+ },
+ "boostedRxGain": {
+ "description": "Zwiększone wzmocnienie RX",
+ "label": "Zwiększone wzmocnienie RX"
+ },
+ "codingRate": {
+ "description": "mianownik tempa kodowania",
+ "label": "Szybkość kodowania"
+ },
+ "frequencyOffset": {
+ "description": "Przesunięcie częstotliwości w celu skorygowania błędów kalibracji kryształu",
+ "label": "Przesunięcie częstotliwości"
+ },
+ "frequencySlot": {
+ "description": "Numer kanału częstotliwości LoRa",
+ "label": "Slot częstotliwości"
+ },
+ "hopLimit": {
+ "description": "Maksymalna liczba przeskoków",
+ "label": "Limit przeskoków"
+ },
+ "ignoreMqtt": {
+ "description": "Nie przekazuj wiadomości MQTT przez sieć",
+ "label": "Zignoruj MQTT"
+ },
+ "modemPreset": {
+ "description": "Ustawienie modemu do użycia",
+ "label": "Ustawienie modemu"
+ },
+ "okToMqtt": {
+ "description": "Gdy ustawione na true, ta konfiguracja wskazuje, że użytkownik zatwierdza pakiet do przesłania do MQTT. Jeśli ustawione na false, zdalne węzły są proszone o nieprzekazywanie pakietów do MQTT",
+ "label": "Zgoda na MQTT"
+ },
+ "overrideDutyCycle": {
+ "description": "Nadpisz cykl pracy",
+ "label": "Nadpisz cykl pracy"
+ },
+ "overrideFrequency": {
+ "description": "Nadpisz częstotliwość",
+ "label": "Nadpisz częstotliwość"
+ },
+ "region": {
+ "description": "Ustawia region dla Twojego węzła",
+ "label": "Region"
+ },
+ "spreadingFactor": {
+ "description": "Wskazuje liczbę chirpów na symbol",
+ "label": "Współczynnik rozszerzania"
+ },
+ "transmitEnabled": {
+ "description": "Włącz/Wyłącz nadawanie (TX) z LoRa radio",
+ "label": "Nadawanie włączone"
+ },
+ "transmitPower": {
+ "description": "Maksymalna moc nadawania",
+ "label": "Moc nadawania"
+ },
+ "usePreset": {
+ "description": "Użyj predefiniowanych ustawień modemu",
+ "label": "Użyj predefiniowanych ustawień"
+ },
+ "meshSettings": {
+ "description": "Ustawienia sieci LoRa",
+ "label": "Ustawienia sieci"
+ },
+ "waveformSettings": {
+ "description": "Ustawienia dla LoRa waveform",
+ "label": "Ustawienia przebiegu fali"
+ },
+ "radioSettings": {
+ "label": "Ustawienia radia",
+ "description": "Ustawienia dla radia LoRa"
+ }
+ },
+ "network": {
+ "title": "Konfiguracja Wi-Fi",
+ "description": "Konfiguracja radia WiFi",
+ "note": "Uwaga: Niektóre urządzenia (ESP32) nie mogą używać jednocześnie Bluetooth i WiFi.",
+ "addressMode": {
+ "description": "Wybór przypisania adresu",
+ "label": "Tryb adresu"
+ },
+ "dns": {
+ "description": "Serwer DNS",
+ "label": "DNS"
+ },
+ "ethernetEnabled": {
+ "description": "Włącz lub wyłącz port Ethernet",
+ "label": "Włączony"
+ },
+ "gateway": {
+ "description": "Brama Domyślna",
+ "label": "Brama domyślna"
+ },
+ "ip": {
+ "description": "Adres IP",
+ "label": "IP"
+ },
+ "psk": {
+ "description": "Hasło do sieci",
+ "label": "PSK"
+ },
+ "ssid": {
+ "description": "Nazwa sieci",
+ "label": "SSID"
+ },
+ "subnet": {
+ "description": "Maska podsieci",
+ "label": "Podsieć"
+ },
+ "wifiEnabled": {
+ "description": "Włącz lub wyłącz radio Wi-Fi",
+ "label": "Włączony"
+ },
+ "meshViaUdp": {
+ "label": "Mesh przez UDP"
+ },
+ "ntpServer": {
+ "label": "Serwer NTP"
+ },
+ "rsyslogServer": {
+ "label": "Serwer rsyslog"
+ },
+ "ethernetConfigSettings": {
+ "description": "Konfiguracja portu Ethernet",
+ "label": "Konfiguracja Ethernet"
+ },
+ "ipConfigSettings": {
+ "description": "Konfiguracja adresu IP",
+ "label": "Konfiguracja IP"
+ },
+ "ntpConfigSettings": {
+ "description": "Konfiguracja NTP",
+ "label": "Konfiguracja NTP"
+ },
+ "rsyslogConfigSettings": {
+ "description": "Konfiguracja Rsyslog",
+ "label": "Konfiguracja Rsyslog"
+ },
+ "udpConfigSettings": {
+ "description": "Konfiguracja UDP przez mesh ",
+ "label": "Ustawienia UDP"
+ }
+ },
+ "position": {
+ "title": "Ustawienia położenia",
+ "description": "Ustawienia modułu położenia",
+ "broadcastInterval": {
+ "description": "Jak często Twoja pozycja jest wysyłana przez sieć",
+ "label": "Interwał transmisji"
+ },
+ "enablePin": {
+ "description": "Nadpisanie pinu włączającego moduł GPS",
+ "label": "Pin włączający"
+ },
+ "fixedPosition": {
+ "description": "Nie zgłaszaj położenia GPS, tylko ręcznie określoną.",
+ "label": "Położenie stałe"
+ },
+ "gpsMode": {
+ "description": "Skonfiguruj czy urządzenie GPS jest włączone, wyłączone, czy nie jest obecne",
+ "label": "Tryb GPS"
+ },
+ "gpsUpdateInterval": {
+ "description": "Jak często powinna być odczytana pozycja z GPS",
+ "label": "Interwał aktualizacji pozycji GPS"
+ },
+ "positionFlags": {
+ "description": "Opcjonalne pola dołączane podczas składania komunikatów o pozycji. Im więcej pól zostanie wybranych, tym większa wiadomość doprowadzi do dłuższego wykorzystania pasma i większego ryzyka utraty pakietów.",
+ "label": "Flagi położenia"
+ },
+ "receivePin": {
+ "description": "Nadpisanie pinu RX modułu GPS",
+ "label": "Pin odbioru"
+ },
+ "smartPositionEnabled": {
+ "description": "Wyślij pozycję tylko wtedy, gdy nastąpiła znacząca zmiana lokalizacji",
+ "label": "Włącz inteligentną pozycję"
+ },
+ "smartPositionMinDistance": {
+ "description": "Minimalna odległość (w metrach), którą należy pokonać przed wysłaniem aktualizacji pozycji",
+ "label": "Minimalna odległość inteligentnego położenia"
+ },
+ "smartPositionMinInterval": {
+ "description": "Minimalny interwał (w sekundach), który musi upłynąć przed wysłaniem aktualizacji pozycji",
+ "label": "Minimalny interwał inteligentnej pozycji"
+ },
+ "transmitPin": {
+ "description": "Nadpisanie pinu TX modułu GPS",
+ "label": "Pin nadawania"
+ },
+ "intervalsSettings": {
+ "description": "Jak często wysyłać aktualizację pozycji",
+ "label": "Interwały"
+ },
+ "flags": {
+ "placeholder": "Wybierz flagi pozycji...",
+ "altitude": "Wysokość",
+ "altitudeGeoidalSeparation": "Rozdzielenie geoidalne wysokości",
+ "altitudeMsl": "Wysokość jest średnim poziomem morza",
+ "dop": "Rozcieńczanie PDOP precyzji (DOP) używane domyślnie",
+ "hdopVdop": "Jeśli ustawiono DOP, użyj wartości HDOP / VDOP zamiast PDOP",
+ "numSatellites": "Liczba satelitów",
+ "sequenceNumber": "Numer sekwencji",
+ "timestamp": "Znacznik czasu",
+ "unset": "Nieustawiony",
+ "vehicleHeading": "Kurs pojazdu",
+ "vehicleSpeed": "Prędkość pojazdu"
+ }
+ },
+ "power": {
+ "adcMultiplierOverride": {
+ "description": "Używane do poprawiania odczytu napięcia baterii",
+ "label": "Współczynnik nadpisania mnożnika ADC"
+ },
+ "ina219Address": {
+ "description": "Adres monitora baterii INA219",
+ "label": "Adres INA219"
+ },
+ "lightSleepDuration": {
+ "description": "Jak długo urządzenie pozostanie w lekkim uśpieniu",
+ "label": "Czas trwania lekkiego uśpienia"
+ },
+ "minimumWakeTime": {
+ "description": "Minimalny czas, w którym urządzenie pozostanie wybudzone po otrzymaniu pakietu",
+ "label": "Minimalny czas wybudzania"
+ },
+ "noConnectionBluetoothDisabled": {
+ "description": "Jeśli urządzenie nie otrzyma połączenia Bluetooth, po tym czasie radio BLE zostanie wyłączone",
+ "label": "Bluetooth wyłączony przy braku połączeń"
+ },
+ "powerSavingEnabled": {
+ "description": "Wybierz, jeśli zasilane jest z źródła o niskim natężeniu (np. słonecznego), aby zminimalizować zużycie energii w miarę możliwości.",
+ "label": "Włącz tryb oszczędzania energii"
+ },
+ "shutdownOnBatteryDelay": {
+ "description": "Automatycznie zamknij węzeł po tym czasie, gdy jest na baterii, 0 dla bezterminowego",
+ "label": "Opóźnienie wyłączenia na baterii"
+ },
+ "superDeepSleepDuration": {
+ "description": "Jak długo urządzenie pozostanie w bardzo głębokim uśpieniu",
+ "label": "Czas bardzo głębokiego uśpienia"
+ },
+ "powerConfigSettings": {
+ "description": "Ustawienia modułu zasilania",
+ "label": "Konfiguracja zarządzania energią"
+ },
+ "sleepSettings": {
+ "description": "Ustawienia uśpienia modułu zasilania",
+ "label": "Ustawienia uśpienia"
+ }
+ },
+ "security": {
+ "description": "Ustawienia dla konfiguracji zabezpieczeń",
+ "title": "Ustawienia bezpieczeństwa",
+ "button_backupKey": "Kopia zapasowa klucza",
+ "adminChannelEnabled": {
+ "description": "Zezwalaj na kontrolę urządzenia przez niezabezpieczony kanał admina (stare)",
+ "label": "Zezwalaj na kontrolę admina (stare)"
+ },
+ "enableDebugLogApi": {
+ "description": "Wyjście logowania debugowania na żywo nad serwerem, widok i eksport logów urządzenia poprawionego pozycją przez Bluetooth",
+ "label": "Włącz API logów debugowania"
+ },
+ "managed": {
+ "description": "Jeśli włączone, opcje konfiguracji urządzenia można zmienić zdalnie tylko przez zdalny węzeł administracyjny za pomocą wiadomości administratora. Nie włączaj tej opcji, chyba że co najmniej jeden odpowiedni zdalny węzeł administracyjny został skonfigurowany, a klucz publiczny jest przechowywany w jednym z powyższych pól.",
+ "label": "Zarządzane"
+ },
+ "privateKey": {
+ "description": "Używane do tworzenia klucza współdzielonego ze zdalnym urządzeniem",
+ "label": "Klucz prywatny"
+ },
+ "publicKey": {
+ "description": "Wysyłane do innych węzłów w sieci, aby umożliwić im obliczenie wspólnego tajnego klucza",
+ "label": "Klucz publiczny"
+ },
+ "primaryAdminKey": {
+ "description": "Główny klucz publiczny autoryzowany do wysyłania wiadomości administratora do tego węzła",
+ "label": "Główny klucz administratora"
+ },
+ "secondaryAdminKey": {
+ "description": "Drugorzędny klucz publiczny autoryzowany do wysyłania wiadomości administratora do tego węzła",
+ "label": "Drugorzędny klucz administracyjny"
+ },
+ "serialOutputEnabled": {
+ "description": "Konsola szeregowa przez Stream API",
+ "label": "Wyjście szeregowe włączone"
+ },
+ "tertiaryAdminKey": {
+ "description": "Klucz publiczny trzeciorzędny autoryzowany do wysyłania wiadomości administratora do tego węzła",
+ "label": "Trzeciorzędny klucz administracyjny"
+ },
+ "adminSettings": {
+ "description": "Ustawienia dla administratora",
+ "label": "Ustawienia administracyjne"
+ },
+ "loggingSettings": {
+ "description": "Ustawienia logowania",
+ "label": "Ustawienia logowania"
+ }
+ },
+ "user": {
+ "title": "User Settings",
+ "description": "Configure your device name and identity settings",
+ "longName": {
+ "label": "Długa nazwa",
+ "description": "Your full display name (1-40 characters)",
+ "validation": {
+ "min": "Long name must be at least 1 character",
+ "max": "Long name must be at most 40 characters"
+ }
+ },
+ "shortName": {
+ "label": "Krótka nazwa",
+ "description": "Your abbreviated name (2-4 characters)",
+ "validation": {
+ "min": "Short name must be at least 2 characters",
+ "max": "Short name must be at most 4 characters"
+ }
+ },
+ "isUnmessageable": {
+ "label": "Unmessageable",
+ "description": "Used to identify unmonitored or infrastructure nodes so that messaging is not available to nodes that will never respond."
+ },
+ "isLicensed": {
+ "label": "Licensed amateur radio (HAM)",
+ "description": "Enable if you are a licensed amateur radio operator, enabling this option disables encryption and is not compatible with the default Meshtastic network."
+ }
+ }
+}
diff --git a/packages/web/public/i18n/locales/pl-PL/dashboard.json b/packages/web/public/i18n/locales/pl-PL/dashboard.json
index 553ebb9c..f479246f 100644
--- a/packages/web/public/i18n/locales/pl-PL/dashboard.json
+++ b/packages/web/public/i18n/locales/pl-PL/dashboard.json
@@ -1,12 +1,12 @@
{
- "dashboard": {
- "title": "Connected Devices",
- "description": "Manage your connected Meshtastic devices.",
- "connectionType_ble": "BLE",
- "connectionType_serial": "Seryjny",
- "connectionType_network": "Sieć",
- "noDevicesTitle": "No devices connected",
- "noDevicesDescription": "Connect a new device to get started.",
- "button_newConnection": "New Connection"
- }
+ "dashboard": {
+ "title": "Connected Devices",
+ "description": "Manage your connected Meshtastic devices.",
+ "connectionType_ble": "BLE",
+ "connectionType_serial": "Seryjny",
+ "connectionType_network": "Sieć",
+ "noDevicesTitle": "No devices connected",
+ "noDevicesDescription": "Connect a new device to get started.",
+ "button_newConnection": "New Connection"
+ }
}
diff --git a/packages/web/public/i18n/locales/pl-PL/dialog.json b/packages/web/public/i18n/locales/pl-PL/dialog.json
index ef31acc4..f23778e3 100644
--- a/packages/web/public/i18n/locales/pl-PL/dialog.json
+++ b/packages/web/public/i18n/locales/pl-PL/dialog.json
@@ -1,193 +1,221 @@
{
- "deleteMessages": {
- "description": "This action will clear all message history. This cannot be undone. Are you sure you want to continue?",
- "title": "Clear All Messages"
- },
- "deviceName": {
- "description": "The Device will restart once the config is saved.",
- "longName": "Długa nazwa",
- "shortName": "Short Name",
- "title": "Change Device Name",
- "validation": {
- "longNameMax": "Long name must not be more than 40 characters",
- "shortNameMax": "Short name must not be more than 4 characters",
- "longNameMin": "Long name must have at least 1 character",
- "shortNameMin": "Short name must have at least 1 character"
- }
- },
- "import": {
- "description": "The current LoRa configuration will be overridden.",
- "error": {
- "invalidUrl": "Invalid Meshtastic URL"
- },
- "channelPrefix": "Channel: ",
- "channelSetUrl": "Channel Set/QR Code URL",
- "channels": "Channels:",
- "usePreset": "Use Preset?",
- "title": "Import Channel Set"
- },
- "locationResponse": {
- "title": "Location: {{identifier}}",
- "altitude": "Altitude: ",
- "coordinates": "Coordinates: ",
- "noCoordinates": "Brak współrzędnych"
- },
- "pkiRegenerateDialog": {
- "title": "Regenerate Pre-Shared Key?",
- "description": "Are you sure you want to regenerate the pre-shared key?",
- "regenerate": "Regenerate"
- },
- "newDeviceDialog": {
- "title": "Connect New Device",
- "https": "https",
- "http": "http",
- "tabHttp": "HTTP",
- "tabBluetooth": "Bluetooth",
- "tabSerial": "Seryjny",
- "useHttps": "Use HTTPS",
- "connecting": "Connecting...",
- "connect": "Połącz",
- "connectionFailedAlert": {
- "title": "Connection Failed",
- "descriptionPrefix": "Could not connect to the device. ",
- "httpsHint": "If using HTTPS, you may need to accept a self-signed certificate first. ",
- "openLinkPrefix": "Please open ",
- "openLinkSuffix": " in a new tab",
- "acceptTlsWarningSuffix": ", accept any TLS warnings if prompted, then try again",
- "learnMoreLink": "Learn more"
- },
- "httpConnection": {
- "label": "IP Address/Hostname",
- "placeholder": "000.000.000.000 / meshtastic.local"
- },
- "serialConnection": {
- "noDevicesPaired": "No devices paired yet.",
- "newDeviceButton": "New device",
- "deviceIdentifier": "# {{index}} - {{vendorId}} - {{productId}}"
- },
- "bluetoothConnection": {
- "noDevicesPaired": "No devices paired yet.",
- "newDeviceButton": "New device",
- "connectionFailed": "Connection failed",
- "deviceDisconnected": "Device disconnected",
- "unknownDevice": "Unknown Device",
- "errorLoadingDevices": "Error loading devices",
- "unknownErrorLoadingDevices": "Unknown error loading devices"
- },
- "validation": {
- "requiresWebBluetooth": "This connection type requires <0>Web Bluetooth0>. Please use a supported browser, like Chrome or Edge.",
- "requiresWebSerial": "This connection type requires <0>Web Serial0>. Please use a supported browser, like Chrome or Edge.",
- "requiresSecureContext": "This application requires a <0>secure context0>. Please connect using HTTPS or localhost.",
- "additionallyRequiresSecureContext": "Additionally, it requires a <0>secure context0>. Please connect using HTTPS or localhost."
- }
- },
- "nodeDetails": {
- "message": "Wiadomość",
- "requestPosition": "Poproś o pozycję",
- "traceRoute": "Trace Route",
- "airTxUtilization": "Air TX utilization",
- "allRawMetrics": "All Raw Metrics:",
- "batteryLevel": "Battery level",
- "channelUtilization": "Channel utilization",
- "details": "Details:",
- "deviceMetrics": "Device Metrics:",
- "hardware": "Hardware: ",
- "lastHeard": "Last Heard: ",
- "nodeHexPrefix": "Node Hex: ",
- "nodeNumber": "Node Number: ",
- "position": "Position:",
- "role": "Role: ",
- "uptime": "Uptime: ",
- "voltage": "Napięcie",
- "title": "Node Details for {{identifier}}",
- "ignoreNode": "Ignore node",
- "removeNode": "Remove node",
- "unignoreNode": "Unignore node",
- "security": "Security:",
- "publicKey": "Public Key: ",
- "messageable": "Messageable: ",
- "KeyManuallyVerifiedTrue": "Public Key has been manually verified",
- "KeyManuallyVerifiedFalse": "Public Key is not manually verified"
- },
- "pkiBackup": {
- "loseKeysWarning": "If you lose your keys, you will need to reset your device.",
- "secureBackup": "Its important to backup your public and private keys and store your backup securely!",
- "footer": "=== END OF KEYS ===",
- "header": "=== MESHTASTIC KEYS FOR {{longName}} ({{shortName}}) ===",
- "privateKey": "Private Key:",
- "publicKey": "Public Key:",
- "fileName": "meshtastic_keys_{{longName}}_{{shortName}}.txt",
- "title": "Backup Keys"
- },
- "pkiBackupReminder": {
- "description": "We recommend backing up your key data regularly. Would you like to back up now?",
- "title": "Backup Reminder",
- "remindLaterPrefix": "Remind me in",
- "remindNever": "Never remind me",
- "backupNow": "Back up now"
- },
- "pkiRegenerate": {
- "description": "Are you sure you want to regenerate key pair?",
- "title": "Regenerate Key Pair"
- },
- "qr": {
- "addChannels": "Add Channels",
- "replaceChannels": "Replace Channels",
- "description": "The current LoRa configuration will also be shared.",
- "sharableUrl": "Sharable URL",
- "title": "Generuj Kod QR"
- },
- "reboot": {
- "title": "Reboot device",
- "description": "Reboot now or schedule a reboot of the connected node. Optionally, you can choose to reboot into OTA (Over-the-Air) mode.",
- "ota": "Reboot into OTA mode",
- "enterDelay": "Enter delay",
- "scheduled": "Reboot has been scheduled",
- "schedule": "Schedule reboot",
- "now": "Reboot now",
- "cancel": "Cancel scheduled reboot"
- },
- "refreshKeys": {
- "description": {
- "acceptNewKeys": "This will remove the node from device and request new keys.",
- "keyMismatchReasonSuffix": ". This is due to the remote node's current public key does not match the previously stored key for this node.",
- "unableToSendDmPrefix": "Your node is unable to send a direct message to node: "
- },
- "acceptNewKeys": "Accept New Keys",
- "title": "Keys Mismatch - {{identifier}}"
- },
- "removeNode": {
- "description": "Are you sure you want to remove this Node?",
- "title": "Remove Node?"
- },
- "shutdown": {
- "title": "Schedule Shutdown",
- "description": "Turn off the connected node after x minutes."
- },
- "traceRoute": {
- "routeToDestination": "Route to destination:",
- "routeBack": "Route back:"
- },
- "tracerouteResponse": {
- "title": "Traceroute: {{identifier}}"
- },
- "unsafeRoles": {
- "confirmUnderstanding": "Yes, I know what I'm doing",
- "conjunction": " and the blog post about ",
- "postamble": " and understand the implications of changing the role.",
- "preamble": "I have read the ",
- "choosingRightDeviceRole": "Choosing The Right Device Role",
- "deviceRoleDocumentation": "Device Role Documentation",
- "title": "Jesteś pewny?"
- },
- "managedMode": {
- "confirmUnderstanding": "Yes, I know what I'm doing",
- "title": "Jesteś pewny?",
- "description": "Enabling Managed Mode blocks client applications (including the web client) from writing configurations to a radio. Once enabled, radio configurations can only be changed through Remote Admin messages. This setting is not required for remote node administration."
- },
- "clientNotification": {
- "title": "Client Notification",
- "TraceRoute can only be sent once every 30 seconds": "TraceRoute can only be sent once every 30 seconds",
- "Compromised keys were detected and regenerated.": "Compromised keys were detected and regenerated."
- }
+ "deleteMessages": {
+ "description": "This action will clear all message history. This cannot be undone. Are you sure you want to continue?",
+ "title": "Clear All Messages"
+ },
+ "deviceName": {
+ "description": "The Device will restart once the config is saved.",
+ "longName": "Długa nazwa",
+ "shortName": "Short Name",
+ "title": "Change Device Name",
+ "validation": {
+ "longNameMax": "Long name must not be more than 40 characters",
+ "shortNameMax": "Short name must not be more than 4 characters",
+ "longNameMin": "Long name must have at least 1 character",
+ "shortNameMin": "Short name must have at least 1 character"
+ }
+ },
+ "import": {
+ "description": "The current LoRa configuration will be overridden.",
+ "error": {
+ "invalidUrl": "Invalid Meshtastic URL"
+ },
+ "channelPrefix": "Channel: ",
+ "primary": "Primary ",
+ "doNotImport": "No not import",
+ "channelName": "Nazwa",
+ "channelSlot": "Slot",
+ "channelSetUrl": "Channel Set/QR Code URL",
+ "useLoraConfig": "Import LoRa Config",
+ "presetDescription": "The current LoRa Config will be replaced.",
+ "title": "Import Channel Set"
+ },
+ "locationResponse": {
+ "title": "Location: {{identifier}}",
+ "altitude": "Altitude: ",
+ "coordinates": "Coordinates: ",
+ "noCoordinates": "Brak współrzędnych"
+ },
+ "pkiRegenerateDialog": {
+ "title": "Regenerate Pre-Shared Key?",
+ "description": "Are you sure you want to regenerate the pre-shared key?",
+ "regenerate": "Regenerate"
+ },
+ "newDeviceDialog": {
+ "title": "Connect New Device",
+ "https": "https",
+ "http": "http",
+ "tabHttp": "HTTP",
+ "tabBluetooth": "Bluetooth",
+ "tabSerial": "Seryjny",
+ "useHttps": "Use HTTPS",
+ "connecting": "Connecting...",
+ "connect": "Połącz",
+ "connectionFailedAlert": {
+ "title": "Connection Failed",
+ "descriptionPrefix": "Could not connect to the device. ",
+ "httpsHint": "If using HTTPS, you may need to accept a self-signed certificate first. ",
+ "openLinkPrefix": "Please open ",
+ "openLinkSuffix": " in a new tab",
+ "acceptTlsWarningSuffix": ", accept any TLS warnings if prompted, then try again",
+ "learnMoreLink": "Learn more"
+ },
+ "httpConnection": {
+ "label": "IP Address/Hostname",
+ "placeholder": "000.000.000.000 / meshtastic.local"
+ },
+ "serialConnection": {
+ "noDevicesPaired": "No devices paired yet.",
+ "newDeviceButton": "New device",
+ "deviceIdentifier": "# {{index}} - {{vendorId}} - {{productId}}"
+ },
+ "bluetoothConnection": {
+ "noDevicesPaired": "No devices paired yet.",
+ "newDeviceButton": "New device",
+ "connectionFailed": "Connection failed",
+ "deviceDisconnected": "Device disconnected",
+ "unknownDevice": "Unknown Device",
+ "errorLoadingDevices": "Error loading devices",
+ "unknownErrorLoadingDevices": "Unknown error loading devices"
+ },
+ "validation": {
+ "requiresWebBluetooth": "This connection type requires <0>Web Bluetooth0>. Please use a supported browser, like Chrome or Edge.",
+ "requiresWebSerial": "This connection type requires <0>Web Serial0>. Please use a supported browser, like Chrome or Edge.",
+ "requiresSecureContext": "This application requires a <0>secure context0>. Please connect using HTTPS or localhost.",
+ "additionallyRequiresSecureContext": "Additionally, it requires a <0>secure context0>. Please connect using HTTPS or localhost."
+ }
+ },
+ "nodeDetails": {
+ "message": "Wiadomość",
+ "requestPosition": "Poproś o pozycję",
+ "traceRoute": "Trace Route",
+ "airTxUtilization": "Air TX utilization",
+ "allRawMetrics": "All Raw Metrics:",
+ "batteryLevel": "Battery level",
+ "channelUtilization": "Channel utilization",
+ "details": "Details:",
+ "deviceMetrics": "Device Metrics:",
+ "hardware": "Hardware: ",
+ "lastHeard": "Last Heard: ",
+ "nodeHexPrefix": "Node Hex: ",
+ "nodeNumber": "Node Number: ",
+ "position": "Position:",
+ "role": "Role: ",
+ "uptime": "Uptime: ",
+ "voltage": "Napięcie",
+ "title": "Node Details for {{identifier}}",
+ "ignoreNode": "Ignore node",
+ "removeNode": "Remove node",
+ "unignoreNode": "Unignore node",
+ "security": "Security:",
+ "publicKey": "Public Key: ",
+ "messageable": "Messageable: ",
+ "KeyManuallyVerifiedTrue": "Public Key has been manually verified",
+ "KeyManuallyVerifiedFalse": "Public Key is not manually verified"
+ },
+ "pkiBackup": {
+ "loseKeysWarning": "If you lose your keys, you will need to reset your device.",
+ "secureBackup": "Its important to backup your public and private keys and store your backup securely!",
+ "footer": "=== END OF KEYS ===",
+ "header": "=== MESHTASTIC KEYS FOR {{longName}} ({{shortName}}) ===",
+ "privateKey": "Private Key:",
+ "publicKey": "Public Key:",
+ "fileName": "meshtastic_keys_{{longName}}_{{shortName}}.txt",
+ "title": "Backup Keys"
+ },
+ "pkiBackupReminder": {
+ "description": "We recommend backing up your key data regularly. Would you like to back up now?",
+ "title": "Backup Reminder",
+ "remindLaterPrefix": "Remind me in",
+ "remindNever": "Never remind me",
+ "backupNow": "Back up now"
+ },
+ "pkiRegenerate": {
+ "description": "Are you sure you want to regenerate key pair?",
+ "title": "Regenerate Key Pair"
+ },
+ "qr": {
+ "addChannels": "Add Channels",
+ "replaceChannels": "Replace Channels",
+ "description": "The current LoRa configuration will also be shared.",
+ "sharableUrl": "Sharable URL",
+ "title": "Generuj Kod QR"
+ },
+ "reboot": {
+ "title": "Reboot device",
+ "description": "Reboot now or schedule a reboot of the connected node. Optionally, you can choose to reboot into OTA (Over-the-Air) mode.",
+ "ota": "Reboot into OTA mode",
+ "enterDelay": "Enter delay",
+ "scheduled": "Reboot has been scheduled",
+ "schedule": "Schedule reboot",
+ "now": "Reboot now",
+ "cancel": "Cancel scheduled reboot"
+ },
+ "refreshKeys": {
+ "description": {
+ "acceptNewKeys": "This will remove the node from device and request new keys.",
+ "keyMismatchReasonSuffix": ". This is due to the remote node's current public key does not match the previously stored key for this node.",
+ "unableToSendDmPrefix": "Your node is unable to send a direct message to node: "
+ },
+ "acceptNewKeys": "Accept New Keys",
+ "title": "Keys Mismatch - {{identifier}}"
+ },
+ "removeNode": {
+ "description": "Are you sure you want to remove this Node?",
+ "title": "Remove Node?"
+ },
+ "shutdown": {
+ "title": "Schedule Shutdown",
+ "description": "Turn off the connected node after x minutes."
+ },
+ "traceRoute": {
+ "routeToDestination": "Route to destination:",
+ "routeBack": "Route back:"
+ },
+ "tracerouteResponse": {
+ "title": "Traceroute: {{identifier}}"
+ },
+ "unsafeRoles": {
+ "confirmUnderstanding": "Yes, I know what I'm doing",
+ "conjunction": " and the blog post about ",
+ "postamble": " and understand the implications of changing the role.",
+ "preamble": "I have read the ",
+ "choosingRightDeviceRole": "Choosing The Right Device Role",
+ "deviceRoleDocumentation": "Device Role Documentation",
+ "title": "Jesteś pewny?"
+ },
+ "managedMode": {
+ "confirmUnderstanding": "Yes, I know what I'm doing",
+ "title": "Jesteś pewny?",
+ "description": "Enabling Managed Mode blocks client applications (including the web client) from writing configurations to a radio. Once enabled, radio configurations can only be changed through Remote Admin messages. This setting is not required for remote node administration."
+ },
+ "clientNotification": {
+ "title": "Client Notification",
+ "TraceRoute can only be sent once every 30 seconds": "TraceRoute can only be sent once every 30 seconds",
+ "Compromised keys were detected and regenerated.": "Compromised keys were detected and regenerated."
+ },
+ "resetNodeDb": {
+ "title": "Reset Node Database",
+ "description": "This will clear all nodes from the connected device's node database and clear all message history in the client. This cannot be undone. Are you sure you want to continue?",
+ "confirm": "Reset Node Database",
+ "failedTitle": "There was an error resetting the Node DB. Please try again."
+ },
+ "clearAllStores": {
+ "title": "Clear All Local Storage",
+ "description": "This will clear all locally stored data, including message history and node databases for all previously connected devices. This will require you to reconnect to your node once complete and cannot be undone. Are you sure you want to continue?",
+ "confirm": "Clear all local storage",
+ "failedTitle": "There was an error clearing local storage. Please try again."
+ },
+ "factoryResetDevice": {
+ "title": "Zresetuj urządzenie do ustawień fabrycznych",
+ "description": "This will factory reset the connected device, erasing all configurations and data on the device as well as all nodes and messages saved in the client. This cannot be undone. Are you sure you want to continue?",
+ "confirm": "Zresetuj urządzenie do ustawień fabrycznych",
+ "failedTitle": "There was an error performing the factory reset. Please try again."
+ },
+ "factoryResetConfig": {
+ "title": "Zresetuj ustawienia do ustawień fabrycznych",
+ "description": "This will factory reset the configuration on the connected device, erasing all configurations on the device. This cannot be undone. Are you sure you want to continue?",
+ "confirm": "Zresetuj ustawienia do ustawień fabrycznych",
+ "failedTitle": "There was an error performing the factory reset. Please try again."
+ }
}
diff --git a/packages/web/public/i18n/locales/pl-PL/map.json b/packages/web/public/i18n/locales/pl-PL/map.json
new file mode 100644
index 00000000..963e7b7b
--- /dev/null
+++ b/packages/web/public/i18n/locales/pl-PL/map.json
@@ -0,0 +1,38 @@
+{
+ "maplibre": {
+ "GeolocateControl.FindMyLocation": "Find my location",
+ "NavigationControl.ZoomIn": "Zoom in",
+ "NavigationControl.ZoomOut": "Zoom out",
+ "CooperativeGesturesHandler.WindowsHelpText": "Use Ctrl + scroll to zoom the map",
+ "CooperativeGesturesHandler.MacHelpText": "Use ⌘ + scroll to zoom the map",
+ "CooperativeGesturesHandler.MobileHelpText": "Use two fingers to move the map"
+ },
+ "layerTool": {
+ "nodeMarkers": "Show nodes",
+ "directNeighbors": "Show direct connections",
+ "remoteNeighbors": "Show remote connections",
+ "positionPrecision": "Show position precision",
+ "traceroutes": "Show traceroutes",
+ "waypoints": "Show waypoints"
+ },
+ "mapMenu": {
+ "locateAria": "Locate my node",
+ "layersAria": "Change map style"
+ },
+ "waypointDetail": {
+ "edit": "Edytuj",
+ "description": "Description:",
+ "createdBy": "Edited by:",
+ "createdDate": "Created:",
+ "updated": "Updated:",
+ "expires": "Expires:",
+ "distance": "Distance:",
+ "bearing": "Absolute bearing:",
+ "lockedTo": "Locked by:",
+ "latitude": "Latitude:",
+ "longitude": "Longitude:"
+ },
+ "myNode": {
+ "tooltip": "This device"
+ }
+}
diff --git a/packages/web/public/i18n/locales/pl-PL/messages.json b/packages/web/public/i18n/locales/pl-PL/messages.json
index 2d546141..1bc5c2fb 100644
--- a/packages/web/public/i18n/locales/pl-PL/messages.json
+++ b/packages/web/public/i18n/locales/pl-PL/messages.json
@@ -1,39 +1,39 @@
{
- "page": {
- "title": "Wiadomości: {{chatName}}",
- "placeholder": "Wpisz wiadomość"
- },
- "emptyState": {
- "title": "Wybierz czat",
- "text": "Brak wiadomości."
- },
- "selectChatPrompt": {
- "text": "Wybierz kanał lub węzeł do wysyłania wiadomości."
- },
- "sendMessage": {
- "placeholder": "Wpisz tutaj swoją wiadomość...",
- "sendButton": "Wyślij"
- },
- "actionsMenu": {
- "addReactionLabel": "Dodaj reakcję",
- "replyLabel": "Odpowiedz"
- },
- "deliveryStatus": {
- "delivered": {
- "label": "Wiadomość doręczona",
- "displayText": "Wiadomość doręczona"
- },
- "failed": {
- "label": "Nie udało się dostarczyć wiadomości",
- "displayText": "Dostawa nie powiodła się"
- },
- "unknown": {
- "label": "Status wiadomości nieznany",
- "displayText": "Nieznany stan"
- },
- "waiting": {
- "label": "Wysyłanie wiadomości",
- "displayText": "Oczekiwanie na dostawę"
- }
- }
+ "page": {
+ "title": "Wiadomości: {{chatName}}",
+ "placeholder": "Wpisz wiadomość"
+ },
+ "emptyState": {
+ "title": "Wybierz czat",
+ "text": "Brak wiadomości."
+ },
+ "selectChatPrompt": {
+ "text": "Wybierz kanał lub węzeł do wysyłania wiadomości."
+ },
+ "sendMessage": {
+ "placeholder": "Wpisz tutaj swoją wiadomość...",
+ "sendButton": "Wyślij"
+ },
+ "actionsMenu": {
+ "addReactionLabel": "Dodaj reakcję",
+ "replyLabel": "Odpowiedz"
+ },
+ "deliveryStatus": {
+ "delivered": {
+ "label": "Wiadomość doręczona",
+ "displayText": "Wiadomość doręczona"
+ },
+ "failed": {
+ "label": "Nie udało się dostarczyć wiadomości",
+ "displayText": "Dostawa nie powiodła się"
+ },
+ "unknown": {
+ "label": "Status wiadomości nieznany",
+ "displayText": "Nieznany stan"
+ },
+ "waiting": {
+ "label": "Wysyłanie wiadomości",
+ "displayText": "Oczekiwanie na dostawę"
+ }
+ }
}
diff --git a/packages/web/public/i18n/locales/pl-PL/moduleConfig.json b/packages/web/public/i18n/locales/pl-PL/moduleConfig.json
index 862b55cb..8bd63a74 100644
--- a/packages/web/public/i18n/locales/pl-PL/moduleConfig.json
+++ b/packages/web/public/i18n/locales/pl-PL/moduleConfig.json
@@ -1,448 +1,448 @@
{
- "page": {
- "tabAmbientLighting": "Ambient Lighting",
- "tabAudio": "Audio",
- "tabCannedMessage": "Canned",
- "tabDetectionSensor": "Detection Sensor",
- "tabExternalNotification": "Ext Notif",
- "tabMqtt": "MQTT",
- "tabNeighborInfo": "Neighbor Info",
- "tabPaxcounter": "Paxcounter",
- "tabRangeTest": "Test zasięgu",
- "tabSerial": "Seryjny",
- "tabStoreAndForward": "S&F",
- "tabTelemetry": "Telemetria"
- },
- "ambientLighting": {
- "title": "Ambient Lighting Settings",
- "description": "Settings for the Ambient Lighting module",
- "ledState": {
- "label": "LED State",
- "description": "Sets LED to on or off"
- },
- "current": {
- "label": "Natężenie",
- "description": "Sets the current for the LED output. Default is 10"
- },
- "red": {
- "label": "Czerwony",
- "description": "Sets the red LED level. Values are 0-255"
- },
- "green": {
- "label": "Zielony",
- "description": "Sets the green LED level. Values are 0-255"
- },
- "blue": {
- "label": "Niebieski",
- "description": "Sets the blue LED level. Values are 0-255"
- }
- },
- "audio": {
- "title": "Audio Settings",
- "description": "Settings for the Audio module",
- "codec2Enabled": {
- "label": "Codec 2 Enabled",
- "description": "Enable Codec 2 audio encoding"
- },
- "pttPin": {
- "label": "PTT Pin",
- "description": "GPIO pin to use for PTT"
- },
- "bitrate": {
- "label": "Bitrate",
- "description": "Bitrate to use for audio encoding"
- },
- "i2sWs": {
- "label": "i2S WS",
- "description": "GPIO pin to use for i2S WS"
- },
- "i2sSd": {
- "label": "i2S SD",
- "description": "GPIO pin to use for i2S SD"
- },
- "i2sDin": {
- "label": "i2S DIN",
- "description": "GPIO pin to use for i2S DIN"
- },
- "i2sSck": {
- "label": "i2S SCK",
- "description": "GPIO pin to use for i2S SCK"
- }
- },
- "cannedMessage": {
- "title": "Canned Message Settings",
- "description": "Settings for the Canned Message module",
- "moduleEnabled": {
- "label": "Module Enabled",
- "description": "Enable Canned Message"
- },
- "rotary1Enabled": {
- "label": "Rotary Encoder #1 Enabled",
- "description": "Enable the rotary encoder"
- },
- "inputbrokerPinA": {
- "label": "Encoder Pin A",
- "description": "GPIO Pin Value (1-39) For encoder port A"
- },
- "inputbrokerPinB": {
- "label": "Encoder Pin B",
- "description": "GPIO Pin Value (1-39) For encoder port B"
- },
- "inputbrokerPinPress": {
- "label": "Encoder Pin Press",
- "description": "GPIO Pin Value (1-39) For encoder Press"
- },
- "inputbrokerEventCw": {
- "label": "Clockwise event",
- "description": "Select input event."
- },
- "inputbrokerEventCcw": {
- "label": "Counter Clockwise event",
- "description": "Select input event."
- },
- "inputbrokerEventPress": {
- "label": "Press event",
- "description": "Select input event"
- },
- "updown1Enabled": {
- "label": "Up Down enabled",
- "description": "Enable the up / down encoder"
- },
- "allowInputSource": {
- "label": "Allow Input Source",
- "description": "Select from: '_any', 'rotEnc1', 'upDownEnc1', 'cardkb'"
- },
- "sendBell": {
- "label": "Send Bell",
- "description": "Sends a bell character with each message"
- }
- },
- "detectionSensor": {
- "title": "Detection Sensor Settings",
- "description": "Settings for the Detection Sensor module",
- "enabled": {
- "label": "Włączony",
- "description": "Enable or disable Detection Sensor Module"
- },
- "minimumBroadcastSecs": {
- "label": "Minimum Broadcast Seconds",
- "description": "The interval in seconds of how often we can send a message to the mesh when a state change is detected"
- },
- "stateBroadcastSecs": {
- "label": "State Broadcast Seconds",
- "description": "The interval in seconds of how often we should send a message to the mesh with the current state regardless of changes"
- },
- "sendBell": {
- "label": "Send Bell",
- "description": "Send ASCII bell with alert message"
- },
- "name": {
- "label": "Friendly Name",
- "description": "Used to format the message sent to mesh, max 20 Characters"
- },
- "monitorPin": {
- "label": "Monitor Pin",
- "description": "The GPIO pin to monitor for state changes"
- },
- "detectionTriggerType": {
- "label": "Detection Triggered Type",
- "description": "The type of trigger event to be used"
- },
- "usePullup": {
- "label": "Use Pullup",
- "description": "Whether or not use INPUT_PULLUP mode for GPIO pin"
- }
- },
- "externalNotification": {
- "title": "External Notification Settings",
- "description": "Configure the external notification module",
- "enabled": {
- "label": "Module Enabled",
- "description": "Enable External Notification"
- },
- "outputMs": {
- "label": "Output MS",
- "description": "Output MS"
- },
- "output": {
- "label": "Output",
- "description": "Output"
- },
- "outputVibra": {
- "label": "Output Vibrate",
- "description": "Output Vibrate"
- },
- "outputBuzzer": {
- "label": "Output Buzzer",
- "description": "Output Buzzer"
- },
- "active": {
- "label": "Active",
- "description": "Active"
- },
- "alertMessage": {
- "label": "Alert Message",
- "description": "Alert Message"
- },
- "alertMessageVibra": {
- "label": "Alert Message Vibrate",
- "description": "Alert Message Vibrate"
- },
- "alertMessageBuzzer": {
- "label": "Alert Message Buzzer",
- "description": "Alert Message Buzzer"
- },
- "alertBell": {
- "label": "Alert Bell",
- "description": "Should an alert be triggered when receiving an incoming bell?"
- },
- "alertBellVibra": {
- "label": "Alert Bell Vibrate",
- "description": "Alert Bell Vibrate"
- },
- "alertBellBuzzer": {
- "label": "Alert Bell Buzzer",
- "description": "Alert Bell Buzzer"
- },
- "usePwm": {
- "label": "Use PWM",
- "description": "Use PWM"
- },
- "nagTimeout": {
- "label": "Nag Timeout",
- "description": "Nag Timeout"
- },
- "useI2sAsBuzzer": {
- "label": "Use I²S Pin as Buzzer",
- "description": "Designate I²S Pin as Buzzer Output"
- }
- },
- "mqtt": {
- "title": "MQTT Settings",
- "description": "Settings for the MQTT module",
- "enabled": {
- "label": "Włączony",
- "description": "Enable or disable MQTT"
- },
- "address": {
- "label": "MQTT Server Address",
- "description": "MQTT server address to use for default/custom servers"
- },
- "username": {
- "label": "MQTT Username",
- "description": "MQTT username to use for default/custom servers"
- },
- "password": {
- "label": "MQTT Password",
- "description": "MQTT password to use for default/custom servers"
- },
- "encryptionEnabled": {
- "label": "Encryption Enabled",
- "description": "Enable or disable MQTT encryption. Note: All messages are sent to the MQTT broker unencrypted if this option is not enabled, even when your uplink channels have encryption keys set. This includes position data."
- },
- "jsonEnabled": {
- "label": "JSON Enabled",
- "description": "Whether to send/consume JSON packets on MQTT"
- },
- "tlsEnabled": {
- "label": "TLS Enabled",
- "description": "Enable or disable TLS"
- },
- "root": {
- "label": "Root topic",
- "description": "MQTT root topic to use for default/custom servers"
- },
- "proxyToClientEnabled": {
- "label": "MQTT Client Proxy Enabled",
- "description": "Utilizes the network connection to proxy MQTT messages to the client."
- },
- "mapReportingEnabled": {
- "label": "Map Reporting Enabled",
- "description": "Your node will periodically send an unencrypted map report packet to the configured MQTT server, this includes id, short and long name, approximate location, hardware model, role, firmware version, LoRa region, modem preset and primary channel name."
- },
- "mapReportSettings": {
- "publishIntervalSecs": {
- "label": "Map Report Publish Interval (s)",
- "description": "Interval in seconds to publish map reports"
- },
- "positionPrecision": {
- "label": "Approximate Location",
- "description": "Position shared will be accurate within this distance",
- "options": {
- "metric_km23": "Within 23 km",
- "metric_km12": "Within 12 km",
- "metric_km5_8": "Within 5.8 km",
- "metric_km2_9": "Within 2.9 km",
- "metric_km1_5": "Within 1.5 km",
- "metric_m700": "Within 700 m",
- "metric_m350": "Within 350 m",
- "metric_m200": "Within 200 m",
- "metric_m90": "Within 90 m",
- "metric_m50": "Within 50 m",
- "imperial_mi15": "W zasięgu 15 mil",
- "imperial_mi7_3": "W zasięgu 7,3 mil",
- "imperial_mi3_6": "W zasięgu 3,6 mil",
- "imperial_mi1_8": "W zasięgu 1,8 mil",
- "imperial_mi0_9": "W zasięgu 0,9 mil",
- "imperial_mi0_5": "W zasięgu 0,5 mili",
- "imperial_mi0_2": "W zasięgu 0,2 mil",
- "imperial_ft600": "W zasięgu 600 stóp",
- "imperial_ft300": "W zasięgu 300 stóp",
- "imperial_ft150": "W zasięgu 150 stóp"
- }
- }
- }
- },
- "neighborInfo": {
- "title": "Neighbor Info Settings",
- "description": "Settings for the Neighbor Info module",
- "enabled": {
- "label": "Włączony",
- "description": "Enable or disable Neighbor Info Module"
- },
- "updateInterval": {
- "label": "Update Interval",
- "description": "Interval in seconds of how often we should try to send our Neighbor Info to the mesh"
- }
- },
- "paxcounter": {
- "title": "Paxcounter Settings",
- "description": "Settings for the Paxcounter module",
- "enabled": {
- "label": "Module Enabled",
- "description": "Enable Paxcounter"
- },
- "paxcounterUpdateInterval": {
- "label": "Update Interval (seconds)",
- "description": "How long to wait between sending paxcounter packets"
- },
- "wifiThreshold": {
- "label": "WiFi RSSI Threshold",
- "description": "At what WiFi RSSI level should the counter increase. Defaults to -80."
- },
- "bleThreshold": {
- "label": "BLE RSSI Threshold",
- "description": "At what BLE RSSI level should the counter increase. Defaults to -80."
- }
- },
- "rangeTest": {
- "title": "Range Test Settings",
- "description": "Settings for the Range Test module",
- "enabled": {
- "label": "Module Enabled",
- "description": "Enable Range Test"
- },
- "sender": {
- "label": "Message Interval",
- "description": "How long to wait between sending test packets"
- },
- "save": {
- "label": "Save CSV to storage",
- "description": "ESP32 Only"
- }
- },
- "serial": {
- "title": "Serial Settings",
- "description": "Settings for the Serial module",
- "enabled": {
- "label": "Module Enabled",
- "description": "Enable Serial output"
- },
- "echo": {
- "label": "Echo",
- "description": "Any packets you send will be echoed back to your device"
- },
- "rxd": {
- "label": "Receive Pin",
- "description": "Set the GPIO pin to the RXD pin you have set up."
- },
- "txd": {
- "label": "Transmit Pin",
- "description": "Set the GPIO pin to the TXD pin you have set up."
- },
- "baud": {
- "label": "Baud Rate",
- "description": "The serial baud rate"
- },
- "timeout": {
- "label": "Limit czasu",
- "description": "Seconds to wait before we consider your packet as 'done'"
- },
- "mode": {
- "label": "Tryb",
- "description": "Select Mode"
- },
- "overrideConsoleSerialPort": {
- "label": "Override Console Serial Port",
- "description": "If you have a serial port connected to the console, this will override it."
- }
- },
- "storeForward": {
- "title": "Store & Forward Settings",
- "description": "Settings for the Store & Forward module",
- "enabled": {
- "label": "Module Enabled",
- "description": "Enable Store & Forward"
- },
- "heartbeat": {
- "label": "Heartbeat Enabled",
- "description": "Enable Store & Forward heartbeat"
- },
- "records": {
- "label": "Number of records",
- "description": "Number of records to store"
- },
- "historyReturnMax": {
- "label": "History return max",
- "description": "Max number of records to return"
- },
- "historyReturnWindow": {
- "label": "History return window",
- "description": "Return records from this time window (minutes)"
- }
- },
- "telemetry": {
- "title": "Telemetry Settings",
- "description": "Settings for the Telemetry module",
- "deviceUpdateInterval": {
- "label": "Device Metrics",
- "description": "Device metrics update interval (seconds)"
- },
- "environmentUpdateInterval": {
- "label": "Environment metrics update interval (seconds)",
- "description": ""
- },
- "environmentMeasurementEnabled": {
- "label": "Module Enabled",
- "description": "Enable the Environment Telemetry"
- },
- "environmentScreenEnabled": {
- "label": "Displayed on Screen",
- "description": "Show the Telemetry Module on the OLED"
- },
- "environmentDisplayFahrenheit": {
- "label": "Display Fahrenheit",
- "description": "Display temp in Fahrenheit"
- },
- "airQualityEnabled": {
- "label": "Air Quality Enabled",
- "description": "Enable the Air Quality Telemetry"
- },
- "airQualityInterval": {
- "label": "Air Quality Update Interval",
- "description": "How often to send Air Quality data over the mesh"
- },
- "powerMeasurementEnabled": {
- "label": "Power Measurement Enabled",
- "description": "Enable the Power Measurement Telemetry"
- },
- "powerUpdateInterval": {
- "label": "Power Update Interval",
- "description": "How often to send Power data over the mesh"
- },
- "powerScreenEnabled": {
- "label": "Power Screen Enabled",
- "description": "Enable the Power Telemetry Screen"
- }
- }
+ "page": {
+ "tabAmbientLighting": "Ambient Lighting",
+ "tabAudio": "Audio",
+ "tabCannedMessage": "Canned",
+ "tabDetectionSensor": "Detection Sensor",
+ "tabExternalNotification": "Ext Notif",
+ "tabMqtt": "MQTT",
+ "tabNeighborInfo": "Neighbor Info",
+ "tabPaxcounter": "Paxcounter",
+ "tabRangeTest": "Test zasięgu",
+ "tabSerial": "Seryjny",
+ "tabStoreAndForward": "S&F",
+ "tabTelemetry": "Telemetria"
+ },
+ "ambientLighting": {
+ "title": "Ambient Lighting Settings",
+ "description": "Settings for the Ambient Lighting module",
+ "ledState": {
+ "label": "LED State",
+ "description": "Sets LED to on or off"
+ },
+ "current": {
+ "label": "Natężenie",
+ "description": "Sets the current for the LED output. Default is 10"
+ },
+ "red": {
+ "label": "Czerwony",
+ "description": "Sets the red LED level. Values are 0-255"
+ },
+ "green": {
+ "label": "Zielony",
+ "description": "Sets the green LED level. Values are 0-255"
+ },
+ "blue": {
+ "label": "Niebieski",
+ "description": "Sets the blue LED level. Values are 0-255"
+ }
+ },
+ "audio": {
+ "title": "Audio Settings",
+ "description": "Settings for the Audio module",
+ "codec2Enabled": {
+ "label": "Codec 2 Enabled",
+ "description": "Enable Codec 2 audio encoding"
+ },
+ "pttPin": {
+ "label": "PTT Pin",
+ "description": "GPIO pin to use for PTT"
+ },
+ "bitrate": {
+ "label": "Bitrate",
+ "description": "Bitrate to use for audio encoding"
+ },
+ "i2sWs": {
+ "label": "i2S WS",
+ "description": "GPIO pin to use for i2S WS"
+ },
+ "i2sSd": {
+ "label": "i2S SD",
+ "description": "GPIO pin to use for i2S SD"
+ },
+ "i2sDin": {
+ "label": "i2S DIN",
+ "description": "GPIO pin to use for i2S DIN"
+ },
+ "i2sSck": {
+ "label": "i2S SCK",
+ "description": "GPIO pin to use for i2S SCK"
+ }
+ },
+ "cannedMessage": {
+ "title": "Canned Message Settings",
+ "description": "Settings for the Canned Message module",
+ "moduleEnabled": {
+ "label": "Module Enabled",
+ "description": "Enable Canned Message"
+ },
+ "rotary1Enabled": {
+ "label": "Rotary Encoder #1 Enabled",
+ "description": "Enable the rotary encoder"
+ },
+ "inputbrokerPinA": {
+ "label": "Encoder Pin A",
+ "description": "GPIO Pin Value (1-39) For encoder port A"
+ },
+ "inputbrokerPinB": {
+ "label": "Encoder Pin B",
+ "description": "GPIO Pin Value (1-39) For encoder port B"
+ },
+ "inputbrokerPinPress": {
+ "label": "Encoder Pin Press",
+ "description": "GPIO Pin Value (1-39) For encoder Press"
+ },
+ "inputbrokerEventCw": {
+ "label": "Clockwise event",
+ "description": "Select input event."
+ },
+ "inputbrokerEventCcw": {
+ "label": "Counter Clockwise event",
+ "description": "Select input event."
+ },
+ "inputbrokerEventPress": {
+ "label": "Press event",
+ "description": "Select input event"
+ },
+ "updown1Enabled": {
+ "label": "Up Down enabled",
+ "description": "Enable the up / down encoder"
+ },
+ "allowInputSource": {
+ "label": "Allow Input Source",
+ "description": "Select from: '_any', 'rotEnc1', 'upDownEnc1', 'cardkb'"
+ },
+ "sendBell": {
+ "label": "Send Bell",
+ "description": "Sends a bell character with each message"
+ }
+ },
+ "detectionSensor": {
+ "title": "Detection Sensor Settings",
+ "description": "Settings for the Detection Sensor module",
+ "enabled": {
+ "label": "Włączony",
+ "description": "Enable or disable Detection Sensor Module"
+ },
+ "minimumBroadcastSecs": {
+ "label": "Minimum Broadcast Seconds",
+ "description": "The interval in seconds of how often we can send a message to the mesh when a state change is detected"
+ },
+ "stateBroadcastSecs": {
+ "label": "State Broadcast Seconds",
+ "description": "The interval in seconds of how often we should send a message to the mesh with the current state regardless of changes"
+ },
+ "sendBell": {
+ "label": "Send Bell",
+ "description": "Send ASCII bell with alert message"
+ },
+ "name": {
+ "label": "Friendly Name",
+ "description": "Used to format the message sent to mesh, max 20 Characters"
+ },
+ "monitorPin": {
+ "label": "Monitor Pin",
+ "description": "The GPIO pin to monitor for state changes"
+ },
+ "detectionTriggerType": {
+ "label": "Detection Triggered Type",
+ "description": "The type of trigger event to be used"
+ },
+ "usePullup": {
+ "label": "Use Pullup",
+ "description": "Whether or not use INPUT_PULLUP mode for GPIO pin"
+ }
+ },
+ "externalNotification": {
+ "title": "External Notification Settings",
+ "description": "Configure the external notification module",
+ "enabled": {
+ "label": "Module Enabled",
+ "description": "Enable External Notification"
+ },
+ "outputMs": {
+ "label": "Output MS",
+ "description": "Output MS"
+ },
+ "output": {
+ "label": "Output",
+ "description": "Output"
+ },
+ "outputVibra": {
+ "label": "Output Vibrate",
+ "description": "Output Vibrate"
+ },
+ "outputBuzzer": {
+ "label": "Output Buzzer",
+ "description": "Output Buzzer"
+ },
+ "active": {
+ "label": "Active",
+ "description": "Active"
+ },
+ "alertMessage": {
+ "label": "Alert Message",
+ "description": "Alert Message"
+ },
+ "alertMessageVibra": {
+ "label": "Alert Message Vibrate",
+ "description": "Alert Message Vibrate"
+ },
+ "alertMessageBuzzer": {
+ "label": "Alert Message Buzzer",
+ "description": "Alert Message Buzzer"
+ },
+ "alertBell": {
+ "label": "Alert Bell",
+ "description": "Should an alert be triggered when receiving an incoming bell?"
+ },
+ "alertBellVibra": {
+ "label": "Alert Bell Vibrate",
+ "description": "Alert Bell Vibrate"
+ },
+ "alertBellBuzzer": {
+ "label": "Alert Bell Buzzer",
+ "description": "Alert Bell Buzzer"
+ },
+ "usePwm": {
+ "label": "Use PWM",
+ "description": "Use PWM"
+ },
+ "nagTimeout": {
+ "label": "Nag Timeout",
+ "description": "Nag Timeout"
+ },
+ "useI2sAsBuzzer": {
+ "label": "Use I²S Pin as Buzzer",
+ "description": "Designate I²S Pin as Buzzer Output"
+ }
+ },
+ "mqtt": {
+ "title": "MQTT Settings",
+ "description": "Settings for the MQTT module",
+ "enabled": {
+ "label": "Włączony",
+ "description": "Enable or disable MQTT"
+ },
+ "address": {
+ "label": "MQTT Server Address",
+ "description": "MQTT server address to use for default/custom servers"
+ },
+ "username": {
+ "label": "MQTT Username",
+ "description": "MQTT username to use for default/custom servers"
+ },
+ "password": {
+ "label": "MQTT Password",
+ "description": "MQTT password to use for default/custom servers"
+ },
+ "encryptionEnabled": {
+ "label": "Encryption Enabled",
+ "description": "Enable or disable MQTT encryption. Note: All messages are sent to the MQTT broker unencrypted if this option is not enabled, even when your uplink channels have encryption keys set. This includes position data."
+ },
+ "jsonEnabled": {
+ "label": "JSON Enabled",
+ "description": "Whether to send/consume JSON packets on MQTT"
+ },
+ "tlsEnabled": {
+ "label": "TLS Enabled",
+ "description": "Enable or disable TLS"
+ },
+ "root": {
+ "label": "Root topic",
+ "description": "MQTT root topic to use for default/custom servers"
+ },
+ "proxyToClientEnabled": {
+ "label": "MQTT Client Proxy Enabled",
+ "description": "Utilizes the network connection to proxy MQTT messages to the client."
+ },
+ "mapReportingEnabled": {
+ "label": "Map Reporting Enabled",
+ "description": "Your node will periodically send an unencrypted map report packet to the configured MQTT server, this includes id, short and long name, approximate location, hardware model, role, firmware version, LoRa region, modem preset and primary channel name."
+ },
+ "mapReportSettings": {
+ "publishIntervalSecs": {
+ "label": "Map Report Publish Interval (s)",
+ "description": "Interval in seconds to publish map reports"
+ },
+ "positionPrecision": {
+ "label": "Approximate Location",
+ "description": "Position shared will be accurate within this distance",
+ "options": {
+ "metric_km23": "Within 23 km",
+ "metric_km12": "Within 12 km",
+ "metric_km5_8": "Within 5.8 km",
+ "metric_km2_9": "Within 2.9 km",
+ "metric_km1_5": "Within 1.5 km",
+ "metric_m700": "Within 700 m",
+ "metric_m350": "Within 350 m",
+ "metric_m200": "Within 200 m",
+ "metric_m90": "Within 90 m",
+ "metric_m50": "Within 50 m",
+ "imperial_mi15": "W zasięgu 15 mil",
+ "imperial_mi7_3": "W zasięgu 7,3 mil",
+ "imperial_mi3_6": "W zasięgu 3,6 mil",
+ "imperial_mi1_8": "W zasięgu 1,8 mil",
+ "imperial_mi0_9": "W zasięgu 0,9 mil",
+ "imperial_mi0_5": "W zasięgu 0,5 mili",
+ "imperial_mi0_2": "W zasięgu 0,2 mil",
+ "imperial_ft600": "W zasięgu 600 stóp",
+ "imperial_ft300": "W zasięgu 300 stóp",
+ "imperial_ft150": "W zasięgu 150 stóp"
+ }
+ }
+ }
+ },
+ "neighborInfo": {
+ "title": "Neighbor Info Settings",
+ "description": "Settings for the Neighbor Info module",
+ "enabled": {
+ "label": "Włączony",
+ "description": "Enable or disable Neighbor Info Module"
+ },
+ "updateInterval": {
+ "label": "Update Interval",
+ "description": "Interval in seconds of how often we should try to send our Neighbor Info to the mesh"
+ }
+ },
+ "paxcounter": {
+ "title": "Paxcounter Settings",
+ "description": "Settings for the Paxcounter module",
+ "enabled": {
+ "label": "Module Enabled",
+ "description": "Enable Paxcounter"
+ },
+ "paxcounterUpdateInterval": {
+ "label": "Update Interval (seconds)",
+ "description": "How long to wait between sending paxcounter packets"
+ },
+ "wifiThreshold": {
+ "label": "WiFi RSSI Threshold",
+ "description": "At what WiFi RSSI level should the counter increase. Defaults to -80."
+ },
+ "bleThreshold": {
+ "label": "BLE RSSI Threshold",
+ "description": "At what BLE RSSI level should the counter increase. Defaults to -80."
+ }
+ },
+ "rangeTest": {
+ "title": "Range Test Settings",
+ "description": "Settings for the Range Test module",
+ "enabled": {
+ "label": "Module Enabled",
+ "description": "Enable Range Test"
+ },
+ "sender": {
+ "label": "Message Interval",
+ "description": "How long to wait between sending test packets"
+ },
+ "save": {
+ "label": "Save CSV to storage",
+ "description": "ESP32 Only"
+ }
+ },
+ "serial": {
+ "title": "Serial Settings",
+ "description": "Settings for the Serial module",
+ "enabled": {
+ "label": "Module Enabled",
+ "description": "Enable Serial output"
+ },
+ "echo": {
+ "label": "Echo",
+ "description": "Any packets you send will be echoed back to your device"
+ },
+ "rxd": {
+ "label": "Receive Pin",
+ "description": "Set the GPIO pin to the RXD pin you have set up."
+ },
+ "txd": {
+ "label": "Transmit Pin",
+ "description": "Set the GPIO pin to the TXD pin you have set up."
+ },
+ "baud": {
+ "label": "Baud Rate",
+ "description": "The serial baud rate"
+ },
+ "timeout": {
+ "label": "Limit czasu",
+ "description": "Seconds to wait before we consider your packet as 'done'"
+ },
+ "mode": {
+ "label": "Tryb",
+ "description": "Select Mode"
+ },
+ "overrideConsoleSerialPort": {
+ "label": "Override Console Serial Port",
+ "description": "If you have a serial port connected to the console, this will override it."
+ }
+ },
+ "storeForward": {
+ "title": "Store & Forward Settings",
+ "description": "Settings for the Store & Forward module",
+ "enabled": {
+ "label": "Module Enabled",
+ "description": "Enable Store & Forward"
+ },
+ "heartbeat": {
+ "label": "Heartbeat Enabled",
+ "description": "Enable Store & Forward heartbeat"
+ },
+ "records": {
+ "label": "Number of records",
+ "description": "Number of records to store"
+ },
+ "historyReturnMax": {
+ "label": "History return max",
+ "description": "Max number of records to return"
+ },
+ "historyReturnWindow": {
+ "label": "History return window",
+ "description": "Return records from this time window (minutes)"
+ }
+ },
+ "telemetry": {
+ "title": "Telemetry Settings",
+ "description": "Settings for the Telemetry module",
+ "deviceUpdateInterval": {
+ "label": "Device Metrics",
+ "description": "Device metrics update interval (seconds)"
+ },
+ "environmentUpdateInterval": {
+ "label": "Environment metrics update interval (seconds)",
+ "description": ""
+ },
+ "environmentMeasurementEnabled": {
+ "label": "Module Enabled",
+ "description": "Enable the Environment Telemetry"
+ },
+ "environmentScreenEnabled": {
+ "label": "Displayed on Screen",
+ "description": "Show the Telemetry Module on the OLED"
+ },
+ "environmentDisplayFahrenheit": {
+ "label": "Display Fahrenheit",
+ "description": "Display temp in Fahrenheit"
+ },
+ "airQualityEnabled": {
+ "label": "Air Quality Enabled",
+ "description": "Enable the Air Quality Telemetry"
+ },
+ "airQualityInterval": {
+ "label": "Air Quality Update Interval",
+ "description": "How often to send Air Quality data over the mesh"
+ },
+ "powerMeasurementEnabled": {
+ "label": "Power Measurement Enabled",
+ "description": "Enable the Power Measurement Telemetry"
+ },
+ "powerUpdateInterval": {
+ "label": "Power Update Interval",
+ "description": "How often to send Power data over the mesh"
+ },
+ "powerScreenEnabled": {
+ "label": "Power Screen Enabled",
+ "description": "Enable the Power Telemetry Screen"
+ }
+ }
}
diff --git a/packages/web/public/i18n/locales/pl-PL/nodes.json b/packages/web/public/i18n/locales/pl-PL/nodes.json
index 9cf22ee2..07426aa2 100644
--- a/packages/web/public/i18n/locales/pl-PL/nodes.json
+++ b/packages/web/public/i18n/locales/pl-PL/nodes.json
@@ -1,63 +1,59 @@
{
- "nodeDetail": {
- "publicKeyEnabled": {
- "label": "Publiczny klucz włączony"
- },
- "noPublicKey": {
- "label": "Brak klucza publicznego"
- },
- "directMessage": {
- "label": "Wiadomość bezpośrednia {{shortName}}"
- },
- "favorite": {
- "label": "Ulubiony",
- "tooltip": "Dodaj lub usuń ten węzeł z ulubionych"
- },
- "notFavorite": {
- "label": "Nie ulubiony"
- },
- "error": {
- "label": "Błąd",
- "text": "Wystąpił błąd podczas pobierania danych węzła. Spróbuj ponownie później."
- },
- "status": {
- "heard": "Usłyszano",
- "mqtt": "MQTT"
- },
- "elevation": {
- "label": "Elewacja"
- },
- "channelUtil": {
- "label": "Użycie kanału"
- },
- "airtimeUtil": {
- "label": "Użycie czasu ant"
- }
- },
- "nodesTable": {
- "headings": {
- "longName": "Długa nazwa",
- "connection": "Połączenie",
- "lastHeard": "Ostatnio słyszany",
- "encryption": "Szyfrowanie",
- "model": "Model",
- "macAddress": "Adres MAC"
- },
- "connectionStatus": {
- "direct": "Bezpośrednio",
- "away": "away",
- "unknown": "-",
- "viaMqtt": ", przez MQTT"
- },
- "lastHeardStatus": {
- "never": "Nigdy"
- }
- },
- "actions": {
- "added": "Dodano",
- "removed": "Usunięto",
- "ignoreNode": "Ignoruj węzeł",
- "unignoreNode": "Od-ignoruj węzeł",
- "requestPosition": "Poproś o pozycję"
- }
+ "nodeDetail": {
+ "publicKeyEnabled": {
+ "label": "Publiczny klucz włączony"
+ },
+ "noPublicKey": {
+ "label": "Brak klucza publicznego"
+ },
+ "directMessage": {
+ "label": "Wiadomość bezpośrednia {{shortName}}"
+ },
+ "favorite": {
+ "label": "Ulubiony",
+ "tooltip": "Dodaj lub usuń ten węzeł z ulubionych"
+ },
+ "notFavorite": {
+ "label": "Nie ulubiony"
+ },
+ "error": {
+ "label": "Błąd",
+ "text": "Wystąpił błąd podczas pobierania danych węzła. Spróbuj ponownie później."
+ },
+ "status": {
+ "heard": "Usłyszano",
+ "mqtt": "MQTT"
+ },
+ "elevation": {
+ "label": "Elewacja"
+ },
+ "channelUtil": {
+ "label": "Użycie kanału"
+ },
+ "airtimeUtil": {
+ "label": "Użycie czasu ant"
+ }
+ },
+ "nodesTable": {
+ "headings": {
+ "longName": "Długa nazwa",
+ "connection": "Połączenie",
+ "lastHeard": "Ostatnio słyszany",
+ "encryption": "Szyfrowanie",
+ "model": "Model",
+ "macAddress": "Adres MAC"
+ },
+ "connectionStatus": {
+ "direct": "Bezpośrednio",
+ "away": "away",
+ "viaMqtt": ", przez MQTT"
+ }
+ },
+ "actions": {
+ "added": "Dodano",
+ "removed": "Usunięto",
+ "ignoreNode": "Ignoruj węzeł",
+ "unignoreNode": "Od-ignoruj węzeł",
+ "requestPosition": "Poproś o pozycję"
+ }
}
diff --git a/packages/web/public/i18n/locales/pl-PL/ui.json b/packages/web/public/i18n/locales/pl-PL/ui.json
index bcb6cd02..d8c569a7 100644
--- a/packages/web/public/i18n/locales/pl-PL/ui.json
+++ b/packages/web/public/i18n/locales/pl-PL/ui.json
@@ -1,228 +1,229 @@
{
- "navigation": {
- "title": "Navigation",
- "messages": "Wiadomości",
- "map": "Mapa",
- "config": "Config",
- "radioConfig": "Radio Config",
- "moduleConfig": "Module Config",
- "channels": "Kanały",
- "nodes": "Nodes"
- },
- "app": {
- "title": "Meshtastic",
- "logo": "Meshtastic Logo"
- },
- "sidebar": {
- "collapseToggle": {
- "button": {
- "open": "Open sidebar",
- "close": "Close sidebar"
- }
- },
- "deviceInfo": {
- "volts": "{{voltage}} volts",
- "firmware": {
- "title": "Oprogramowanie",
- "version": "v{{version}}",
- "buildDate": "Build date: {{date}}"
- },
- "deviceName": {
- "title": "Device Name",
- "changeName": "Change Device Name",
- "placeholder": "Enter device name"
- },
- "editDeviceName": "Edit device name"
- }
- },
- "batteryStatus": {
- "charging": "{{level}}% charging",
- "pluggedIn": "Plugged in",
- "title": "Bateria"
- },
- "search": {
- "nodes": "Search nodes...",
- "channels": "Search channels...",
- "commandPalette": "Search commands..."
- },
- "toast": {
- "positionRequestSent": {
- "title": "Position request sent."
- },
- "requestingPosition": {
- "title": "Requesting position, please wait..."
- },
- "sendingTraceroute": {
- "title": "Sending Traceroute, please wait..."
- },
- "tracerouteSent": {
- "title": "Traceroute sent."
- },
- "savedChannel": {
- "title": "Saved Channel: {{channelName}}"
- },
- "messages": {
- "pkiEncryption": {
- "title": "Chat is using PKI encryption."
- },
- "pskEncryption": {
- "title": "Chat is using PSK encryption."
- }
- },
- "configSaveError": {
- "title": "Error Saving Config",
- "description": "An error occurred while saving the configuration."
- },
- "validationError": {
- "title": "Config Errors Exist",
- "description": "Please fix the configuration errors before saving."
- },
- "saveSuccess": {
- "title": "Saving Config",
- "description": "The configuration change {{case}} has been saved."
- },
- "favoriteNode": {
- "title": "{{action}} {{nodeName}} {{direction}} favorites.",
- "action": {
- "added": "Dodano",
- "removed": "Usunięto",
- "to": "to",
- "from": "from"
- }
- },
- "ignoreNode": {
- "title": "{{action}} {{nodeName}} {{direction}} ignore list",
- "action": {
- "added": "Dodano",
- "removed": "Usunięto",
- "to": "to",
- "from": "from"
- }
- }
- },
- "notifications": {
- "copied": {
- "label": "Copied!"
- },
- "copyToClipboard": {
- "label": "Copy to clipboard"
- },
- "hidePassword": {
- "label": "Ukryj hasło"
- },
- "showPassword": {
- "label": "Pokaż hasło"
- },
- "deliveryStatus": {
- "delivered": "Delivered",
- "failed": "Delivery Failed",
- "waiting": "Czekam. . .",
- "unknown": "Nieznany"
- }
- },
- "general": {
- "label": "General"
- },
- "hardware": {
- "label": "Hardware"
- },
- "metrics": {
- "label": "Metrics"
- },
- "role": {
- "label": "Rola"
- },
- "filter": {
- "label": "Filtr"
- },
- "advanced": {
- "label": "Advanced"
- },
- "clearInput": {
- "label": "Clear input"
- },
- "resetFilters": {
- "label": "Reset Filters"
- },
- "nodeName": {
- "label": "Node name/number",
- "placeholder": "Meshtastic 1234"
- },
- "airtimeUtilization": {
- "label": "Airtime Utilization (%)"
- },
- "batteryLevel": {
- "label": "Battery level (%)",
- "labelText": "Battery level (%): {{value}}"
- },
- "batteryVoltage": {
- "label": "Battery voltage (V)",
- "title": "Napięcie"
- },
- "channelUtilization": {
- "label": "Channel Utilization (%)"
- },
- "hops": {
- "direct": "Bezpośrednio",
- "label": "Number of hops",
- "text": "Number of hops: {{value}}"
- },
- "lastHeard": {
- "label": "Aktywność",
- "labelText": "Last heard: {{value}}",
- "nowLabel": "Now"
- },
- "snr": {
- "label": "SNR (db)"
- },
- "favorites": {
- "label": "Favorites"
- },
- "hide": {
- "label": "Hide"
- },
- "showOnly": {
- "label": "Show Only"
- },
- "viaMqtt": {
- "label": "Connected via MQTT"
- },
- "hopsUnknown": {
- "label": "Unknown number of hops"
- },
- "showUnheard": {
- "label": "Never heard"
- },
- "language": {
- "label": "Język",
- "changeLanguage": "Change Language"
- },
- "theme": {
- "dark": "Ciemny",
- "light": "Jasny",
- "system": "Automatic",
- "changeTheme": "Change Color Scheme"
- },
- "errorPage": {
- "title": "This is a little embarrassing...",
- "description1": "We are really sorry but an error occurred in the web client that caused it to crash.
This is not supposed to happen, and we are working hard to fix it.",
- "description2": "The best way to prevent this from happening again to you or anyone else is to report the issue to us.",
- "reportInstructions": "Please include the following information in your report:",
- "reportSteps": {
- "step1": "What you were doing when the error occurred",
- "step2": "What you expected to happen",
- "step3": "What actually happened",
- "step4": "Any other relevant information"
- },
- "reportLink": "You can report the issue to our <0>GitHub0>",
- "dashboardLink": "Return to the <0>dashboard0>",
- "detailsSummary": "Error Details",
- "errorMessageLabel": "Error message:",
- "stackTraceLabel": "Stack trace:",
- "fallbackError": "{{error}}"
- },
- "footer": {
- "text": "Powered by <0>▲ Vercel0> | Meshtastic® is a registered trademark of Meshtastic LLC. | <1>Legal Information1>",
- "commitSha": "Commit SHA: {{sha}}"
- }
+ "navigation": {
+ "title": "Navigation",
+ "messages": "Wiadomości",
+ "map": "Mapa",
+ "settings": "Ustawienia",
+ "channels": "Kanały",
+ "radioConfig": "Radio Config",
+ "deviceConfig": "Konfiguracja urządzenia",
+ "moduleConfig": "Module Config",
+ "nodes": "Nodes"
+ },
+ "app": {
+ "title": "Meshtastic",
+ "logo": "Meshtastic Logo"
+ },
+ "sidebar": {
+ "collapseToggle": {
+ "button": {
+ "open": "Open sidebar",
+ "close": "Close sidebar"
+ }
+ },
+ "deviceInfo": {
+ "volts": "{{voltage}} volts",
+ "firmware": {
+ "title": "Oprogramowanie",
+ "version": "v{{version}}",
+ "buildDate": "Build date: {{date}}"
+ }
+ }
+ },
+ "batteryStatus": {
+ "charging": "{{level}}% charging",
+ "pluggedIn": "Plugged in",
+ "title": "Bateria"
+ },
+ "search": {
+ "nodes": "Search nodes...",
+ "channels": "Search channels...",
+ "commandPalette": "Search commands..."
+ },
+ "toast": {
+ "positionRequestSent": {
+ "title": "Position request sent."
+ },
+ "requestingPosition": {
+ "title": "Requesting position, please wait..."
+ },
+ "sendingTraceroute": {
+ "title": "Sending Traceroute, please wait..."
+ },
+ "tracerouteSent": {
+ "title": "Traceroute sent."
+ },
+ "savedChannel": {
+ "title": "Saved Channel: {{channelName}}"
+ },
+ "messages": {
+ "pkiEncryption": {
+ "title": "Chat is using PKI encryption."
+ },
+ "pskEncryption": {
+ "title": "Chat is using PSK encryption."
+ }
+ },
+ "configSaveError": {
+ "title": "Error Saving Config",
+ "description": "An error occurred while saving the configuration."
+ },
+ "validationError": {
+ "title": "Config Errors Exist",
+ "description": "Please fix the configuration errors before saving."
+ },
+ "saveSuccess": {
+ "title": "Saving Config",
+ "description": "The configuration change {{case}} has been saved."
+ },
+ "saveAllSuccess": {
+ "title": "Saved",
+ "description": "All configuration changes have been saved."
+ },
+ "favoriteNode": {
+ "title": "{{action}} {{nodeName}} {{direction}} favorites.",
+ "action": {
+ "added": "Dodano",
+ "removed": "Usunięto",
+ "to": "to",
+ "from": "from"
+ }
+ },
+ "ignoreNode": {
+ "title": "{{action}} {{nodeName}} {{direction}} ignore list",
+ "action": {
+ "added": "Dodano",
+ "removed": "Usunięto",
+ "to": "to",
+ "from": "from"
+ }
+ }
+ },
+ "notifications": {
+ "copied": {
+ "label": "Copied!"
+ },
+ "copyToClipboard": {
+ "label": "Copy to clipboard"
+ },
+ "hidePassword": {
+ "label": "Ukryj hasło"
+ },
+ "showPassword": {
+ "label": "Pokaż hasło"
+ },
+ "deliveryStatus": {
+ "delivered": "Delivered",
+ "failed": "Delivery Failed",
+ "waiting": "Czekam. . .",
+ "unknown": "Nieznany"
+ }
+ },
+ "general": {
+ "label": "General"
+ },
+ "hardware": {
+ "label": "Hardware"
+ },
+ "metrics": {
+ "label": "Metrics"
+ },
+ "role": {
+ "label": "Rola"
+ },
+ "filter": {
+ "label": "Filtr"
+ },
+ "advanced": {
+ "label": "Advanced"
+ },
+ "clearInput": {
+ "label": "Clear input"
+ },
+ "resetFilters": {
+ "label": "Reset Filters"
+ },
+ "nodeName": {
+ "label": "Node name/number",
+ "placeholder": "Meshtastic 1234"
+ },
+ "airtimeUtilization": {
+ "label": "Airtime Utilization (%)",
+ "short": "Airtime Util. (%)"
+ },
+ "batteryLevel": {
+ "label": "Battery level (%)",
+ "labelText": "Battery level (%): {{value}}"
+ },
+ "batteryVoltage": {
+ "label": "Battery voltage (V)",
+ "title": "Napięcie"
+ },
+ "channelUtilization": {
+ "label": "Channel Utilization (%)",
+ "short": "Channel Util. (%)"
+ },
+ "hops": {
+ "direct": "Bezpośrednio",
+ "label": "Number of hops",
+ "text": "Number of hops: {{value}}"
+ },
+ "lastHeard": {
+ "label": "Aktywność",
+ "labelText": "Last heard: {{value}}",
+ "nowLabel": "Now"
+ },
+ "snr": {
+ "label": "SNR (db)"
+ },
+ "favorites": {
+ "label": "Favorites"
+ },
+ "hide": {
+ "label": "Hide"
+ },
+ "showOnly": {
+ "label": "Show Only"
+ },
+ "viaMqtt": {
+ "label": "Connected via MQTT"
+ },
+ "hopsUnknown": {
+ "label": "Unknown number of hops"
+ },
+ "showUnheard": {
+ "label": "Never heard"
+ },
+ "language": {
+ "label": "Język",
+ "changeLanguage": "Change Language"
+ },
+ "theme": {
+ "dark": "Ciemny",
+ "light": "Jasny",
+ "system": "Automatic",
+ "changeTheme": "Change Color Scheme"
+ },
+ "errorPage": {
+ "title": "This is a little embarrassing...",
+ "description1": "We are really sorry but an error occurred in the web client that caused it to crash.
This is not supposed to happen, and we are working hard to fix it.",
+ "description2": "The best way to prevent this from happening again to you or anyone else is to report the issue to us.",
+ "reportInstructions": "Please include the following information in your report:",
+ "reportSteps": {
+ "step1": "What you were doing when the error occurred",
+ "step2": "What you expected to happen",
+ "step3": "What actually happened",
+ "step4": "Any other relevant information"
+ },
+ "reportLink": "You can report the issue to our <0>GitHub0>",
+ "dashboardLink": "Return to the <0>dashboard0>",
+ "detailsSummary": "Error Details",
+ "errorMessageLabel": "Error message:",
+ "stackTraceLabel": "Stack trace:",
+ "fallbackError": "{{error}}"
+ },
+ "footer": {
+ "text": "Powered by <0>▲ Vercel0> | Meshtastic® is a registered trademark of Meshtastic LLC. | <1>Legal Information1>",
+ "commitSha": "Commit SHA: {{sha}}"
+ }
}
diff --git a/packages/web/public/i18n/locales/pt-BR/channels.json b/packages/web/public/i18n/locales/pt-BR/channels.json
index 71ea2c74..5f65ffb9 100644
--- a/packages/web/public/i18n/locales/pt-BR/channels.json
+++ b/packages/web/public/i18n/locales/pt-BR/channels.json
@@ -1,69 +1,71 @@
{
- "page": {
- "sectionLabel": "Canais",
- "channelName": "Channel: {{channelName}}",
- "broadcastLabel": "Primário",
- "channelIndex": "Ch {{index}}"
- },
- "validation": {
- "pskInvalid": "Please enter a valid {{bits}} bit PSK."
- },
- "settings": {
- "label": "Configurações de Canal",
- "description": "Crypto, MQTT & misc settings"
- },
- "role": {
- "label": "Função",
- "description": "Device telemetry is sent over PRIMARY. Only one PRIMARY allowed",
- "options": {
- "primary": "PRIMARY",
- "disabled": "DISABLED",
- "secondary": "SECONDARY"
- }
- },
- "psk": {
- "label": "Pre-Shared Key",
- "description": "Supported PSK lengths: 256-bit, 128-bit, 8-bit, Empty (0-bit)",
- "generate": "Generate"
- },
- "name": {
- "label": "Nome",
- "description": "A unique name for the channel <12 bytes, leave blank for default"
- },
- "uplinkEnabled": {
- "label": "Uplink Enabled",
- "description": "Send messages from the local mesh to MQTT"
- },
- "downlinkEnabled": {
- "label": "Downlink Enabled",
- "description": "Send messages from MQTT to the local mesh"
- },
- "positionPrecision": {
- "label": "Location",
- "description": "The precision of the location to share with the channel. Can be disabled.",
- "options": {
- "none": "Do not share location",
- "precise": "Precise Location",
- "metric_km23": "Within 23 kilometers",
- "metric_km12": "Within 12 kilometers",
- "metric_km5_8": "Within 5.8 kilometers",
- "metric_km2_9": "Within 2.9 kilometers",
- "metric_km1_5": "Within 1.5 kilometers",
- "metric_m700": "Within 700 meters",
- "metric_m350": "Within 350 meters",
- "metric_m200": "Within 200 meters",
- "metric_m90": "Within 90 meters",
- "metric_m50": "Within 50 meters",
- "imperial_mi15": "Within 15 miles",
- "imperial_mi7_3": "Within 7.3 miles",
- "imperial_mi3_6": "Within 3.6 miles",
- "imperial_mi1_8": "Within 1.8 miles",
- "imperial_mi0_9": "Within 0.9 miles",
- "imperial_mi0_5": "Within 0.5 miles",
- "imperial_mi0_2": "Within 0.2 miles",
- "imperial_ft600": "Within 600 feet",
- "imperial_ft300": "Within 300 feet",
- "imperial_ft150": "Within 150 feet"
- }
- }
+ "page": {
+ "sectionLabel": "Canais",
+ "channelName": "Channel: {{channelName}}",
+ "broadcastLabel": "Primário",
+ "channelIndex": "Ch {{index}}",
+ "import": "Importar",
+ "export": "Export"
+ },
+ "validation": {
+ "pskInvalid": "Please enter a valid {{bits}} bit PSK."
+ },
+ "settings": {
+ "label": "Configurações de Canal",
+ "description": "Crypto, MQTT & misc settings"
+ },
+ "role": {
+ "label": "Função",
+ "description": "Device telemetry is sent over PRIMARY. Only one PRIMARY allowed",
+ "options": {
+ "primary": "PRIMARY",
+ "disabled": "DISABLED",
+ "secondary": "SECONDARY"
+ }
+ },
+ "psk": {
+ "label": "Pre-Shared Key",
+ "description": "Supported PSK lengths: 256-bit, 128-bit, 8-bit, Empty (0-bit)",
+ "generate": "Generate"
+ },
+ "name": {
+ "label": "Nome",
+ "description": "A unique name for the channel <12 bytes, leave blank for default"
+ },
+ "uplinkEnabled": {
+ "label": "Uplink Enabled",
+ "description": "Send messages from the local mesh to MQTT"
+ },
+ "downlinkEnabled": {
+ "label": "Downlink Enabled",
+ "description": "Send messages from MQTT to the local mesh"
+ },
+ "positionPrecision": {
+ "label": "Location",
+ "description": "The precision of the location to share with the channel. Can be disabled.",
+ "options": {
+ "none": "Do not share location",
+ "precise": "Precise Location",
+ "metric_km23": "Within 23 kilometers",
+ "metric_km12": "Within 12 kilometers",
+ "metric_km5_8": "Within 5.8 kilometers",
+ "metric_km2_9": "Within 2.9 kilometers",
+ "metric_km1_5": "Within 1.5 kilometers",
+ "metric_m700": "Within 700 meters",
+ "metric_m350": "Within 350 meters",
+ "metric_m200": "Within 200 meters",
+ "metric_m90": "Within 90 meters",
+ "metric_m50": "Within 50 meters",
+ "imperial_mi15": "Within 15 miles",
+ "imperial_mi7_3": "Within 7.3 miles",
+ "imperial_mi3_6": "Within 3.6 miles",
+ "imperial_mi1_8": "Within 1.8 miles",
+ "imperial_mi0_9": "Within 0.9 miles",
+ "imperial_mi0_5": "Within 0.5 miles",
+ "imperial_mi0_2": "Within 0.2 miles",
+ "imperial_ft600": "Within 600 feet",
+ "imperial_ft300": "Within 300 feet",
+ "imperial_ft150": "Within 150 feet"
+ }
+ }
}
diff --git a/packages/web/public/i18n/locales/pt-BR/commandPalette.json b/packages/web/public/i18n/locales/pt-BR/commandPalette.json
index 6dabdcd6..705d55ed 100644
--- a/packages/web/public/i18n/locales/pt-BR/commandPalette.json
+++ b/packages/web/public/i18n/locales/pt-BR/commandPalette.json
@@ -15,7 +15,6 @@
"messages": "Mensagens",
"map": "Mapa",
"config": "Config",
- "channels": "Canais",
"nodes": "Nós"
}
},
@@ -45,7 +44,8 @@
"label": "Debug",
"command": {
"reconfigure": "Reconfigure",
- "clearAllStoredMessages": "Clear All Stored Message"
+ "clearAllStoredMessages": "Clear All Stored Message",
+ "clearAllStores": "Clear All Local Storage"
}
}
}
diff --git a/packages/web/public/i18n/locales/pt-BR/common.json b/packages/web/public/i18n/locales/pt-BR/common.json
index eb333dd3..b89677fc 100644
--- a/packages/web/public/i18n/locales/pt-BR/common.json
+++ b/packages/web/public/i18n/locales/pt-BR/common.json
@@ -1,142 +1,157 @@
{
- "button": {
- "apply": "Aplicar",
- "backupKey": "Backup Key",
- "cancel": "Cancelar",
- "clearMessages": "Clear Messages",
- "close": "Fechar",
- "confirm": "Confirm",
- "delete": "Excluir",
- "dismiss": "Ignorar",
- "download": "Baixar",
- "export": "Export",
- "generate": "Generate",
- "regenerate": "Regenerate",
- "import": "Importar",
- "message": "Mensagem",
- "now": "Now",
- "ok": "Ok",
- "print": "Print",
- "remove": "Excluir",
- "requestNewKeys": "Request New Keys",
- "requestPosition": "Request Position",
- "reset": "Redefinir",
- "save": "Salvar",
- "scanQr": "Escanear Código QR",
- "traceRoute": "Trace Route",
- "submit": "Submit"
- },
- "app": {
- "title": "Meshtastic",
- "fullTitle": "Meshtastic Web Client"
- },
- "loading": "Loading...",
- "unit": {
- "cps": "CPS",
- "dbm": "dBm",
- "hertz": "Hz",
- "hop": {
- "one": "Hop",
- "plural": "Hops"
- },
- "hopsAway": {
- "one": "{{count}} hop away",
- "plural": "{{count}} hops away",
- "unknown": "Unknown hops away"
- },
- "megahertz": "MHz",
- "raw": "raw",
- "meter": {
- "one": "Meter",
- "plural": "Meters",
- "suffix": "m"
- },
- "minute": {
- "one": "Minute",
- "plural": "Minutes"
- },
- "hour": {
- "one": "Hour",
- "plural": "Hours"
- },
- "millisecond": {
- "one": "Millisecond",
- "plural": "Milliseconds",
- "suffix": "ms"
- },
- "second": {
- "one": "Second",
- "plural": "Seconds"
- },
- "day": {
- "one": "Day",
- "plural": "Days"
- },
- "month": {
- "one": "Month",
- "plural": "Months"
- },
- "year": {
- "one": "Year",
- "plural": "Years"
- },
- "snr": "SNR",
- "volt": {
- "one": "Volt",
- "plural": "Volts",
- "suffix": "V"
- },
- "record": {
- "one": "Records",
- "plural": "Records"
- }
- },
- "security": {
- "0bit": "Empty",
- "8bit": "8 bit",
- "128bit": "128 bit",
- "256bit": "256 bit"
- },
- "unknown": {
- "longName": "Desconhecido",
- "shortName": "UNK",
- "notAvailable": "N/A",
- "num": "??"
- },
- "nodeUnknownPrefix": "!",
- "unset": "UNSET",
- "fallbackName": "Meshtastic {{last4}}",
- "node": "Node",
- "formValidation": {
- "unsavedChanges": "Unsaved changes",
- "tooBig": {
- "string": "Too long, expected less than or equal to {{maximum}} characters.",
- "number": "Too big, expected a number smaller than or equal to {{maximum}}.",
- "bytes": "Too big, expected less than or equal to {{params.maximum}} bytes."
- },
- "tooSmall": {
- "string": "Too short, expected more than or equal to {{minimum}} characters.",
- "number": "Too small, expected a number larger than or equal to {{minimum}}."
- },
- "invalidFormat": {
- "ipv4": "Invalid format, expected an IPv4 address.",
- "key": "Invalid format, expected a Base64 encoded pre-shared key (PSK)."
- },
- "invalidType": {
- "number": "Invalid type, expected a number."
- },
- "pskLength": {
- "0bit": "Key is required to be empty.",
- "8bit": "Key is required to be an 8 bit pre-shared key (PSK).",
- "128bit": "Key is required to be a 128 bit pre-shared key (PSK).",
- "256bit": "Key is required to be a 256 bit pre-shared key (PSK)."
- },
- "required": {
- "generic": "This field is required.",
- "managed": "At least one admin key is requred if the node is managed.",
- "key": "Key is required."
- }
- },
- "yes": "Yes",
- "no": "No"
+ "button": {
+ "apply": "Aplicar",
+ "backupKey": "Backup Key",
+ "cancel": "Cancelar",
+ "clearMessages": "Clear Messages",
+ "close": "Fechar",
+ "confirm": "Confirm",
+ "delete": "Excluir",
+ "dismiss": "Ignorar",
+ "download": "Baixar",
+ "export": "Export",
+ "generate": "Generate",
+ "regenerate": "Regenerate",
+ "import": "Importar",
+ "message": "Mensagem",
+ "now": "Now",
+ "ok": "Ok",
+ "print": "Print",
+ "remove": "Excluir",
+ "requestNewKeys": "Request New Keys",
+ "requestPosition": "Request Position",
+ "reset": "Redefinir",
+ "save": "Salvar",
+ "scanQr": "Escanear Código QR",
+ "traceRoute": "Trace Route",
+ "submit": "Submit"
+ },
+ "app": {
+ "title": "Meshtastic",
+ "fullTitle": "Meshtastic Web Client"
+ },
+ "loading": "Loading...",
+ "unit": {
+ "cps": "CPS",
+ "dbm": "dBm",
+ "hertz": "Hz",
+ "hop": {
+ "one": "Hop",
+ "plural": "Hops"
+ },
+ "hopsAway": {
+ "one": "{{count}} hop away",
+ "plural": "{{count}} hops away",
+ "unknown": "Unknown hops away"
+ },
+ "megahertz": "MHz",
+ "raw": "raw",
+ "meter": {
+ "one": "Meter",
+ "plural": "Meters",
+ "suffix": "m"
+ },
+ "kilometer": {
+ "one": "Kilometer",
+ "plural": "Kilometers",
+ "suffix": "km"
+ },
+ "minute": {
+ "one": "Minute",
+ "plural": "Minutes"
+ },
+ "hour": {
+ "one": "Hour",
+ "plural": "Hours"
+ },
+ "millisecond": {
+ "one": "Millisecond",
+ "plural": "Milliseconds",
+ "suffix": "ms"
+ },
+ "second": {
+ "one": "Second",
+ "plural": "Seconds"
+ },
+ "day": {
+ "one": "Day",
+ "plural": "Days",
+ "today": "Today",
+ "yesterday": "Yesterday"
+ },
+ "month": {
+ "one": "Month",
+ "plural": "Months"
+ },
+ "year": {
+ "one": "Year",
+ "plural": "Years"
+ },
+ "snr": "SNR",
+ "volt": {
+ "one": "Volt",
+ "plural": "Volts",
+ "suffix": "V"
+ },
+ "record": {
+ "one": "Records",
+ "plural": "Records"
+ },
+ "degree": {
+ "one": "Degree",
+ "plural": "Degrees",
+ "suffix": "°"
+ }
+ },
+ "security": {
+ "0bit": "Empty",
+ "8bit": "8 bit",
+ "128bit": "128 bit",
+ "256bit": "256 bit"
+ },
+ "unknown": {
+ "longName": "Desconhecido",
+ "shortName": "UNK",
+ "notAvailable": "N/A",
+ "num": "??"
+ },
+ "nodeUnknownPrefix": "!",
+ "unset": "UNSET",
+ "fallbackName": "Meshtastic {{last4}}",
+ "node": "Node",
+ "formValidation": {
+ "unsavedChanges": "Unsaved changes",
+ "tooBig": {
+ "string": "Too long, expected less than or equal to {{maximum}} characters.",
+ "number": "Too big, expected a number smaller than or equal to {{maximum}}.",
+ "bytes": "Too big, expected less than or equal to {{params.maximum}} bytes."
+ },
+ "tooSmall": {
+ "string": "Too short, expected more than or equal to {{minimum}} characters.",
+ "number": "Too small, expected a number larger than or equal to {{minimum}}."
+ },
+ "invalidFormat": {
+ "ipv4": "Invalid format, expected an IPv4 address.",
+ "key": "Invalid format, expected a Base64 encoded pre-shared key (PSK)."
+ },
+ "invalidType": {
+ "number": "Invalid type, expected a number."
+ },
+ "pskLength": {
+ "0bit": "Key is required to be empty.",
+ "8bit": "Key is required to be an 8 bit pre-shared key (PSK).",
+ "128bit": "Key is required to be a 128 bit pre-shared key (PSK).",
+ "256bit": "Key is required to be a 256 bit pre-shared key (PSK)."
+ },
+ "required": {
+ "generic": "This field is required.",
+ "managed": "At least one admin key is requred if the node is managed.",
+ "key": "Key is required."
+ },
+ "invalidOverrideFreq": {
+ "number": "Invalid format, expected a value in the range 410-930 MHz or 0 (use default)."
+ }
+ },
+ "yes": "Yes",
+ "no": "No"
}
diff --git a/packages/web/public/i18n/locales/pt-BR/config.json b/packages/web/public/i18n/locales/pt-BR/config.json
new file mode 100644
index 00000000..c59bad5c
--- /dev/null
+++ b/packages/web/public/i18n/locales/pt-BR/config.json
@@ -0,0 +1,458 @@
+{
+ "page": {
+ "title": "Configurações",
+ "tabUser": "Usuário",
+ "tabChannels": "Canais",
+ "tabBluetooth": "Bluetooth",
+ "tabDevice": "Dispositivo",
+ "tabDisplay": "Tela",
+ "tabLora": "LoRa",
+ "tabNetwork": "Rede",
+ "tabPosition": "Posição",
+ "tabPower": "Energia",
+ "tabSecurity": "Segurança"
+ },
+ "sidebar": {
+ "label": "Configuration"
+ },
+ "device": {
+ "title": "Device Settings",
+ "description": "Settings for the device",
+ "buttonPin": {
+ "description": "Button pin override",
+ "label": "Button Pin"
+ },
+ "buzzerPin": {
+ "description": "Buzzer pin override",
+ "label": "Buzzer Pin"
+ },
+ "disableTripleClick": {
+ "description": "Disable triple click",
+ "label": "Disable Triple Click"
+ },
+ "doubleTapAsButtonPress": {
+ "description": "Treat double tap as button press",
+ "label": "Double Tap as Button Press"
+ },
+ "ledHeartbeatDisabled": {
+ "description": "Disable default blinking LED",
+ "label": "LED Heartbeat Disabled"
+ },
+ "nodeInfoBroadcastInterval": {
+ "description": "How often to broadcast node info",
+ "label": "Node Info Broadcast Interval"
+ },
+ "posixTimezone": {
+ "description": "The POSIX timezone string for the device",
+ "label": "Fuso horário POSIX"
+ },
+ "rebroadcastMode": {
+ "description": "How to handle rebroadcasting",
+ "label": "Rebroadcast Mode"
+ },
+ "role": {
+ "description": "What role the device performs on the mesh",
+ "label": "Função"
+ }
+ },
+ "bluetooth": {
+ "title": "Bluetooth Settings",
+ "description": "Settings for the Bluetooth module",
+ "note": "Note: Some devices (ESP32) cannot use both Bluetooth and WiFi at the same time.",
+ "enabled": {
+ "description": "Enable or disable Bluetooth",
+ "label": "Enabled"
+ },
+ "pairingMode": {
+ "description": "Pin selection behaviour.",
+ "label": "Modo de pareamento"
+ },
+ "pin": {
+ "description": "Pin to use when pairing",
+ "label": "Pin"
+ }
+ },
+ "display": {
+ "description": "Settings for the device display",
+ "title": "Display Settings",
+ "headingBold": {
+ "description": "Bolden the heading text",
+ "label": "Bold Heading"
+ },
+ "carouselDelay": {
+ "description": "How fast to cycle through windows",
+ "label": "Carousel Delay"
+ },
+ "compassNorthTop": {
+ "description": "Fix north to the top of compass",
+ "label": "Compass North Top"
+ },
+ "displayMode": {
+ "description": "Screen layout variant",
+ "label": "Display Mode"
+ },
+ "displayUnits": {
+ "description": "Display metric or imperial units",
+ "label": "Display Units"
+ },
+ "flipScreen": {
+ "description": "Flip display 180 degrees",
+ "label": "Flip Screen"
+ },
+ "gpsDisplayUnits": {
+ "description": "Coordinate display format",
+ "label": "GPS Display Units"
+ },
+ "oledType": {
+ "description": "Type of OLED screen attached to the device",
+ "label": "OLED Type"
+ },
+ "screenTimeout": {
+ "description": "Turn off the display after this long",
+ "label": "Screen Timeout"
+ },
+ "twelveHourClock": {
+ "description": "Use 12-hour clock format",
+ "label": "12-Hour Clock"
+ },
+ "wakeOnTapOrMotion": {
+ "description": "Wake the device on tap or motion",
+ "label": "Wake on Tap or Motion"
+ }
+ },
+ "lora": {
+ "title": "Mesh Settings",
+ "description": "Settings for the LoRa mesh",
+ "bandwidth": {
+ "description": "Channel bandwidth in MHz",
+ "label": "Largura da banda"
+ },
+ "boostedRxGain": {
+ "description": "Boosted RX gain",
+ "label": "Boosted RX Gain"
+ },
+ "codingRate": {
+ "description": "The denominator of the coding rate",
+ "label": "Coding Rate"
+ },
+ "frequencyOffset": {
+ "description": "Frequency offset to correct for crystal calibration errors",
+ "label": "Frequency Offset"
+ },
+ "frequencySlot": {
+ "description": "LoRa frequency channel number",
+ "label": "Frequency Slot"
+ },
+ "hopLimit": {
+ "description": "Maximum number of hops",
+ "label": "Hop Limit"
+ },
+ "ignoreMqtt": {
+ "description": "Don't forward MQTT messages over the mesh",
+ "label": "Ignorar MQTT"
+ },
+ "modemPreset": {
+ "description": "Modem preset to use",
+ "label": "Predefinição do Modem"
+ },
+ "okToMqtt": {
+ "description": "When set to true, this configuration indicates that the user approves the packet to be uploaded to MQTT. If set to false, remote nodes are requested not to forward packets to MQTT",
+ "label": "OK para MQTT"
+ },
+ "overrideDutyCycle": {
+ "description": "Ignorar ciclo de trabalho",
+ "label": "Ignorar ciclo de trabalho"
+ },
+ "overrideFrequency": {
+ "description": "Override frequency",
+ "label": "Override Frequency"
+ },
+ "region": {
+ "description": "Sets the region for your node",
+ "label": "Região"
+ },
+ "spreadingFactor": {
+ "description": "Indicates the number of chirps per symbol",
+ "label": "Spreading Factor"
+ },
+ "transmitEnabled": {
+ "description": "Enable/Disable transmit (TX) from the LoRa radio",
+ "label": "Transmit Enabled"
+ },
+ "transmitPower": {
+ "description": "Max transmit power",
+ "label": "Transmit Power"
+ },
+ "usePreset": {
+ "description": "Use one of the predefined modem presets",
+ "label": "Use Preset"
+ },
+ "meshSettings": {
+ "description": "Settings for the LoRa mesh",
+ "label": "Mesh Settings"
+ },
+ "waveformSettings": {
+ "description": "Settings for the LoRa waveform",
+ "label": "Waveform Settings"
+ },
+ "radioSettings": {
+ "label": "Radio Settings",
+ "description": "Settings for the LoRa radio"
+ }
+ },
+ "network": {
+ "title": "WiFi Config",
+ "description": "WiFi radio configuration",
+ "note": "Note: Some devices (ESP32) cannot use both Bluetooth and WiFi at the same time.",
+ "addressMode": {
+ "description": "Address assignment selection",
+ "label": "Address Mode"
+ },
+ "dns": {
+ "description": "DNS Server",
+ "label": "DNS"
+ },
+ "ethernetEnabled": {
+ "description": "Enable or disable the Ethernet port",
+ "label": "Enabled"
+ },
+ "gateway": {
+ "description": "Default Gateway",
+ "label": "Gateway"
+ },
+ "ip": {
+ "description": "IP Address",
+ "label": "IP"
+ },
+ "psk": {
+ "description": "Network password",
+ "label": "PSK"
+ },
+ "ssid": {
+ "description": "Network name",
+ "label": "SSID"
+ },
+ "subnet": {
+ "description": "Subnet Mask",
+ "label": "Subnet"
+ },
+ "wifiEnabled": {
+ "description": "Enable or disable the WiFi radio",
+ "label": "Enabled"
+ },
+ "meshViaUdp": {
+ "label": "Mesh via UDP"
+ },
+ "ntpServer": {
+ "label": "NTP Server"
+ },
+ "rsyslogServer": {
+ "label": "Rsyslog Server"
+ },
+ "ethernetConfigSettings": {
+ "description": "Ethernet port configuration",
+ "label": "Ethernet Config"
+ },
+ "ipConfigSettings": {
+ "description": "IP configuration",
+ "label": "IP Config"
+ },
+ "ntpConfigSettings": {
+ "description": "NTP configuration",
+ "label": "NTP Config"
+ },
+ "rsyslogConfigSettings": {
+ "description": "Rsyslog configuration",
+ "label": "Rsyslog Config"
+ },
+ "udpConfigSettings": {
+ "description": "UDP over Mesh configuration",
+ "label": "Configuração UDP"
+ }
+ },
+ "position": {
+ "title": "Position Settings",
+ "description": "Settings for the position module",
+ "broadcastInterval": {
+ "description": "How often your position is sent out over the mesh",
+ "label": "Broadcast Interval"
+ },
+ "enablePin": {
+ "description": "GPS module enable pin override",
+ "label": "Enable Pin"
+ },
+ "fixedPosition": {
+ "description": "Don't report GPS position, but a manually-specified one",
+ "label": "Fixed Position"
+ },
+ "gpsMode": {
+ "description": "Configure whether device GPS is Enabled, Disabled, or Not Present",
+ "label": "GPS Mode"
+ },
+ "gpsUpdateInterval": {
+ "description": "How often a GPS fix should be acquired",
+ "label": "GPS Update Interval"
+ },
+ "positionFlags": {
+ "description": "Optional fields to include when assembling position messages. The more fields are selected, the larger the message will be leading to longer airtime usage and a higher risk of packet loss.",
+ "label": "Position Flags"
+ },
+ "receivePin": {
+ "description": "GPS module RX pin override",
+ "label": "Receive Pin"
+ },
+ "smartPositionEnabled": {
+ "description": "Only send position when there has been a meaningful change in location",
+ "label": "Enable Smart Position"
+ },
+ "smartPositionMinDistance": {
+ "description": "Minimum distance (in meters) that must be traveled before a position update is sent",
+ "label": "Smart Position Minimum Distance"
+ },
+ "smartPositionMinInterval": {
+ "description": "Minimum interval (in seconds) that must pass before a position update is sent",
+ "label": "Smart Position Minimum Interval"
+ },
+ "transmitPin": {
+ "description": "GPS module TX pin override",
+ "label": "Transmit Pin"
+ },
+ "intervalsSettings": {
+ "description": "How often to send position updates",
+ "label": "Intervals"
+ },
+ "flags": {
+ "placeholder": "Select position flags...",
+ "altitude": "Altitude",
+ "altitudeGeoidalSeparation": "Altitude Geoidal Separation",
+ "altitudeMsl": "Altitude is Mean Sea Level",
+ "dop": "Dilution of precision (DOP) PDOP used by default",
+ "hdopVdop": "If DOP is set, use HDOP / VDOP values instead of PDOP",
+ "numSatellites": "Number of satellites",
+ "sequenceNumber": "Sequence number",
+ "timestamp": "Data e hora",
+ "unset": "Não definido",
+ "vehicleHeading": "Vehicle heading",
+ "vehicleSpeed": "Vehicle speed"
+ }
+ },
+ "power": {
+ "adcMultiplierOverride": {
+ "description": "Used for tweaking battery voltage reading",
+ "label": "ADC Multiplier Override ratio"
+ },
+ "ina219Address": {
+ "description": "Address of the INA219 battery monitor",
+ "label": "INA219 Address"
+ },
+ "lightSleepDuration": {
+ "description": "How long the device will be in light sleep for",
+ "label": "Light Sleep Duration"
+ },
+ "minimumWakeTime": {
+ "description": "Minimum amount of time the device will stay awake for after receiving a packet",
+ "label": "Minimum Wake Time"
+ },
+ "noConnectionBluetoothDisabled": {
+ "description": "If the device does not receive a Bluetooth connection, the BLE radio will be disabled after this long",
+ "label": "No Connection Bluetooth Disabled"
+ },
+ "powerSavingEnabled": {
+ "description": "Select if powered from a low-current source (i.e. solar), to minimize power consumption as much as possible.",
+ "label": "Ativar modo de economia de energia"
+ },
+ "shutdownOnBatteryDelay": {
+ "description": "Automatically shutdown node after this long when on battery, 0 for indefinite",
+ "label": "Shutdown on battery delay"
+ },
+ "superDeepSleepDuration": {
+ "description": "How long the device will be in super deep sleep for",
+ "label": "Super Deep Sleep Duration"
+ },
+ "powerConfigSettings": {
+ "description": "Settings for the power module",
+ "label": "Configuração de Energia"
+ },
+ "sleepSettings": {
+ "description": "Sleep settings for the power module",
+ "label": "Sleep Settings"
+ }
+ },
+ "security": {
+ "description": "Settings for the Security configuration",
+ "title": "Security Settings",
+ "button_backupKey": "Backup Key",
+ "adminChannelEnabled": {
+ "description": "Allow incoming device control over the insecure legacy admin channel",
+ "label": "Allow Legacy Admin"
+ },
+ "enableDebugLogApi": {
+ "description": "Output live debug logging over serial, view and export position-redacted device logs over Bluetooth",
+ "label": "Enable Debug Log API"
+ },
+ "managed": {
+ "description": "If enabled, device configuration options are only able to be changed remotely by a Remote Admin node via admin messages. Do not enable this option unless at least one suitable Remote Admin node has been setup, and the public key is stored in one of the fields above.",
+ "label": "Managed"
+ },
+ "privateKey": {
+ "description": "Used to create a shared key with a remote device",
+ "label": "Chave Privada"
+ },
+ "publicKey": {
+ "description": "Sent out to other nodes on the mesh to allow them to compute a shared secret key",
+ "label": "Chave Publica"
+ },
+ "primaryAdminKey": {
+ "description": "The primary public key authorized to send admin messages to this node",
+ "label": "Primary Admin Key"
+ },
+ "secondaryAdminKey": {
+ "description": "The secondary public key authorized to send admin messages to this node",
+ "label": "Secondary Admin Key"
+ },
+ "serialOutputEnabled": {
+ "description": "Serial Console over the Stream API",
+ "label": "Serial Output Enabled"
+ },
+ "tertiaryAdminKey": {
+ "description": "The tertiary public key authorized to send admin messages to this node",
+ "label": "Tertiary Admin Key"
+ },
+ "adminSettings": {
+ "description": "Settings for Admin",
+ "label": "Admin Settings"
+ },
+ "loggingSettings": {
+ "description": "Settings for Logging",
+ "label": "Logging Settings"
+ }
+ },
+ "user": {
+ "title": "User Settings",
+ "description": "Configure your device name and identity settings",
+ "longName": {
+ "label": "Long Name",
+ "description": "Your full display name (1-40 characters)",
+ "validation": {
+ "min": "Long name must be at least 1 character",
+ "max": "Long name must be at most 40 characters"
+ }
+ },
+ "shortName": {
+ "label": "Short Name",
+ "description": "Your abbreviated name (2-4 characters)",
+ "validation": {
+ "min": "Short name must be at least 2 characters",
+ "max": "Short name must be at most 4 characters"
+ }
+ },
+ "isUnmessageable": {
+ "label": "Impossível enviar mensagens",
+ "description": "Used to identify unmonitored or infrastructure nodes so that messaging is not available to nodes that will never respond."
+ },
+ "isLicensed": {
+ "label": "Rádio Amador Licenciado (HAM)",
+ "description": "Enable if you are a licensed amateur radio operator, enabling this option disables encryption and is not compatible with the default Meshtastic network."
+ }
+ }
+}
diff --git a/packages/web/public/i18n/locales/pt-BR/dashboard.json b/packages/web/public/i18n/locales/pt-BR/dashboard.json
index 3a2d606c..38e86966 100644
--- a/packages/web/public/i18n/locales/pt-BR/dashboard.json
+++ b/packages/web/public/i18n/locales/pt-BR/dashboard.json
@@ -1,12 +1,12 @@
{
- "dashboard": {
- "title": "Connected Devices",
- "description": "Manage your connected Meshtastic devices.",
- "connectionType_ble": "BLE",
- "connectionType_serial": "Serial",
- "connectionType_network": "Rede",
- "noDevicesTitle": "No devices connected",
- "noDevicesDescription": "Connect a new device to get started.",
- "button_newConnection": "New Connection"
- }
+ "dashboard": {
+ "title": "Connected Devices",
+ "description": "Manage your connected Meshtastic devices.",
+ "connectionType_ble": "BLE",
+ "connectionType_serial": "Serial",
+ "connectionType_network": "Rede",
+ "noDevicesTitle": "No devices connected",
+ "noDevicesDescription": "Connect a new device to get started.",
+ "button_newConnection": "New Connection"
+ }
}
diff --git a/packages/web/public/i18n/locales/pt-BR/dialog.json b/packages/web/public/i18n/locales/pt-BR/dialog.json
index 8a9c0280..75918905 100644
--- a/packages/web/public/i18n/locales/pt-BR/dialog.json
+++ b/packages/web/public/i18n/locales/pt-BR/dialog.json
@@ -1,193 +1,221 @@
{
- "deleteMessages": {
- "description": "This action will clear all message history. This cannot be undone. Are you sure you want to continue?",
- "title": "Clear All Messages"
- },
- "deviceName": {
- "description": "The Device will restart once the config is saved.",
- "longName": "Long Name",
- "shortName": "Short Name",
- "title": "Change Device Name",
- "validation": {
- "longNameMax": "Long name must not be more than 40 characters",
- "shortNameMax": "Short name must not be more than 4 characters",
- "longNameMin": "Long name must have at least 1 character",
- "shortNameMin": "Short name must have at least 1 character"
- }
- },
- "import": {
- "description": "The current LoRa configuration will be overridden.",
- "error": {
- "invalidUrl": "Invalid Meshtastic URL"
- },
- "channelPrefix": "Channel: ",
- "channelSetUrl": "Channel Set/QR Code URL",
- "channels": "Channels:",
- "usePreset": "Use Preset?",
- "title": "Import Channel Set"
- },
- "locationResponse": {
- "title": "Location: {{identifier}}",
- "altitude": "Altitude: ",
- "coordinates": "Coordinates: ",
- "noCoordinates": "No Coordinates"
- },
- "pkiRegenerateDialog": {
- "title": "Regenerate Pre-Shared Key?",
- "description": "Are you sure you want to regenerate the pre-shared key?",
- "regenerate": "Regenerate"
- },
- "newDeviceDialog": {
- "title": "Connect New Device",
- "https": "https",
- "http": "http",
- "tabHttp": "HTTP",
- "tabBluetooth": "Bluetooth",
- "tabSerial": "Serial",
- "useHttps": "Use HTTPS",
- "connecting": "Connecting...",
- "connect": "Connect",
- "connectionFailedAlert": {
- "title": "Connection Failed",
- "descriptionPrefix": "Could not connect to the device. ",
- "httpsHint": "If using HTTPS, you may need to accept a self-signed certificate first. ",
- "openLinkPrefix": "Please open ",
- "openLinkSuffix": " in a new tab",
- "acceptTlsWarningSuffix": ", accept any TLS warnings if prompted, then try again",
- "learnMoreLink": "Learn more"
- },
- "httpConnection": {
- "label": "IP Address/Hostname",
- "placeholder": "000.000.000.000 / meshtastic.local"
- },
- "serialConnection": {
- "noDevicesPaired": "No devices paired yet.",
- "newDeviceButton": "New device",
- "deviceIdentifier": "# {{index}} - {{vendorId}} - {{productId}}"
- },
- "bluetoothConnection": {
- "noDevicesPaired": "No devices paired yet.",
- "newDeviceButton": "New device",
- "connectionFailed": "Connection failed",
- "deviceDisconnected": "Device disconnected",
- "unknownDevice": "Unknown Device",
- "errorLoadingDevices": "Error loading devices",
- "unknownErrorLoadingDevices": "Unknown error loading devices"
- },
- "validation": {
- "requiresWebBluetooth": "This connection type requires <0>Web Bluetooth0>. Please use a supported browser, like Chrome or Edge.",
- "requiresWebSerial": "This connection type requires <0>Web Serial0>. Please use a supported browser, like Chrome or Edge.",
- "requiresSecureContext": "This application requires a <0>secure context0>. Please connect using HTTPS or localhost.",
- "additionallyRequiresSecureContext": "Additionally, it requires a <0>secure context0>. Please connect using HTTPS or localhost."
- }
- },
- "nodeDetails": {
- "message": "Mensagem",
- "requestPosition": "Request Position",
- "traceRoute": "Trace Route",
- "airTxUtilization": "Air TX utilization",
- "allRawMetrics": "All Raw Metrics:",
- "batteryLevel": "Battery level",
- "channelUtilization": "Channel utilization",
- "details": "Details:",
- "deviceMetrics": "Device Metrics:",
- "hardware": "Hardware: ",
- "lastHeard": "Last Heard: ",
- "nodeHexPrefix": "Node Hex: ",
- "nodeNumber": "Node Number: ",
- "position": "Position:",
- "role": "Role: ",
- "uptime": "Uptime: ",
- "voltage": "Voltagem",
- "title": "Node Details for {{identifier}}",
- "ignoreNode": "Ignore node",
- "removeNode": "Remove node",
- "unignoreNode": "Unignore node",
- "security": "Security:",
- "publicKey": "Public Key: ",
- "messageable": "Messageable: ",
- "KeyManuallyVerifiedTrue": "Public Key has been manually verified",
- "KeyManuallyVerifiedFalse": "Public Key is not manually verified"
- },
- "pkiBackup": {
- "loseKeysWarning": "If you lose your keys, you will need to reset your device.",
- "secureBackup": "Its important to backup your public and private keys and store your backup securely!",
- "footer": "=== END OF KEYS ===",
- "header": "=== MESHTASTIC KEYS FOR {{longName}} ({{shortName}}) ===",
- "privateKey": "Private Key:",
- "publicKey": "Public Key:",
- "fileName": "meshtastic_keys_{{longName}}_{{shortName}}.txt",
- "title": "Backup Keys"
- },
- "pkiBackupReminder": {
- "description": "We recommend backing up your key data regularly. Would you like to back up now?",
- "title": "Backup Reminder",
- "remindLaterPrefix": "Remind me in",
- "remindNever": "Never remind me",
- "backupNow": "Back up now"
- },
- "pkiRegenerate": {
- "description": "Are you sure you want to regenerate key pair?",
- "title": "Regenerate Key Pair"
- },
- "qr": {
- "addChannels": "Add Channels",
- "replaceChannels": "Replace Channels",
- "description": "The current LoRa configuration will also be shared.",
- "sharableUrl": "Sharable URL",
- "title": "Generate QR Code"
- },
- "reboot": {
- "title": "Reboot device",
- "description": "Reboot now or schedule a reboot of the connected node. Optionally, you can choose to reboot into OTA (Over-the-Air) mode.",
- "ota": "Reboot into OTA mode",
- "enterDelay": "Enter delay",
- "scheduled": "Reboot has been scheduled",
- "schedule": "Schedule reboot",
- "now": "Reboot now",
- "cancel": "Cancel scheduled reboot"
- },
- "refreshKeys": {
- "description": {
- "acceptNewKeys": "This will remove the node from device and request new keys.",
- "keyMismatchReasonSuffix": ". This is due to the remote node's current public key does not match the previously stored key for this node.",
- "unableToSendDmPrefix": "Your node is unable to send a direct message to node: "
- },
- "acceptNewKeys": "Accept New Keys",
- "title": "Keys Mismatch - {{identifier}}"
- },
- "removeNode": {
- "description": "Are you sure you want to remove this Node?",
- "title": "Remove Node?"
- },
- "shutdown": {
- "title": "Schedule Shutdown",
- "description": "Turn off the connected node after x minutes."
- },
- "traceRoute": {
- "routeToDestination": "Route to destination:",
- "routeBack": "Route back:"
- },
- "tracerouteResponse": {
- "title": "Traceroute: {{identifier}}"
- },
- "unsafeRoles": {
- "confirmUnderstanding": "Yes, I know what I'm doing",
- "conjunction": " and the blog post about ",
- "postamble": " and understand the implications of changing the role.",
- "preamble": "I have read the ",
- "choosingRightDeviceRole": "Choosing The Right Device Role",
- "deviceRoleDocumentation": "Device Role Documentation",
- "title": "Você tem certeza?"
- },
- "managedMode": {
- "confirmUnderstanding": "Yes, I know what I'm doing",
- "title": "Você tem certeza?",
- "description": "Enabling Managed Mode blocks client applications (including the web client) from writing configurations to a radio. Once enabled, radio configurations can only be changed through Remote Admin messages. This setting is not required for remote node administration."
- },
- "clientNotification": {
- "title": "Notificação de cliente",
- "TraceRoute can only be sent once every 30 seconds": "TraceRoute can only be sent once every 30 seconds",
- "Compromised keys were detected and regenerated.": "Compromised keys were detected and regenerated."
- }
+ "deleteMessages": {
+ "description": "This action will clear all message history. This cannot be undone. Are you sure you want to continue?",
+ "title": "Clear All Messages"
+ },
+ "deviceName": {
+ "description": "The Device will restart once the config is saved.",
+ "longName": "Long Name",
+ "shortName": "Short Name",
+ "title": "Change Device Name",
+ "validation": {
+ "longNameMax": "Long name must not be more than 40 characters",
+ "shortNameMax": "Short name must not be more than 4 characters",
+ "longNameMin": "Long name must have at least 1 character",
+ "shortNameMin": "Short name must have at least 1 character"
+ }
+ },
+ "import": {
+ "description": "The current LoRa configuration will be overridden.",
+ "error": {
+ "invalidUrl": "Invalid Meshtastic URL"
+ },
+ "channelPrefix": "Channel: ",
+ "primary": "Primary ",
+ "doNotImport": "No not import",
+ "channelName": "Nome",
+ "channelSlot": "Slot",
+ "channelSetUrl": "Channel Set/QR Code URL",
+ "useLoraConfig": "Import LoRa Config",
+ "presetDescription": "The current LoRa Config will be replaced.",
+ "title": "Import Channel Set"
+ },
+ "locationResponse": {
+ "title": "Location: {{identifier}}",
+ "altitude": "Altitude: ",
+ "coordinates": "Coordinates: ",
+ "noCoordinates": "No Coordinates"
+ },
+ "pkiRegenerateDialog": {
+ "title": "Regenerate Pre-Shared Key?",
+ "description": "Are you sure you want to regenerate the pre-shared key?",
+ "regenerate": "Regenerate"
+ },
+ "newDeviceDialog": {
+ "title": "Connect New Device",
+ "https": "https",
+ "http": "http",
+ "tabHttp": "HTTP",
+ "tabBluetooth": "Bluetooth",
+ "tabSerial": "Serial",
+ "useHttps": "Use HTTPS",
+ "connecting": "Connecting...",
+ "connect": "Connect",
+ "connectionFailedAlert": {
+ "title": "Connection Failed",
+ "descriptionPrefix": "Could not connect to the device. ",
+ "httpsHint": "If using HTTPS, you may need to accept a self-signed certificate first. ",
+ "openLinkPrefix": "Please open ",
+ "openLinkSuffix": " in a new tab",
+ "acceptTlsWarningSuffix": ", accept any TLS warnings if prompted, then try again",
+ "learnMoreLink": "Learn more"
+ },
+ "httpConnection": {
+ "label": "IP Address/Hostname",
+ "placeholder": "000.000.000.000 / meshtastic.local"
+ },
+ "serialConnection": {
+ "noDevicesPaired": "No devices paired yet.",
+ "newDeviceButton": "New device",
+ "deviceIdentifier": "# {{index}} - {{vendorId}} - {{productId}}"
+ },
+ "bluetoothConnection": {
+ "noDevicesPaired": "No devices paired yet.",
+ "newDeviceButton": "New device",
+ "connectionFailed": "Connection failed",
+ "deviceDisconnected": "Device disconnected",
+ "unknownDevice": "Unknown Device",
+ "errorLoadingDevices": "Error loading devices",
+ "unknownErrorLoadingDevices": "Unknown error loading devices"
+ },
+ "validation": {
+ "requiresWebBluetooth": "This connection type requires <0>Web Bluetooth0>. Please use a supported browser, like Chrome or Edge.",
+ "requiresWebSerial": "This connection type requires <0>Web Serial0>. Please use a supported browser, like Chrome or Edge.",
+ "requiresSecureContext": "This application requires a <0>secure context0>. Please connect using HTTPS or localhost.",
+ "additionallyRequiresSecureContext": "Additionally, it requires a <0>secure context0>. Please connect using HTTPS or localhost."
+ }
+ },
+ "nodeDetails": {
+ "message": "Mensagem",
+ "requestPosition": "Request Position",
+ "traceRoute": "Trace Route",
+ "airTxUtilization": "Air TX utilization",
+ "allRawMetrics": "All Raw Metrics:",
+ "batteryLevel": "Battery level",
+ "channelUtilization": "Channel utilization",
+ "details": "Details:",
+ "deviceMetrics": "Device Metrics:",
+ "hardware": "Hardware: ",
+ "lastHeard": "Last Heard: ",
+ "nodeHexPrefix": "Node Hex: ",
+ "nodeNumber": "Node Number: ",
+ "position": "Position:",
+ "role": "Role: ",
+ "uptime": "Uptime: ",
+ "voltage": "Voltagem",
+ "title": "Node Details for {{identifier}}",
+ "ignoreNode": "Ignore node",
+ "removeNode": "Remove node",
+ "unignoreNode": "Unignore node",
+ "security": "Security:",
+ "publicKey": "Public Key: ",
+ "messageable": "Messageable: ",
+ "KeyManuallyVerifiedTrue": "Public Key has been manually verified",
+ "KeyManuallyVerifiedFalse": "Public Key is not manually verified"
+ },
+ "pkiBackup": {
+ "loseKeysWarning": "If you lose your keys, you will need to reset your device.",
+ "secureBackup": "Its important to backup your public and private keys and store your backup securely!",
+ "footer": "=== END OF KEYS ===",
+ "header": "=== MESHTASTIC KEYS FOR {{longName}} ({{shortName}}) ===",
+ "privateKey": "Private Key:",
+ "publicKey": "Public Key:",
+ "fileName": "meshtastic_keys_{{longName}}_{{shortName}}.txt",
+ "title": "Backup Keys"
+ },
+ "pkiBackupReminder": {
+ "description": "We recommend backing up your key data regularly. Would you like to back up now?",
+ "title": "Backup Reminder",
+ "remindLaterPrefix": "Remind me in",
+ "remindNever": "Never remind me",
+ "backupNow": "Back up now"
+ },
+ "pkiRegenerate": {
+ "description": "Are you sure you want to regenerate key pair?",
+ "title": "Regenerate Key Pair"
+ },
+ "qr": {
+ "addChannels": "Add Channels",
+ "replaceChannels": "Replace Channels",
+ "description": "The current LoRa configuration will also be shared.",
+ "sharableUrl": "Sharable URL",
+ "title": "Generate QR Code"
+ },
+ "reboot": {
+ "title": "Reboot device",
+ "description": "Reboot now or schedule a reboot of the connected node. Optionally, you can choose to reboot into OTA (Over-the-Air) mode.",
+ "ota": "Reboot into OTA mode",
+ "enterDelay": "Enter delay",
+ "scheduled": "Reboot has been scheduled",
+ "schedule": "Schedule reboot",
+ "now": "Reboot now",
+ "cancel": "Cancel scheduled reboot"
+ },
+ "refreshKeys": {
+ "description": {
+ "acceptNewKeys": "This will remove the node from device and request new keys.",
+ "keyMismatchReasonSuffix": ". This is due to the remote node's current public key does not match the previously stored key for this node.",
+ "unableToSendDmPrefix": "Your node is unable to send a direct message to node: "
+ },
+ "acceptNewKeys": "Accept New Keys",
+ "title": "Keys Mismatch - {{identifier}}"
+ },
+ "removeNode": {
+ "description": "Are you sure you want to remove this Node?",
+ "title": "Remove Node?"
+ },
+ "shutdown": {
+ "title": "Schedule Shutdown",
+ "description": "Turn off the connected node after x minutes."
+ },
+ "traceRoute": {
+ "routeToDestination": "Route to destination:",
+ "routeBack": "Route back:"
+ },
+ "tracerouteResponse": {
+ "title": "Traceroute: {{identifier}}"
+ },
+ "unsafeRoles": {
+ "confirmUnderstanding": "Yes, I know what I'm doing",
+ "conjunction": " and the blog post about ",
+ "postamble": " and understand the implications of changing the role.",
+ "preamble": "I have read the ",
+ "choosingRightDeviceRole": "Choosing The Right Device Role",
+ "deviceRoleDocumentation": "Device Role Documentation",
+ "title": "Você tem certeza?"
+ },
+ "managedMode": {
+ "confirmUnderstanding": "Yes, I know what I'm doing",
+ "title": "Você tem certeza?",
+ "description": "Enabling Managed Mode blocks client applications (including the web client) from writing configurations to a radio. Once enabled, radio configurations can only be changed through Remote Admin messages. This setting is not required for remote node administration."
+ },
+ "clientNotification": {
+ "title": "Notificação de cliente",
+ "TraceRoute can only be sent once every 30 seconds": "TraceRoute can only be sent once every 30 seconds",
+ "Compromised keys were detected and regenerated.": "Compromised keys were detected and regenerated."
+ },
+ "resetNodeDb": {
+ "title": "Reset Node Database",
+ "description": "This will clear all nodes from the connected device's node database and clear all message history in the client. This cannot be undone. Are you sure you want to continue?",
+ "confirm": "Reset Node Database",
+ "failedTitle": "There was an error resetting the Node DB. Please try again."
+ },
+ "clearAllStores": {
+ "title": "Clear All Local Storage",
+ "description": "This will clear all locally stored data, including message history and node databases for all previously connected devices. This will require you to reconnect to your node once complete and cannot be undone. Are you sure you want to continue?",
+ "confirm": "Clear all local storage",
+ "failedTitle": "There was an error clearing local storage. Please try again."
+ },
+ "factoryResetDevice": {
+ "title": "Factory Reset Device",
+ "description": "This will factory reset the connected device, erasing all configurations and data on the device as well as all nodes and messages saved in the client. This cannot be undone. Are you sure you want to continue?",
+ "confirm": "Factory Reset Device",
+ "failedTitle": "There was an error performing the factory reset. Please try again."
+ },
+ "factoryResetConfig": {
+ "title": "Factory Reset Config",
+ "description": "This will factory reset the configuration on the connected device, erasing all configurations on the device. This cannot be undone. Are you sure you want to continue?",
+ "confirm": "Factory Reset Config",
+ "failedTitle": "There was an error performing the factory reset. Please try again."
+ }
}
diff --git a/packages/web/public/i18n/locales/pt-BR/map.json b/packages/web/public/i18n/locales/pt-BR/map.json
new file mode 100644
index 00000000..fc2b7c4f
--- /dev/null
+++ b/packages/web/public/i18n/locales/pt-BR/map.json
@@ -0,0 +1,38 @@
+{
+ "maplibre": {
+ "GeolocateControl.FindMyLocation": "Find my location",
+ "NavigationControl.ZoomIn": "Zoom in",
+ "NavigationControl.ZoomOut": "Zoom out",
+ "CooperativeGesturesHandler.WindowsHelpText": "Use Ctrl + scroll to zoom the map",
+ "CooperativeGesturesHandler.MacHelpText": "Use ⌘ + scroll to zoom the map",
+ "CooperativeGesturesHandler.MobileHelpText": "Use two fingers to move the map"
+ },
+ "layerTool": {
+ "nodeMarkers": "Show nodes",
+ "directNeighbors": "Show direct connections",
+ "remoteNeighbors": "Show remote connections",
+ "positionPrecision": "Show position precision",
+ "traceroutes": "Show traceroutes",
+ "waypoints": "Show waypoints"
+ },
+ "mapMenu": {
+ "locateAria": "Locate my node",
+ "layersAria": "Change map style"
+ },
+ "waypointDetail": {
+ "edit": "Editar",
+ "description": "Description:",
+ "createdBy": "Edited by:",
+ "createdDate": "Created:",
+ "updated": "Updated:",
+ "expires": "Expires:",
+ "distance": "Distance:",
+ "bearing": "Absolute bearing:",
+ "lockedTo": "Locked by:",
+ "latitude": "Latitude:",
+ "longitude": "Longitude:"
+ },
+ "myNode": {
+ "tooltip": "This device"
+ }
+}
diff --git a/packages/web/public/i18n/locales/pt-BR/messages.json b/packages/web/public/i18n/locales/pt-BR/messages.json
index a4647b95..cd7260a8 100644
--- a/packages/web/public/i18n/locales/pt-BR/messages.json
+++ b/packages/web/public/i18n/locales/pt-BR/messages.json
@@ -1,39 +1,39 @@
{
- "page": {
- "title": "Messages: {{chatName}}",
- "placeholder": "Enter Message"
- },
- "emptyState": {
- "title": "Select a Chat",
- "text": "No messages yet."
- },
- "selectChatPrompt": {
- "text": "Select a channel or node to start messaging."
- },
- "sendMessage": {
- "placeholder": "Enter your message here...",
- "sendButton": "Enviar"
- },
- "actionsMenu": {
- "addReactionLabel": "Add Reaction",
- "replyLabel": "Responder"
- },
- "deliveryStatus": {
- "delivered": {
- "label": "Message delivered",
- "displayText": "Message delivered"
- },
- "failed": {
- "label": "Message delivery failed",
- "displayText": "Delivery failed"
- },
- "unknown": {
- "label": "Message status unknown",
- "displayText": "Unknown state"
- },
- "waiting": {
- "label": "Sending message",
- "displayText": "Waiting for delivery"
- }
- }
+ "page": {
+ "title": "Messages: {{chatName}}",
+ "placeholder": "Enter Message"
+ },
+ "emptyState": {
+ "title": "Select a Chat",
+ "text": "No messages yet."
+ },
+ "selectChatPrompt": {
+ "text": "Select a channel or node to start messaging."
+ },
+ "sendMessage": {
+ "placeholder": "Enter your message here...",
+ "sendButton": "Enviar"
+ },
+ "actionsMenu": {
+ "addReactionLabel": "Add Reaction",
+ "replyLabel": "Responder"
+ },
+ "deliveryStatus": {
+ "delivered": {
+ "label": "Message delivered",
+ "displayText": "Message delivered"
+ },
+ "failed": {
+ "label": "Message delivery failed",
+ "displayText": "Delivery failed"
+ },
+ "unknown": {
+ "label": "Message status unknown",
+ "displayText": "Unknown state"
+ },
+ "waiting": {
+ "label": "Sending message",
+ "displayText": "Waiting for delivery"
+ }
+ }
}
diff --git a/packages/web/public/i18n/locales/pt-BR/moduleConfig.json b/packages/web/public/i18n/locales/pt-BR/moduleConfig.json
index 419d63fa..dacf9681 100644
--- a/packages/web/public/i18n/locales/pt-BR/moduleConfig.json
+++ b/packages/web/public/i18n/locales/pt-BR/moduleConfig.json
@@ -1,448 +1,448 @@
{
- "page": {
- "tabAmbientLighting": "Luz Ambiente",
- "tabAudio": "Áudio",
- "tabCannedMessage": "Canned",
- "tabDetectionSensor": "Sensor de Detecção",
- "tabExternalNotification": "Ext Notif",
- "tabMqtt": "MQTT",
- "tabNeighborInfo": "Informações do Vizinho",
- "tabPaxcounter": "Medidor de Fluxo de Pessoas",
- "tabRangeTest": "Teste de Alcance",
- "tabSerial": "Serial",
- "tabStoreAndForward": "S&F",
- "tabTelemetry": "Telemetria"
- },
- "ambientLighting": {
- "title": "Ambient Lighting Settings",
- "description": "Settings for the Ambient Lighting module",
- "ledState": {
- "label": "LED State",
- "description": "Sets LED to on or off"
- },
- "current": {
- "label": "Atual",
- "description": "Sets the current for the LED output. Default is 10"
- },
- "red": {
- "label": "Vermelho",
- "description": "Sets the red LED level. Values are 0-255"
- },
- "green": {
- "label": "Verde",
- "description": "Sets the green LED level. Values are 0-255"
- },
- "blue": {
- "label": "Azul",
- "description": "Sets the blue LED level. Values are 0-255"
- }
- },
- "audio": {
- "title": "Audio Settings",
- "description": "Settings for the Audio module",
- "codec2Enabled": {
- "label": "Codec 2 Enabled",
- "description": "Enable Codec 2 audio encoding"
- },
- "pttPin": {
- "label": "PTT Pin",
- "description": "GPIO pin to use for PTT"
- },
- "bitrate": {
- "label": "Bitrate",
- "description": "Bitrate to use for audio encoding"
- },
- "i2sWs": {
- "label": "i2S WS",
- "description": "GPIO pin to use for i2S WS"
- },
- "i2sSd": {
- "label": "i2S SD",
- "description": "GPIO pin to use for i2S SD"
- },
- "i2sDin": {
- "label": "i2S DIN",
- "description": "GPIO pin to use for i2S DIN"
- },
- "i2sSck": {
- "label": "i2S SCK",
- "description": "GPIO pin to use for i2S SCK"
- }
- },
- "cannedMessage": {
- "title": "Canned Message Settings",
- "description": "Settings for the Canned Message module",
- "moduleEnabled": {
- "label": "Module Enabled",
- "description": "Enable Canned Message"
- },
- "rotary1Enabled": {
- "label": "Rotary Encoder #1 Enabled",
- "description": "Enable the rotary encoder"
- },
- "inputbrokerPinA": {
- "label": "Encoder Pin A",
- "description": "GPIO Pin Value (1-39) For encoder port A"
- },
- "inputbrokerPinB": {
- "label": "Encoder Pin B",
- "description": "GPIO Pin Value (1-39) For encoder port B"
- },
- "inputbrokerPinPress": {
- "label": "Encoder Pin Press",
- "description": "GPIO Pin Value (1-39) For encoder Press"
- },
- "inputbrokerEventCw": {
- "label": "Clockwise event",
- "description": "Select input event."
- },
- "inputbrokerEventCcw": {
- "label": "Counter Clockwise event",
- "description": "Select input event."
- },
- "inputbrokerEventPress": {
- "label": "Press event",
- "description": "Select input event"
- },
- "updown1Enabled": {
- "label": "Up Down enabled",
- "description": "Enable the up / down encoder"
- },
- "allowInputSource": {
- "label": "Allow Input Source",
- "description": "Select from: '_any', 'rotEnc1', 'upDownEnc1', 'cardkb'"
- },
- "sendBell": {
- "label": "Send Bell",
- "description": "Sends a bell character with each message"
- }
- },
- "detectionSensor": {
- "title": "Detection Sensor Settings",
- "description": "Settings for the Detection Sensor module",
- "enabled": {
- "label": "Enabled",
- "description": "Enable or disable Detection Sensor Module"
- },
- "minimumBroadcastSecs": {
- "label": "Minimum Broadcast Seconds",
- "description": "The interval in seconds of how often we can send a message to the mesh when a state change is detected"
- },
- "stateBroadcastSecs": {
- "label": "State Broadcast Seconds",
- "description": "The interval in seconds of how often we should send a message to the mesh with the current state regardless of changes"
- },
- "sendBell": {
- "label": "Send Bell",
- "description": "Send ASCII bell with alert message"
- },
- "name": {
- "label": "Friendly Name",
- "description": "Used to format the message sent to mesh, max 20 Characters"
- },
- "monitorPin": {
- "label": "Monitor Pin",
- "description": "The GPIO pin to monitor for state changes"
- },
- "detectionTriggerType": {
- "label": "Detection Triggered Type",
- "description": "The type of trigger event to be used"
- },
- "usePullup": {
- "label": "Use Pullup",
- "description": "Whether or not use INPUT_PULLUP mode for GPIO pin"
- }
- },
- "externalNotification": {
- "title": "External Notification Settings",
- "description": "Configure the external notification module",
- "enabled": {
- "label": "Module Enabled",
- "description": "Enable External Notification"
- },
- "outputMs": {
- "label": "Output MS",
- "description": "Output MS"
- },
- "output": {
- "label": "Output",
- "description": "Output"
- },
- "outputVibra": {
- "label": "Output Vibrate",
- "description": "Output Vibrate"
- },
- "outputBuzzer": {
- "label": "Output Buzzer",
- "description": "Output Buzzer"
- },
- "active": {
- "label": "Active",
- "description": "Active"
- },
- "alertMessage": {
- "label": "Alert Message",
- "description": "Alert Message"
- },
- "alertMessageVibra": {
- "label": "Alert Message Vibrate",
- "description": "Alert Message Vibrate"
- },
- "alertMessageBuzzer": {
- "label": "Alert Message Buzzer",
- "description": "Alert Message Buzzer"
- },
- "alertBell": {
- "label": "Alert Bell",
- "description": "Should an alert be triggered when receiving an incoming bell?"
- },
- "alertBellVibra": {
- "label": "Alert Bell Vibrate",
- "description": "Alert Bell Vibrate"
- },
- "alertBellBuzzer": {
- "label": "Alert Bell Buzzer",
- "description": "Alert Bell Buzzer"
- },
- "usePwm": {
- "label": "Use PWM",
- "description": "Use PWM"
- },
- "nagTimeout": {
- "label": "Nag Timeout",
- "description": "Nag Timeout"
- },
- "useI2sAsBuzzer": {
- "label": "Use I²S Pin as Buzzer",
- "description": "Designate I²S Pin as Buzzer Output"
- }
- },
- "mqtt": {
- "title": "MQTT Settings",
- "description": "Settings for the MQTT module",
- "enabled": {
- "label": "Enabled",
- "description": "Enable or disable MQTT"
- },
- "address": {
- "label": "MQTT Server Address",
- "description": "MQTT server address to use for default/custom servers"
- },
- "username": {
- "label": "MQTT Username",
- "description": "MQTT username to use for default/custom servers"
- },
- "password": {
- "label": "MQTT Password",
- "description": "MQTT password to use for default/custom servers"
- },
- "encryptionEnabled": {
- "label": "Encryption Enabled",
- "description": "Enable or disable MQTT encryption. Note: All messages are sent to the MQTT broker unencrypted if this option is not enabled, even when your uplink channels have encryption keys set. This includes position data."
- },
- "jsonEnabled": {
- "label": "JSON Enabled",
- "description": "Whether to send/consume JSON packets on MQTT"
- },
- "tlsEnabled": {
- "label": "TLS Enabled",
- "description": "Enable or disable TLS"
- },
- "root": {
- "label": "Tópico principal",
- "description": "MQTT root topic to use for default/custom servers"
- },
- "proxyToClientEnabled": {
- "label": "MQTT Client Proxy Enabled",
- "description": "Utilizes the network connection to proxy MQTT messages to the client."
- },
- "mapReportingEnabled": {
- "label": "Map Reporting Enabled",
- "description": "Your node will periodically send an unencrypted map report packet to the configured MQTT server, this includes id, short and long name, approximate location, hardware model, role, firmware version, LoRa region, modem preset and primary channel name."
- },
- "mapReportSettings": {
- "publishIntervalSecs": {
- "label": "Map Report Publish Interval (s)",
- "description": "Interval in seconds to publish map reports"
- },
- "positionPrecision": {
- "label": "Approximate Location",
- "description": "Position shared will be accurate within this distance",
- "options": {
- "metric_km23": "Within 23 km",
- "metric_km12": "Within 12 km",
- "metric_km5_8": "Within 5.8 km",
- "metric_km2_9": "Within 2.9 km",
- "metric_km1_5": "Within 1.5 km",
- "metric_m700": "Within 700 m",
- "metric_m350": "Within 350 m",
- "metric_m200": "Within 200 m",
- "metric_m90": "Within 90 m",
- "metric_m50": "Within 50 m",
- "imperial_mi15": "Within 15 miles",
- "imperial_mi7_3": "Within 7.3 miles",
- "imperial_mi3_6": "Within 3.6 miles",
- "imperial_mi1_8": "Within 1.8 miles",
- "imperial_mi0_9": "Within 0.9 miles",
- "imperial_mi0_5": "Within 0.5 miles",
- "imperial_mi0_2": "Within 0.2 miles",
- "imperial_ft600": "Within 600 feet",
- "imperial_ft300": "Within 300 feet",
- "imperial_ft150": "Within 150 feet"
- }
- }
- }
- },
- "neighborInfo": {
- "title": "Neighbor Info Settings",
- "description": "Settings for the Neighbor Info module",
- "enabled": {
- "label": "Enabled",
- "description": "Enable or disable Neighbor Info Module"
- },
- "updateInterval": {
- "label": "Update Interval",
- "description": "Interval in seconds of how often we should try to send our Neighbor Info to the mesh"
- }
- },
- "paxcounter": {
- "title": "Paxcounter Settings",
- "description": "Settings for the Paxcounter module",
- "enabled": {
- "label": "Module Enabled",
- "description": "Enable Paxcounter"
- },
- "paxcounterUpdateInterval": {
- "label": "Update Interval (seconds)",
- "description": "How long to wait between sending paxcounter packets"
- },
- "wifiThreshold": {
- "label": "WiFi RSSI Threshold",
- "description": "At what WiFi RSSI level should the counter increase. Defaults to -80."
- },
- "bleThreshold": {
- "label": "BLE RSSI Threshold",
- "description": "At what BLE RSSI level should the counter increase. Defaults to -80."
- }
- },
- "rangeTest": {
- "title": "Range Test Settings",
- "description": "Settings for the Range Test module",
- "enabled": {
- "label": "Module Enabled",
- "description": "Enable Range Test"
- },
- "sender": {
- "label": "Message Interval",
- "description": "How long to wait between sending test packets"
- },
- "save": {
- "label": "Save CSV to storage",
- "description": "ESP32 Only"
- }
- },
- "serial": {
- "title": "Serial Settings",
- "description": "Settings for the Serial module",
- "enabled": {
- "label": "Module Enabled",
- "description": "Enable Serial output"
- },
- "echo": {
- "label": "Echo",
- "description": "Any packets you send will be echoed back to your device"
- },
- "rxd": {
- "label": "Receive Pin",
- "description": "Set the GPIO pin to the RXD pin you have set up."
- },
- "txd": {
- "label": "Transmit Pin",
- "description": "Set the GPIO pin to the TXD pin you have set up."
- },
- "baud": {
- "label": "Baud Rate",
- "description": "The serial baud rate"
- },
- "timeout": {
- "label": "Tempo esgotado",
- "description": "Seconds to wait before we consider your packet as 'done'"
- },
- "mode": {
- "label": "Mode",
- "description": "Select Mode"
- },
- "overrideConsoleSerialPort": {
- "label": "Override Console Serial Port",
- "description": "If you have a serial port connected to the console, this will override it."
- }
- },
- "storeForward": {
- "title": "Store & Forward Settings",
- "description": "Settings for the Store & Forward module",
- "enabled": {
- "label": "Module Enabled",
- "description": "Enable Store & Forward"
- },
- "heartbeat": {
- "label": "Heartbeat Enabled",
- "description": "Enable Store & Forward heartbeat"
- },
- "records": {
- "label": "Número de registros",
- "description": "Number of records to store"
- },
- "historyReturnMax": {
- "label": "Histórico de retorno máximo",
- "description": "Max number of records to return"
- },
- "historyReturnWindow": {
- "label": "Janela de retorno do histórico",
- "description": "Retornar registros desta janela de tempo (minutos)"
- }
- },
- "telemetry": {
- "title": "Telemetry Settings",
- "description": "Settings for the Telemetry module",
- "deviceUpdateInterval": {
- "label": "Device Metrics",
- "description": "Intervalo de atualização das métricas do dispositivo (segundos)"
- },
- "environmentUpdateInterval": {
- "label": "Intervalo de atualização das métricas de ambiente (segundos)",
- "description": ""
- },
- "environmentMeasurementEnabled": {
- "label": "Module Enabled",
- "description": "Enable the Environment Telemetry"
- },
- "environmentScreenEnabled": {
- "label": "Displayed on Screen",
- "description": "Show the Telemetry Module on the OLED"
- },
- "environmentDisplayFahrenheit": {
- "label": "Display Fahrenheit",
- "description": "Display temp in Fahrenheit"
- },
- "airQualityEnabled": {
- "label": "Air Quality Enabled",
- "description": "Enable the Air Quality Telemetry"
- },
- "airQualityInterval": {
- "label": "Air Quality Update Interval",
- "description": "How often to send Air Quality data over the mesh"
- },
- "powerMeasurementEnabled": {
- "label": "Power Measurement Enabled",
- "description": "Enable the Power Measurement Telemetry"
- },
- "powerUpdateInterval": {
- "label": "Power Update Interval",
- "description": "How often to send Power data over the mesh"
- },
- "powerScreenEnabled": {
- "label": "Power Screen Enabled",
- "description": "Enable the Power Telemetry Screen"
- }
- }
+ "page": {
+ "tabAmbientLighting": "Luz Ambiente",
+ "tabAudio": "Áudio",
+ "tabCannedMessage": "Canned",
+ "tabDetectionSensor": "Sensor de Detecção",
+ "tabExternalNotification": "Ext Notif",
+ "tabMqtt": "MQTT",
+ "tabNeighborInfo": "Informações do Vizinho",
+ "tabPaxcounter": "Medidor de Fluxo de Pessoas",
+ "tabRangeTest": "Teste de Alcance",
+ "tabSerial": "Serial",
+ "tabStoreAndForward": "S&F",
+ "tabTelemetry": "Telemetria"
+ },
+ "ambientLighting": {
+ "title": "Ambient Lighting Settings",
+ "description": "Settings for the Ambient Lighting module",
+ "ledState": {
+ "label": "LED State",
+ "description": "Sets LED to on or off"
+ },
+ "current": {
+ "label": "Atual",
+ "description": "Sets the current for the LED output. Default is 10"
+ },
+ "red": {
+ "label": "Vermelho",
+ "description": "Sets the red LED level. Values are 0-255"
+ },
+ "green": {
+ "label": "Verde",
+ "description": "Sets the green LED level. Values are 0-255"
+ },
+ "blue": {
+ "label": "Azul",
+ "description": "Sets the blue LED level. Values are 0-255"
+ }
+ },
+ "audio": {
+ "title": "Audio Settings",
+ "description": "Settings for the Audio module",
+ "codec2Enabled": {
+ "label": "Codec 2 Enabled",
+ "description": "Enable Codec 2 audio encoding"
+ },
+ "pttPin": {
+ "label": "PTT Pin",
+ "description": "GPIO pin to use for PTT"
+ },
+ "bitrate": {
+ "label": "Bitrate",
+ "description": "Bitrate to use for audio encoding"
+ },
+ "i2sWs": {
+ "label": "i2S WS",
+ "description": "GPIO pin to use for i2S WS"
+ },
+ "i2sSd": {
+ "label": "i2S SD",
+ "description": "GPIO pin to use for i2S SD"
+ },
+ "i2sDin": {
+ "label": "i2S DIN",
+ "description": "GPIO pin to use for i2S DIN"
+ },
+ "i2sSck": {
+ "label": "i2S SCK",
+ "description": "GPIO pin to use for i2S SCK"
+ }
+ },
+ "cannedMessage": {
+ "title": "Canned Message Settings",
+ "description": "Settings for the Canned Message module",
+ "moduleEnabled": {
+ "label": "Module Enabled",
+ "description": "Enable Canned Message"
+ },
+ "rotary1Enabled": {
+ "label": "Rotary Encoder #1 Enabled",
+ "description": "Enable the rotary encoder"
+ },
+ "inputbrokerPinA": {
+ "label": "Encoder Pin A",
+ "description": "GPIO Pin Value (1-39) For encoder port A"
+ },
+ "inputbrokerPinB": {
+ "label": "Encoder Pin B",
+ "description": "GPIO Pin Value (1-39) For encoder port B"
+ },
+ "inputbrokerPinPress": {
+ "label": "Encoder Pin Press",
+ "description": "GPIO Pin Value (1-39) For encoder Press"
+ },
+ "inputbrokerEventCw": {
+ "label": "Clockwise event",
+ "description": "Select input event."
+ },
+ "inputbrokerEventCcw": {
+ "label": "Counter Clockwise event",
+ "description": "Select input event."
+ },
+ "inputbrokerEventPress": {
+ "label": "Press event",
+ "description": "Select input event"
+ },
+ "updown1Enabled": {
+ "label": "Up Down enabled",
+ "description": "Enable the up / down encoder"
+ },
+ "allowInputSource": {
+ "label": "Allow Input Source",
+ "description": "Select from: '_any', 'rotEnc1', 'upDownEnc1', 'cardkb'"
+ },
+ "sendBell": {
+ "label": "Send Bell",
+ "description": "Sends a bell character with each message"
+ }
+ },
+ "detectionSensor": {
+ "title": "Detection Sensor Settings",
+ "description": "Settings for the Detection Sensor module",
+ "enabled": {
+ "label": "Enabled",
+ "description": "Enable or disable Detection Sensor Module"
+ },
+ "minimumBroadcastSecs": {
+ "label": "Minimum Broadcast Seconds",
+ "description": "The interval in seconds of how often we can send a message to the mesh when a state change is detected"
+ },
+ "stateBroadcastSecs": {
+ "label": "State Broadcast Seconds",
+ "description": "The interval in seconds of how often we should send a message to the mesh with the current state regardless of changes"
+ },
+ "sendBell": {
+ "label": "Send Bell",
+ "description": "Send ASCII bell with alert message"
+ },
+ "name": {
+ "label": "Friendly Name",
+ "description": "Used to format the message sent to mesh, max 20 Characters"
+ },
+ "monitorPin": {
+ "label": "Monitor Pin",
+ "description": "The GPIO pin to monitor for state changes"
+ },
+ "detectionTriggerType": {
+ "label": "Detection Triggered Type",
+ "description": "The type of trigger event to be used"
+ },
+ "usePullup": {
+ "label": "Use Pullup",
+ "description": "Whether or not use INPUT_PULLUP mode for GPIO pin"
+ }
+ },
+ "externalNotification": {
+ "title": "External Notification Settings",
+ "description": "Configure the external notification module",
+ "enabled": {
+ "label": "Module Enabled",
+ "description": "Enable External Notification"
+ },
+ "outputMs": {
+ "label": "Output MS",
+ "description": "Output MS"
+ },
+ "output": {
+ "label": "Output",
+ "description": "Output"
+ },
+ "outputVibra": {
+ "label": "Output Vibrate",
+ "description": "Output Vibrate"
+ },
+ "outputBuzzer": {
+ "label": "Output Buzzer",
+ "description": "Output Buzzer"
+ },
+ "active": {
+ "label": "Active",
+ "description": "Active"
+ },
+ "alertMessage": {
+ "label": "Alert Message",
+ "description": "Alert Message"
+ },
+ "alertMessageVibra": {
+ "label": "Alert Message Vibrate",
+ "description": "Alert Message Vibrate"
+ },
+ "alertMessageBuzzer": {
+ "label": "Alert Message Buzzer",
+ "description": "Alert Message Buzzer"
+ },
+ "alertBell": {
+ "label": "Alert Bell",
+ "description": "Should an alert be triggered when receiving an incoming bell?"
+ },
+ "alertBellVibra": {
+ "label": "Alert Bell Vibrate",
+ "description": "Alert Bell Vibrate"
+ },
+ "alertBellBuzzer": {
+ "label": "Alert Bell Buzzer",
+ "description": "Alert Bell Buzzer"
+ },
+ "usePwm": {
+ "label": "Use PWM",
+ "description": "Use PWM"
+ },
+ "nagTimeout": {
+ "label": "Nag Timeout",
+ "description": "Nag Timeout"
+ },
+ "useI2sAsBuzzer": {
+ "label": "Use I²S Pin as Buzzer",
+ "description": "Designate I²S Pin as Buzzer Output"
+ }
+ },
+ "mqtt": {
+ "title": "MQTT Settings",
+ "description": "Settings for the MQTT module",
+ "enabled": {
+ "label": "Enabled",
+ "description": "Enable or disable MQTT"
+ },
+ "address": {
+ "label": "MQTT Server Address",
+ "description": "MQTT server address to use for default/custom servers"
+ },
+ "username": {
+ "label": "MQTT Username",
+ "description": "MQTT username to use for default/custom servers"
+ },
+ "password": {
+ "label": "MQTT Password",
+ "description": "MQTT password to use for default/custom servers"
+ },
+ "encryptionEnabled": {
+ "label": "Encryption Enabled",
+ "description": "Enable or disable MQTT encryption. Note: All messages are sent to the MQTT broker unencrypted if this option is not enabled, even when your uplink channels have encryption keys set. This includes position data."
+ },
+ "jsonEnabled": {
+ "label": "JSON Enabled",
+ "description": "Whether to send/consume JSON packets on MQTT"
+ },
+ "tlsEnabled": {
+ "label": "TLS Enabled",
+ "description": "Enable or disable TLS"
+ },
+ "root": {
+ "label": "Tópico principal",
+ "description": "MQTT root topic to use for default/custom servers"
+ },
+ "proxyToClientEnabled": {
+ "label": "MQTT Client Proxy Enabled",
+ "description": "Utilizes the network connection to proxy MQTT messages to the client."
+ },
+ "mapReportingEnabled": {
+ "label": "Map Reporting Enabled",
+ "description": "Your node will periodically send an unencrypted map report packet to the configured MQTT server, this includes id, short and long name, approximate location, hardware model, role, firmware version, LoRa region, modem preset and primary channel name."
+ },
+ "mapReportSettings": {
+ "publishIntervalSecs": {
+ "label": "Map Report Publish Interval (s)",
+ "description": "Interval in seconds to publish map reports"
+ },
+ "positionPrecision": {
+ "label": "Approximate Location",
+ "description": "Position shared will be accurate within this distance",
+ "options": {
+ "metric_km23": "Within 23 km",
+ "metric_km12": "Within 12 km",
+ "metric_km5_8": "Within 5.8 km",
+ "metric_km2_9": "Within 2.9 km",
+ "metric_km1_5": "Within 1.5 km",
+ "metric_m700": "Within 700 m",
+ "metric_m350": "Within 350 m",
+ "metric_m200": "Within 200 m",
+ "metric_m90": "Within 90 m",
+ "metric_m50": "Within 50 m",
+ "imperial_mi15": "Within 15 miles",
+ "imperial_mi7_3": "Within 7.3 miles",
+ "imperial_mi3_6": "Within 3.6 miles",
+ "imperial_mi1_8": "Within 1.8 miles",
+ "imperial_mi0_9": "Within 0.9 miles",
+ "imperial_mi0_5": "Within 0.5 miles",
+ "imperial_mi0_2": "Within 0.2 miles",
+ "imperial_ft600": "Within 600 feet",
+ "imperial_ft300": "Within 300 feet",
+ "imperial_ft150": "Within 150 feet"
+ }
+ }
+ }
+ },
+ "neighborInfo": {
+ "title": "Neighbor Info Settings",
+ "description": "Settings for the Neighbor Info module",
+ "enabled": {
+ "label": "Enabled",
+ "description": "Enable or disable Neighbor Info Module"
+ },
+ "updateInterval": {
+ "label": "Update Interval",
+ "description": "Interval in seconds of how often we should try to send our Neighbor Info to the mesh"
+ }
+ },
+ "paxcounter": {
+ "title": "Paxcounter Settings",
+ "description": "Settings for the Paxcounter module",
+ "enabled": {
+ "label": "Module Enabled",
+ "description": "Enable Paxcounter"
+ },
+ "paxcounterUpdateInterval": {
+ "label": "Update Interval (seconds)",
+ "description": "How long to wait between sending paxcounter packets"
+ },
+ "wifiThreshold": {
+ "label": "WiFi RSSI Threshold",
+ "description": "At what WiFi RSSI level should the counter increase. Defaults to -80."
+ },
+ "bleThreshold": {
+ "label": "BLE RSSI Threshold",
+ "description": "At what BLE RSSI level should the counter increase. Defaults to -80."
+ }
+ },
+ "rangeTest": {
+ "title": "Range Test Settings",
+ "description": "Settings for the Range Test module",
+ "enabled": {
+ "label": "Module Enabled",
+ "description": "Enable Range Test"
+ },
+ "sender": {
+ "label": "Message Interval",
+ "description": "How long to wait between sending test packets"
+ },
+ "save": {
+ "label": "Save CSV to storage",
+ "description": "ESP32 Only"
+ }
+ },
+ "serial": {
+ "title": "Serial Settings",
+ "description": "Settings for the Serial module",
+ "enabled": {
+ "label": "Module Enabled",
+ "description": "Enable Serial output"
+ },
+ "echo": {
+ "label": "Echo",
+ "description": "Any packets you send will be echoed back to your device"
+ },
+ "rxd": {
+ "label": "Receive Pin",
+ "description": "Set the GPIO pin to the RXD pin you have set up."
+ },
+ "txd": {
+ "label": "Transmit Pin",
+ "description": "Set the GPIO pin to the TXD pin you have set up."
+ },
+ "baud": {
+ "label": "Baud Rate",
+ "description": "The serial baud rate"
+ },
+ "timeout": {
+ "label": "Tempo esgotado",
+ "description": "Seconds to wait before we consider your packet as 'done'"
+ },
+ "mode": {
+ "label": "Mode",
+ "description": "Select Mode"
+ },
+ "overrideConsoleSerialPort": {
+ "label": "Override Console Serial Port",
+ "description": "If you have a serial port connected to the console, this will override it."
+ }
+ },
+ "storeForward": {
+ "title": "Store & Forward Settings",
+ "description": "Settings for the Store & Forward module",
+ "enabled": {
+ "label": "Module Enabled",
+ "description": "Enable Store & Forward"
+ },
+ "heartbeat": {
+ "label": "Heartbeat Enabled",
+ "description": "Enable Store & Forward heartbeat"
+ },
+ "records": {
+ "label": "Número de registros",
+ "description": "Number of records to store"
+ },
+ "historyReturnMax": {
+ "label": "Histórico de retorno máximo",
+ "description": "Max number of records to return"
+ },
+ "historyReturnWindow": {
+ "label": "Janela de retorno do histórico",
+ "description": "Retornar registros desta janela de tempo (minutos)"
+ }
+ },
+ "telemetry": {
+ "title": "Telemetry Settings",
+ "description": "Settings for the Telemetry module",
+ "deviceUpdateInterval": {
+ "label": "Device Metrics",
+ "description": "Intervalo de atualização das métricas do dispositivo (segundos)"
+ },
+ "environmentUpdateInterval": {
+ "label": "Intervalo de atualização das métricas de ambiente (segundos)",
+ "description": ""
+ },
+ "environmentMeasurementEnabled": {
+ "label": "Module Enabled",
+ "description": "Enable the Environment Telemetry"
+ },
+ "environmentScreenEnabled": {
+ "label": "Displayed on Screen",
+ "description": "Show the Telemetry Module on the OLED"
+ },
+ "environmentDisplayFahrenheit": {
+ "label": "Display Fahrenheit",
+ "description": "Display temp in Fahrenheit"
+ },
+ "airQualityEnabled": {
+ "label": "Air Quality Enabled",
+ "description": "Enable the Air Quality Telemetry"
+ },
+ "airQualityInterval": {
+ "label": "Air Quality Update Interval",
+ "description": "How often to send Air Quality data over the mesh"
+ },
+ "powerMeasurementEnabled": {
+ "label": "Power Measurement Enabled",
+ "description": "Enable the Power Measurement Telemetry"
+ },
+ "powerUpdateInterval": {
+ "label": "Power Update Interval",
+ "description": "How often to send Power data over the mesh"
+ },
+ "powerScreenEnabled": {
+ "label": "Power Screen Enabled",
+ "description": "Enable the Power Telemetry Screen"
+ }
+ }
}
diff --git a/packages/web/public/i18n/locales/pt-BR/nodes.json b/packages/web/public/i18n/locales/pt-BR/nodes.json
index d48164d1..f95bc122 100644
--- a/packages/web/public/i18n/locales/pt-BR/nodes.json
+++ b/packages/web/public/i18n/locales/pt-BR/nodes.json
@@ -1,63 +1,59 @@
{
- "nodeDetail": {
- "publicKeyEnabled": {
- "label": "Public Key Enabled"
- },
- "noPublicKey": {
- "label": "No Public Key"
- },
- "directMessage": {
- "label": "Direct Message {{shortName}}"
- },
- "favorite": {
- "label": "Favorito",
- "tooltip": "Add or remove this node from your favorites"
- },
- "notFavorite": {
- "label": "Not a Favorite"
- },
- "error": {
- "label": "Erro",
- "text": "An error occurred while fetching node details. Please try again later."
- },
- "status": {
- "heard": "Heard",
- "mqtt": "MQTT"
- },
- "elevation": {
- "label": "Elevation"
- },
- "channelUtil": {
- "label": "Channel Util"
- },
- "airtimeUtil": {
- "label": "Airtime Util"
- }
- },
- "nodesTable": {
- "headings": {
- "longName": "Long Name",
- "connection": "Connection",
- "lastHeard": "Last Heard",
- "encryption": "Encryption",
- "model": "Model",
- "macAddress": "MAC Address"
- },
- "connectionStatus": {
- "direct": "Direto",
- "away": "away",
- "unknown": "-",
- "viaMqtt": ", via MQTT"
- },
- "lastHeardStatus": {
- "never": "Never"
- }
- },
- "actions": {
- "added": "Added",
- "removed": "Removed",
- "ignoreNode": "Ignore Node",
- "unignoreNode": "Unignore Node",
- "requestPosition": "Request Position"
- }
+ "nodeDetail": {
+ "publicKeyEnabled": {
+ "label": "Public Key Enabled"
+ },
+ "noPublicKey": {
+ "label": "No Public Key"
+ },
+ "directMessage": {
+ "label": "Direct Message {{shortName}}"
+ },
+ "favorite": {
+ "label": "Favorito",
+ "tooltip": "Add or remove this node from your favorites"
+ },
+ "notFavorite": {
+ "label": "Not a Favorite"
+ },
+ "error": {
+ "label": "Erro",
+ "text": "An error occurred while fetching node details. Please try again later."
+ },
+ "status": {
+ "heard": "Heard",
+ "mqtt": "MQTT"
+ },
+ "elevation": {
+ "label": "Elevation"
+ },
+ "channelUtil": {
+ "label": "Channel Util"
+ },
+ "airtimeUtil": {
+ "label": "Airtime Util"
+ }
+ },
+ "nodesTable": {
+ "headings": {
+ "longName": "Long Name",
+ "connection": "Connection",
+ "lastHeard": "Last Heard",
+ "encryption": "Encryption",
+ "model": "Model",
+ "macAddress": "MAC Address"
+ },
+ "connectionStatus": {
+ "direct": "Direto",
+ "away": "away",
+ "viaMqtt": ", via MQTT"
+ }
+ },
+ "actions": {
+ "added": "Added",
+ "removed": "Removed",
+ "ignoreNode": "Ignore Node",
+ "unignoreNode": "Unignore Node",
+ "requestPosition": "Request Position"
+ }
}
diff --git a/packages/web/public/i18n/locales/pt-BR/ui.json b/packages/web/public/i18n/locales/pt-BR/ui.json
index fe4fd02b..4aaf8a24 100644
--- a/packages/web/public/i18n/locales/pt-BR/ui.json
+++ b/packages/web/public/i18n/locales/pt-BR/ui.json
@@ -1,228 +1,229 @@
{
- "navigation": {
- "title": "Navigation",
- "messages": "Mensagens",
- "map": "Mapa",
- "config": "Config",
- "radioConfig": "Radio Config",
- "moduleConfig": "Module Config",
- "channels": "Canais",
- "nodes": "Nós"
- },
- "app": {
- "title": "Meshtastic",
- "logo": "Meshtastic Logo"
- },
- "sidebar": {
- "collapseToggle": {
- "button": {
- "open": "Open sidebar",
- "close": "Close sidebar"
- }
- },
- "deviceInfo": {
- "volts": "{{voltage}} volts",
- "firmware": {
- "title": "Firmware",
- "version": "v{{version}}",
- "buildDate": "Build date: {{date}}"
- },
- "deviceName": {
- "title": "Device Name",
- "changeName": "Change Device Name",
- "placeholder": "Enter device name"
- },
- "editDeviceName": "Edit device name"
- }
- },
- "batteryStatus": {
- "charging": "{{level}}% charging",
- "pluggedIn": "Plugged in",
- "title": "Bateria"
- },
- "search": {
- "nodes": "Search nodes...",
- "channels": "Search channels...",
- "commandPalette": "Search commands..."
- },
- "toast": {
- "positionRequestSent": {
- "title": "Position request sent."
- },
- "requestingPosition": {
- "title": "Requesting position, please wait..."
- },
- "sendingTraceroute": {
- "title": "Sending Traceroute, please wait..."
- },
- "tracerouteSent": {
- "title": "Traceroute sent."
- },
- "savedChannel": {
- "title": "Saved Channel: {{channelName}}"
- },
- "messages": {
- "pkiEncryption": {
- "title": "Chat is using PKI encryption."
- },
- "pskEncryption": {
- "title": "Chat is using PSK encryption."
- }
- },
- "configSaveError": {
- "title": "Error Saving Config",
- "description": "An error occurred while saving the configuration."
- },
- "validationError": {
- "title": "Config Errors Exist",
- "description": "Please fix the configuration errors before saving."
- },
- "saveSuccess": {
- "title": "Saving Config",
- "description": "The configuration change {{case}} has been saved."
- },
- "favoriteNode": {
- "title": "{{action}} {{nodeName}} {{direction}} favorites.",
- "action": {
- "added": "Added",
- "removed": "Removed",
- "to": "to",
- "from": "from"
- }
- },
- "ignoreNode": {
- "title": "{{action}} {{nodeName}} {{direction}} ignore list",
- "action": {
- "added": "Added",
- "removed": "Removed",
- "to": "to",
- "from": "from"
- }
- }
- },
- "notifications": {
- "copied": {
- "label": "Copied!"
- },
- "copyToClipboard": {
- "label": "Copy to clipboard"
- },
- "hidePassword": {
- "label": "Ocultar senha"
- },
- "showPassword": {
- "label": "Mostrar senha"
- },
- "deliveryStatus": {
- "delivered": "Delivered",
- "failed": "Delivery Failed",
- "waiting": "Waiting",
- "unknown": "Desconhecido"
- }
- },
- "general": {
- "label": "General"
- },
- "hardware": {
- "label": "Hardware"
- },
- "metrics": {
- "label": "Metrics"
- },
- "role": {
- "label": "Função"
- },
- "filter": {
- "label": "Filtro"
- },
- "advanced": {
- "label": "Advanced"
- },
- "clearInput": {
- "label": "Clear input"
- },
- "resetFilters": {
- "label": "Reset Filters"
- },
- "nodeName": {
- "label": "Node name/number",
- "placeholder": "Meshtastic 1234"
- },
- "airtimeUtilization": {
- "label": "Airtime Utilization (%)"
- },
- "batteryLevel": {
- "label": "Battery level (%)",
- "labelText": "Battery level (%): {{value}}"
- },
- "batteryVoltage": {
- "label": "Battery voltage (V)",
- "title": "Voltagem"
- },
- "channelUtilization": {
- "label": "Channel Utilization (%)"
- },
- "hops": {
- "direct": "Direto",
- "label": "Number of hops",
- "text": "Number of hops: {{value}}"
- },
- "lastHeard": {
- "label": "Visto pela última vez",
- "labelText": "Last heard: {{value}}",
- "nowLabel": "Now"
- },
- "snr": {
- "label": "SNR (db)"
- },
- "favorites": {
- "label": "Favorites"
- },
- "hide": {
- "label": "Hide"
- },
- "showOnly": {
- "label": "Show Only"
- },
- "viaMqtt": {
- "label": "Connected via MQTT"
- },
- "hopsUnknown": {
- "label": "Unknown number of hops"
- },
- "showUnheard": {
- "label": "Never heard"
- },
- "language": {
- "label": "Idioma",
- "changeLanguage": "Change Language"
- },
- "theme": {
- "dark": "Escuro",
- "light": "Claro",
- "system": "Automatic",
- "changeTheme": "Change Color Scheme"
- },
- "errorPage": {
- "title": "This is a little embarrassing...",
- "description1": "We are really sorry but an error occurred in the web client that caused it to crash.
This is not supposed to happen, and we are working hard to fix it.",
- "description2": "The best way to prevent this from happening again to you or anyone else is to report the issue to us.",
- "reportInstructions": "Please include the following information in your report:",
- "reportSteps": {
- "step1": "What you were doing when the error occurred",
- "step2": "What you expected to happen",
- "step3": "What actually happened",
- "step4": "Any other relevant information"
- },
- "reportLink": "You can report the issue to our <0>GitHub0>",
- "dashboardLink": "Return to the <0>dashboard0>",
- "detailsSummary": "Error Details",
- "errorMessageLabel": "Error message:",
- "stackTraceLabel": "Stack trace:",
- "fallbackError": "{{error}}"
- },
- "footer": {
- "text": "Powered by <0>▲ Vercel0> | Meshtastic® is a registered trademark of Meshtastic LLC. | <1>Legal Information1>",
- "commitSha": "Commit SHA: {{sha}}"
- }
+ "navigation": {
+ "title": "Navigation",
+ "messages": "Mensagens",
+ "map": "Mapa",
+ "settings": "Configurações",
+ "channels": "Canais",
+ "radioConfig": "Radio Config",
+ "deviceConfig": "Configuração do Dispositivo",
+ "moduleConfig": "Module Config",
+ "nodes": "Nós"
+ },
+ "app": {
+ "title": "Meshtastic",
+ "logo": "Meshtastic Logo"
+ },
+ "sidebar": {
+ "collapseToggle": {
+ "button": {
+ "open": "Open sidebar",
+ "close": "Close sidebar"
+ }
+ },
+ "deviceInfo": {
+ "volts": "{{voltage}} volts",
+ "firmware": {
+ "title": "Firmware",
+ "version": "v{{version}}",
+ "buildDate": "Build date: {{date}}"
+ }
+ }
+ },
+ "batteryStatus": {
+ "charging": "{{level}}% charging",
+ "pluggedIn": "Plugged in",
+ "title": "Bateria"
+ },
+ "search": {
+ "nodes": "Search nodes...",
+ "channels": "Search channels...",
+ "commandPalette": "Search commands..."
+ },
+ "toast": {
+ "positionRequestSent": {
+ "title": "Position request sent."
+ },
+ "requestingPosition": {
+ "title": "Requesting position, please wait..."
+ },
+ "sendingTraceroute": {
+ "title": "Sending Traceroute, please wait..."
+ },
+ "tracerouteSent": {
+ "title": "Traceroute sent."
+ },
+ "savedChannel": {
+ "title": "Saved Channel: {{channelName}}"
+ },
+ "messages": {
+ "pkiEncryption": {
+ "title": "Chat is using PKI encryption."
+ },
+ "pskEncryption": {
+ "title": "Chat is using PSK encryption."
+ }
+ },
+ "configSaveError": {
+ "title": "Error Saving Config",
+ "description": "An error occurred while saving the configuration."
+ },
+ "validationError": {
+ "title": "Config Errors Exist",
+ "description": "Please fix the configuration errors before saving."
+ },
+ "saveSuccess": {
+ "title": "Saving Config",
+ "description": "The configuration change {{case}} has been saved."
+ },
+ "saveAllSuccess": {
+ "title": "Saved",
+ "description": "All configuration changes have been saved."
+ },
+ "favoriteNode": {
+ "title": "{{action}} {{nodeName}} {{direction}} favorites.",
+ "action": {
+ "added": "Added",
+ "removed": "Removed",
+ "to": "to",
+ "from": "from"
+ }
+ },
+ "ignoreNode": {
+ "title": "{{action}} {{nodeName}} {{direction}} ignore list",
+ "action": {
+ "added": "Added",
+ "removed": "Removed",
+ "to": "to",
+ "from": "from"
+ }
+ }
+ },
+ "notifications": {
+ "copied": {
+ "label": "Copied!"
+ },
+ "copyToClipboard": {
+ "label": "Copy to clipboard"
+ },
+ "hidePassword": {
+ "label": "Ocultar senha"
+ },
+ "showPassword": {
+ "label": "Mostrar senha"
+ },
+ "deliveryStatus": {
+ "delivered": "Delivered",
+ "failed": "Delivery Failed",
+ "waiting": "Waiting",
+ "unknown": "Desconhecido"
+ }
+ },
+ "general": {
+ "label": "General"
+ },
+ "hardware": {
+ "label": "Hardware"
+ },
+ "metrics": {
+ "label": "Metrics"
+ },
+ "role": {
+ "label": "Função"
+ },
+ "filter": {
+ "label": "Filtro"
+ },
+ "advanced": {
+ "label": "Advanced"
+ },
+ "clearInput": {
+ "label": "Clear input"
+ },
+ "resetFilters": {
+ "label": "Reset Filters"
+ },
+ "nodeName": {
+ "label": "Node name/number",
+ "placeholder": "Meshtastic 1234"
+ },
+ "airtimeUtilization": {
+ "label": "Airtime Utilization (%)",
+ "short": "Airtime Util. (%)"
+ },
+ "batteryLevel": {
+ "label": "Battery level (%)",
+ "labelText": "Battery level (%): {{value}}"
+ },
+ "batteryVoltage": {
+ "label": "Battery voltage (V)",
+ "title": "Voltagem"
+ },
+ "channelUtilization": {
+ "label": "Channel Utilization (%)",
+ "short": "Channel Util. (%)"
+ },
+ "hops": {
+ "direct": "Direto",
+ "label": "Number of hops",
+ "text": "Number of hops: {{value}}"
+ },
+ "lastHeard": {
+ "label": "Visto pela última vez",
+ "labelText": "Last heard: {{value}}",
+ "nowLabel": "Now"
+ },
+ "snr": {
+ "label": "SNR (db)"
+ },
+ "favorites": {
+ "label": "Favorites"
+ },
+ "hide": {
+ "label": "Hide"
+ },
+ "showOnly": {
+ "label": "Show Only"
+ },
+ "viaMqtt": {
+ "label": "Connected via MQTT"
+ },
+ "hopsUnknown": {
+ "label": "Unknown number of hops"
+ },
+ "showUnheard": {
+ "label": "Never heard"
+ },
+ "language": {
+ "label": "Idioma",
+ "changeLanguage": "Change Language"
+ },
+ "theme": {
+ "dark": "Escuro",
+ "light": "Claro",
+ "system": "Automatic",
+ "changeTheme": "Change Color Scheme"
+ },
+ "errorPage": {
+ "title": "This is a little embarrassing...",
+ "description1": "We are really sorry but an error occurred in the web client that caused it to crash.
This is not supposed to happen, and we are working hard to fix it.",
+ "description2": "The best way to prevent this from happening again to you or anyone else is to report the issue to us.",
+ "reportInstructions": "Please include the following information in your report:",
+ "reportSteps": {
+ "step1": "What you were doing when the error occurred",
+ "step2": "What you expected to happen",
+ "step3": "What actually happened",
+ "step4": "Any other relevant information"
+ },
+ "reportLink": "You can report the issue to our <0>GitHub0>",
+ "dashboardLink": "Return to the <0>dashboard0>",
+ "detailsSummary": "Error Details",
+ "errorMessageLabel": "Error message:",
+ "stackTraceLabel": "Stack trace:",
+ "fallbackError": "{{error}}"
+ },
+ "footer": {
+ "text": "Powered by <0>▲ Vercel0> | Meshtastic® is a registered trademark of Meshtastic LLC. | <1>Legal Information1>",
+ "commitSha": "Commit SHA: {{sha}}"
+ }
}
diff --git a/packages/web/public/i18n/locales/pt-PT/channels.json b/packages/web/public/i18n/locales/pt-PT/channels.json
index 00038428..eecece15 100644
--- a/packages/web/public/i18n/locales/pt-PT/channels.json
+++ b/packages/web/public/i18n/locales/pt-PT/channels.json
@@ -1,69 +1,71 @@
{
- "page": {
- "sectionLabel": "Canal",
- "channelName": "Channel: {{channelName}}",
- "broadcastLabel": "Principal",
- "channelIndex": "Ch {{index}}"
- },
- "validation": {
- "pskInvalid": "Please enter a valid {{bits}} bit PSK."
- },
- "settings": {
- "label": "Configurações de canal",
- "description": "Crypto, MQTT & misc settings"
- },
- "role": {
- "label": "Papel",
- "description": "Device telemetry is sent over PRIMARY. Only one PRIMARY allowed",
- "options": {
- "primary": "PRIMARY",
- "disabled": "DISABLED",
- "secondary": "SECONDARY"
- }
- },
- "psk": {
- "label": "Pre-Shared Key",
- "description": "Supported PSK lengths: 256-bit, 128-bit, 8-bit, Empty (0-bit)",
- "generate": "Generate"
- },
- "name": {
- "label": "Nome",
- "description": "A unique name for the channel <12 bytes, leave blank for default"
- },
- "uplinkEnabled": {
- "label": "Uplink Enabled",
- "description": "Send messages from the local mesh to MQTT"
- },
- "downlinkEnabled": {
- "label": "Downlink Enabled",
- "description": "Send messages from MQTT to the local mesh"
- },
- "positionPrecision": {
- "label": "Location",
- "description": "The precision of the location to share with the channel. Can be disabled.",
- "options": {
- "none": "Do not share location",
- "precise": "Precise Location",
- "metric_km23": "Within 23 kilometers",
- "metric_km12": "Within 12 kilometers",
- "metric_km5_8": "Within 5.8 kilometers",
- "metric_km2_9": "Within 2.9 kilometers",
- "metric_km1_5": "Within 1.5 kilometers",
- "metric_m700": "Within 700 meters",
- "metric_m350": "Within 350 meters",
- "metric_m200": "Within 200 meters",
- "metric_m90": "Within 90 meters",
- "metric_m50": "Within 50 meters",
- "imperial_mi15": "Within 15 miles",
- "imperial_mi7_3": "Within 7.3 miles",
- "imperial_mi3_6": "Within 3.6 miles",
- "imperial_mi1_8": "Within 1.8 miles",
- "imperial_mi0_9": "Within 0.9 miles",
- "imperial_mi0_5": "Within 0.5 miles",
- "imperial_mi0_2": "Within 0.2 miles",
- "imperial_ft600": "Within 600 feet",
- "imperial_ft300": "Within 300 feet",
- "imperial_ft150": "Within 150 feet"
- }
- }
+ "page": {
+ "sectionLabel": "Canal",
+ "channelName": "Channel: {{channelName}}",
+ "broadcastLabel": "Principal",
+ "channelIndex": "Ch {{index}}",
+ "import": "Importar",
+ "export": "Export"
+ },
+ "validation": {
+ "pskInvalid": "Please enter a valid {{bits}} bit PSK."
+ },
+ "settings": {
+ "label": "Configurações de canal",
+ "description": "Crypto, MQTT & misc settings"
+ },
+ "role": {
+ "label": "Papel",
+ "description": "Device telemetry is sent over PRIMARY. Only one PRIMARY allowed",
+ "options": {
+ "primary": "PRIMARY",
+ "disabled": "DISABLED",
+ "secondary": "SECONDARY"
+ }
+ },
+ "psk": {
+ "label": "Pre-Shared Key",
+ "description": "Supported PSK lengths: 256-bit, 128-bit, 8-bit, Empty (0-bit)",
+ "generate": "Generate"
+ },
+ "name": {
+ "label": "Nome",
+ "description": "A unique name for the channel <12 bytes, leave blank for default"
+ },
+ "uplinkEnabled": {
+ "label": "Uplink Enabled",
+ "description": "Send messages from the local mesh to MQTT"
+ },
+ "downlinkEnabled": {
+ "label": "Downlink Enabled",
+ "description": "Send messages from MQTT to the local mesh"
+ },
+ "positionPrecision": {
+ "label": "Location",
+ "description": "The precision of the location to share with the channel. Can be disabled.",
+ "options": {
+ "none": "Do not share location",
+ "precise": "Precise Location",
+ "metric_km23": "Within 23 kilometers",
+ "metric_km12": "Within 12 kilometers",
+ "metric_km5_8": "Within 5.8 kilometers",
+ "metric_km2_9": "Within 2.9 kilometers",
+ "metric_km1_5": "Within 1.5 kilometers",
+ "metric_m700": "Within 700 meters",
+ "metric_m350": "Within 350 meters",
+ "metric_m200": "Within 200 meters",
+ "metric_m90": "Within 90 meters",
+ "metric_m50": "Within 50 meters",
+ "imperial_mi15": "Within 15 miles",
+ "imperial_mi7_3": "Within 7.3 miles",
+ "imperial_mi3_6": "Within 3.6 miles",
+ "imperial_mi1_8": "Within 1.8 miles",
+ "imperial_mi0_9": "Within 0.9 miles",
+ "imperial_mi0_5": "Within 0.5 miles",
+ "imperial_mi0_2": "Within 0.2 miles",
+ "imperial_ft600": "Within 600 feet",
+ "imperial_ft300": "Within 300 feet",
+ "imperial_ft150": "Within 150 feet"
+ }
+ }
}
diff --git a/packages/web/public/i18n/locales/pt-PT/commandPalette.json b/packages/web/public/i18n/locales/pt-PT/commandPalette.json
index 4f26f18e..43e819c2 100644
--- a/packages/web/public/i18n/locales/pt-PT/commandPalette.json
+++ b/packages/web/public/i18n/locales/pt-PT/commandPalette.json
@@ -15,7 +15,6 @@
"messages": "Mensagens",
"map": "Mapa",
"config": "Config",
- "channels": "Canal",
"nodes": "Nodes"
}
},
@@ -45,7 +44,8 @@
"label": "Depuração",
"command": {
"reconfigure": "Reconfigure",
- "clearAllStoredMessages": "Clear All Stored Message"
+ "clearAllStoredMessages": "Clear All Stored Message",
+ "clearAllStores": "Clear All Local Storage"
}
}
}
diff --git a/packages/web/public/i18n/locales/pt-PT/common.json b/packages/web/public/i18n/locales/pt-PT/common.json
index 1aa55494..7dee9abc 100644
--- a/packages/web/public/i18n/locales/pt-PT/common.json
+++ b/packages/web/public/i18n/locales/pt-PT/common.json
@@ -1,142 +1,157 @@
{
- "button": {
- "apply": "Aplicar",
- "backupKey": "Backup Key",
- "cancel": "Cancelar",
- "clearMessages": "Clear Messages",
- "close": "Fechar",
- "confirm": "Confirm",
- "delete": "Excluir",
- "dismiss": "Dismiss",
- "download": "Download",
- "export": "Export",
- "generate": "Generate",
- "regenerate": "Regenerate",
- "import": "Importar",
- "message": "Mensagem",
- "now": "Now",
- "ok": "Okay",
- "print": "Print",
- "remove": "Remover",
- "requestNewKeys": "Request New Keys",
- "requestPosition": "Request Position",
- "reset": "Redefinir",
- "save": "Salvar",
- "scanQr": "Ler código QR",
- "traceRoute": "Trace Route",
- "submit": "Submit"
- },
- "app": {
- "title": "Meshtastic",
- "fullTitle": "Meshtastic Web Client"
- },
- "loading": "Loading...",
- "unit": {
- "cps": "CPS",
- "dbm": "dBm",
- "hertz": "Hz",
- "hop": {
- "one": "Hop",
- "plural": "Hops"
- },
- "hopsAway": {
- "one": "{{count}} hop away",
- "plural": "{{count}} hops away",
- "unknown": "Unknown hops away"
- },
- "megahertz": "MHz",
- "raw": "raw",
- "meter": {
- "one": "Meter",
- "plural": "Meters",
- "suffix": "m"
- },
- "minute": {
- "one": "Minute",
- "plural": "Minutes"
- },
- "hour": {
- "one": "Hour",
- "plural": "Hours"
- },
- "millisecond": {
- "one": "Millisecond",
- "plural": "Milliseconds",
- "suffix": "ms"
- },
- "second": {
- "one": "Second",
- "plural": "Seconds"
- },
- "day": {
- "one": "Day",
- "plural": "Days"
- },
- "month": {
- "one": "Month",
- "plural": "Months"
- },
- "year": {
- "one": "Year",
- "plural": "Years"
- },
- "snr": "SNR",
- "volt": {
- "one": "Volt",
- "plural": "Volts",
- "suffix": "V"
- },
- "record": {
- "one": "Records",
- "plural": "Records"
- }
- },
- "security": {
- "0bit": "Empty",
- "8bit": "8 bit",
- "128bit": "128 bit",
- "256bit": "256 bit"
- },
- "unknown": {
- "longName": "Unknown",
- "shortName": "UNK",
- "notAvailable": "N/A",
- "num": "??"
- },
- "nodeUnknownPrefix": "!",
- "unset": "UNSET",
- "fallbackName": "Meshtastic {{last4}}",
- "node": "Node",
- "formValidation": {
- "unsavedChanges": "Unsaved changes",
- "tooBig": {
- "string": "Too long, expected less than or equal to {{maximum}} characters.",
- "number": "Too big, expected a number smaller than or equal to {{maximum}}.",
- "bytes": "Too big, expected less than or equal to {{params.maximum}} bytes."
- },
- "tooSmall": {
- "string": "Too short, expected more than or equal to {{minimum}} characters.",
- "number": "Too small, expected a number larger than or equal to {{minimum}}."
- },
- "invalidFormat": {
- "ipv4": "Invalid format, expected an IPv4 address.",
- "key": "Invalid format, expected a Base64 encoded pre-shared key (PSK)."
- },
- "invalidType": {
- "number": "Invalid type, expected a number."
- },
- "pskLength": {
- "0bit": "Key is required to be empty.",
- "8bit": "Key is required to be an 8 bit pre-shared key (PSK).",
- "128bit": "Key is required to be a 128 bit pre-shared key (PSK).",
- "256bit": "Key is required to be a 256 bit pre-shared key (PSK)."
- },
- "required": {
- "generic": "This field is required.",
- "managed": "At least one admin key is requred if the node is managed.",
- "key": "Key is required."
- }
- },
- "yes": "Yes",
- "no": "No"
+ "button": {
+ "apply": "Aplicar",
+ "backupKey": "Backup Key",
+ "cancel": "Cancelar",
+ "clearMessages": "Clear Messages",
+ "close": "Fechar",
+ "confirm": "Confirm",
+ "delete": "Excluir",
+ "dismiss": "Dismiss",
+ "download": "Download",
+ "export": "Export",
+ "generate": "Generate",
+ "regenerate": "Regenerate",
+ "import": "Importar",
+ "message": "Mensagem",
+ "now": "Now",
+ "ok": "Okay",
+ "print": "Print",
+ "remove": "Remover",
+ "requestNewKeys": "Request New Keys",
+ "requestPosition": "Request Position",
+ "reset": "Redefinir",
+ "save": "Salvar",
+ "scanQr": "Ler código QR",
+ "traceRoute": "Trace Route",
+ "submit": "Submit"
+ },
+ "app": {
+ "title": "Meshtastic",
+ "fullTitle": "Meshtastic Web Client"
+ },
+ "loading": "Loading...",
+ "unit": {
+ "cps": "CPS",
+ "dbm": "dBm",
+ "hertz": "Hz",
+ "hop": {
+ "one": "Hop",
+ "plural": "Hops"
+ },
+ "hopsAway": {
+ "one": "{{count}} hop away",
+ "plural": "{{count}} hops away",
+ "unknown": "Unknown hops away"
+ },
+ "megahertz": "MHz",
+ "raw": "raw",
+ "meter": {
+ "one": "Meter",
+ "plural": "Meters",
+ "suffix": "m"
+ },
+ "kilometer": {
+ "one": "Kilometer",
+ "plural": "Kilometers",
+ "suffix": "km"
+ },
+ "minute": {
+ "one": "Minute",
+ "plural": "Minutes"
+ },
+ "hour": {
+ "one": "Hour",
+ "plural": "Hours"
+ },
+ "millisecond": {
+ "one": "Millisecond",
+ "plural": "Milliseconds",
+ "suffix": "ms"
+ },
+ "second": {
+ "one": "Second",
+ "plural": "Seconds"
+ },
+ "day": {
+ "one": "Day",
+ "plural": "Days",
+ "today": "Today",
+ "yesterday": "Yesterday"
+ },
+ "month": {
+ "one": "Month",
+ "plural": "Months"
+ },
+ "year": {
+ "one": "Year",
+ "plural": "Years"
+ },
+ "snr": "SNR",
+ "volt": {
+ "one": "Volt",
+ "plural": "Volts",
+ "suffix": "V"
+ },
+ "record": {
+ "one": "Records",
+ "plural": "Records"
+ },
+ "degree": {
+ "one": "Degree",
+ "plural": "Degrees",
+ "suffix": "°"
+ }
+ },
+ "security": {
+ "0bit": "Empty",
+ "8bit": "8 bit",
+ "128bit": "128 bit",
+ "256bit": "256 bit"
+ },
+ "unknown": {
+ "longName": "Unknown",
+ "shortName": "UNK",
+ "notAvailable": "N/A",
+ "num": "??"
+ },
+ "nodeUnknownPrefix": "!",
+ "unset": "UNSET",
+ "fallbackName": "Meshtastic {{last4}}",
+ "node": "Node",
+ "formValidation": {
+ "unsavedChanges": "Unsaved changes",
+ "tooBig": {
+ "string": "Too long, expected less than or equal to {{maximum}} characters.",
+ "number": "Too big, expected a number smaller than or equal to {{maximum}}.",
+ "bytes": "Too big, expected less than or equal to {{params.maximum}} bytes."
+ },
+ "tooSmall": {
+ "string": "Too short, expected more than or equal to {{minimum}} characters.",
+ "number": "Too small, expected a number larger than or equal to {{minimum}}."
+ },
+ "invalidFormat": {
+ "ipv4": "Invalid format, expected an IPv4 address.",
+ "key": "Invalid format, expected a Base64 encoded pre-shared key (PSK)."
+ },
+ "invalidType": {
+ "number": "Invalid type, expected a number."
+ },
+ "pskLength": {
+ "0bit": "Key is required to be empty.",
+ "8bit": "Key is required to be an 8 bit pre-shared key (PSK).",
+ "128bit": "Key is required to be a 128 bit pre-shared key (PSK).",
+ "256bit": "Key is required to be a 256 bit pre-shared key (PSK)."
+ },
+ "required": {
+ "generic": "This field is required.",
+ "managed": "At least one admin key is requred if the node is managed.",
+ "key": "Key is required."
+ },
+ "invalidOverrideFreq": {
+ "number": "Invalid format, expected a value in the range 410-930 MHz or 0 (use default)."
+ }
+ },
+ "yes": "Yes",
+ "no": "No"
}
diff --git a/packages/web/public/i18n/locales/pt-PT/config.json b/packages/web/public/i18n/locales/pt-PT/config.json
new file mode 100644
index 00000000..e05968d4
--- /dev/null
+++ b/packages/web/public/i18n/locales/pt-PT/config.json
@@ -0,0 +1,458 @@
+{
+ "page": {
+ "title": "Definições",
+ "tabUser": "Utilizador",
+ "tabChannels": "Canal",
+ "tabBluetooth": "Bluetooth",
+ "tabDevice": "Dispositivo",
+ "tabDisplay": "Ecrã",
+ "tabLora": "LoRa",
+ "tabNetwork": "Rede",
+ "tabPosition": "Posição",
+ "tabPower": "Energia",
+ "tabSecurity": "Segurança"
+ },
+ "sidebar": {
+ "label": "Configuração"
+ },
+ "device": {
+ "title": "Definições do dispositivo",
+ "description": "Configurações para o dispositivo",
+ "buttonPin": {
+ "description": "Button pin override",
+ "label": "Button Pin"
+ },
+ "buzzerPin": {
+ "description": "Buzzer pin override",
+ "label": "Buzzer Pin"
+ },
+ "disableTripleClick": {
+ "description": "Disable triple click",
+ "label": "Disable Triple Click"
+ },
+ "doubleTapAsButtonPress": {
+ "description": "Treat double tap as button press",
+ "label": "Double Tap as Button Press"
+ },
+ "ledHeartbeatDisabled": {
+ "description": "Disable default blinking LED",
+ "label": "LED Heartbeat Disabled"
+ },
+ "nodeInfoBroadcastInterval": {
+ "description": "How often to broadcast node info",
+ "label": "Node Info Broadcast Interval"
+ },
+ "posixTimezone": {
+ "description": "The POSIX timezone string for the device",
+ "label": "Fuso horário POSIX"
+ },
+ "rebroadcastMode": {
+ "description": "How to handle rebroadcasting",
+ "label": "Rebroadcast Mode"
+ },
+ "role": {
+ "description": "What role the device performs on the mesh",
+ "label": "Papel"
+ }
+ },
+ "bluetooth": {
+ "title": "Bluetooth Settings",
+ "description": "Settings for the Bluetooth module",
+ "note": "Note: Some devices (ESP32) cannot use both Bluetooth and WiFi at the same time.",
+ "enabled": {
+ "description": "Enable or disable Bluetooth",
+ "label": "Enabled"
+ },
+ "pairingMode": {
+ "description": "Pin selection behaviour.",
+ "label": "Modo de emparelhamento"
+ },
+ "pin": {
+ "description": "Pin to use when pairing",
+ "label": "Pin"
+ }
+ },
+ "display": {
+ "description": "Settings for the device display",
+ "title": "Display Settings",
+ "headingBold": {
+ "description": "Bolden the heading text",
+ "label": "Bold Heading"
+ },
+ "carouselDelay": {
+ "description": "How fast to cycle through windows",
+ "label": "Carousel Delay"
+ },
+ "compassNorthTop": {
+ "description": "Fix north to the top of compass",
+ "label": "Compass North Top"
+ },
+ "displayMode": {
+ "description": "Screen layout variant",
+ "label": "Display Mode"
+ },
+ "displayUnits": {
+ "description": "Display metric or imperial units",
+ "label": "Display Units"
+ },
+ "flipScreen": {
+ "description": "Flip display 180 degrees",
+ "label": "Flip Screen"
+ },
+ "gpsDisplayUnits": {
+ "description": "Coordinate display format",
+ "label": "GPS Display Units"
+ },
+ "oledType": {
+ "description": "Type of OLED screen attached to the device",
+ "label": "OLED Type"
+ },
+ "screenTimeout": {
+ "description": "Turn off the display after this long",
+ "label": "Screen Timeout"
+ },
+ "twelveHourClock": {
+ "description": "Use 12-hour clock format",
+ "label": "Relógio 12-Horas"
+ },
+ "wakeOnTapOrMotion": {
+ "description": "Wake the device on tap or motion",
+ "label": "Wake on Tap or Motion"
+ }
+ },
+ "lora": {
+ "title": "Mesh Settings",
+ "description": "Settings for the LoRa mesh",
+ "bandwidth": {
+ "description": "Channel bandwidth in MHz",
+ "label": "Largura de banda"
+ },
+ "boostedRxGain": {
+ "description": "Boosted RX gain",
+ "label": "Boosted RX Gain"
+ },
+ "codingRate": {
+ "description": "The denominator of the coding rate",
+ "label": "Coding Rate"
+ },
+ "frequencyOffset": {
+ "description": "Frequency offset to correct for crystal calibration errors",
+ "label": "Frequency Offset"
+ },
+ "frequencySlot": {
+ "description": "LoRa frequency channel number",
+ "label": "Frequency Slot"
+ },
+ "hopLimit": {
+ "description": "Maximum number of hops",
+ "label": "Hop Limit"
+ },
+ "ignoreMqtt": {
+ "description": "Don't forward MQTT messages over the mesh",
+ "label": "Ignorar MQTT"
+ },
+ "modemPreset": {
+ "description": "Modem preset to use",
+ "label": "Predefinição de modem"
+ },
+ "okToMqtt": {
+ "description": "When set to true, this configuration indicates that the user approves the packet to be uploaded to MQTT. If set to false, remote nodes are requested not to forward packets to MQTT",
+ "label": "Disponibilizar no MQTT"
+ },
+ "overrideDutyCycle": {
+ "description": "Ignorar ciclo de trabalho",
+ "label": "Ignorar ciclo de trabalho"
+ },
+ "overrideFrequency": {
+ "description": "Override frequency",
+ "label": "Override Frequency"
+ },
+ "region": {
+ "description": "Sets the region for your node",
+ "label": "Região"
+ },
+ "spreadingFactor": {
+ "description": "Indicates the number of chirps per symbol",
+ "label": "Spreading Factor"
+ },
+ "transmitEnabled": {
+ "description": "Enable/Disable transmit (TX) from the LoRa radio",
+ "label": "Transmit Enabled"
+ },
+ "transmitPower": {
+ "description": "Max transmit power",
+ "label": "Transmit Power"
+ },
+ "usePreset": {
+ "description": "Use one of the predefined modem presets",
+ "label": "Use Preset"
+ },
+ "meshSettings": {
+ "description": "Settings for the LoRa mesh",
+ "label": "Mesh Settings"
+ },
+ "waveformSettings": {
+ "description": "Settings for the LoRa waveform",
+ "label": "Waveform Settings"
+ },
+ "radioSettings": {
+ "label": "Radio Settings",
+ "description": "Settings for the LoRa radio"
+ }
+ },
+ "network": {
+ "title": "WiFi Config",
+ "description": "WiFi radio configuration",
+ "note": "Note: Some devices (ESP32) cannot use both Bluetooth and WiFi at the same time.",
+ "addressMode": {
+ "description": "Address assignment selection",
+ "label": "Address Mode"
+ },
+ "dns": {
+ "description": "DNS Server",
+ "label": "DNS"
+ },
+ "ethernetEnabled": {
+ "description": "Enable or disable the Ethernet port",
+ "label": "Enabled"
+ },
+ "gateway": {
+ "description": "Default Gateway",
+ "label": "Gateway"
+ },
+ "ip": {
+ "description": "IP Address",
+ "label": "IP"
+ },
+ "psk": {
+ "description": "Network password",
+ "label": "PSK"
+ },
+ "ssid": {
+ "description": "Network name",
+ "label": "SSID"
+ },
+ "subnet": {
+ "description": "Subnet Mask",
+ "label": "Subnet"
+ },
+ "wifiEnabled": {
+ "description": "Enable or disable the WiFi radio",
+ "label": "Enabled"
+ },
+ "meshViaUdp": {
+ "label": "Mesh via UDP"
+ },
+ "ntpServer": {
+ "label": "NTP Server"
+ },
+ "rsyslogServer": {
+ "label": "Rsyslog Server"
+ },
+ "ethernetConfigSettings": {
+ "description": "Ethernet port configuration",
+ "label": "Ethernet Config"
+ },
+ "ipConfigSettings": {
+ "description": "IP configuration",
+ "label": "IP Config"
+ },
+ "ntpConfigSettings": {
+ "description": "NTP configuration",
+ "label": "NTP Config"
+ },
+ "rsyslogConfigSettings": {
+ "description": "Rsyslog configuration",
+ "label": "Rsyslog Config"
+ },
+ "udpConfigSettings": {
+ "description": "UDP over Mesh configuration",
+ "label": "Configuração UDP"
+ }
+ },
+ "position": {
+ "title": "Position Settings",
+ "description": "Settings for the position module",
+ "broadcastInterval": {
+ "description": "How often your position is sent out over the mesh",
+ "label": "Broadcast Interval"
+ },
+ "enablePin": {
+ "description": "GPS module enable pin override",
+ "label": "Enable Pin"
+ },
+ "fixedPosition": {
+ "description": "Don't report GPS position, but a manually-specified one",
+ "label": "Fixed Position"
+ },
+ "gpsMode": {
+ "description": "Configure whether device GPS is Enabled, Disabled, or Not Present",
+ "label": "GPS Mode"
+ },
+ "gpsUpdateInterval": {
+ "description": "How often a GPS fix should be acquired",
+ "label": "GPS Update Interval"
+ },
+ "positionFlags": {
+ "description": "Optional fields to include when assembling position messages. The more fields are selected, the larger the message will be leading to longer airtime usage and a higher risk of packet loss.",
+ "label": "Position Flags"
+ },
+ "receivePin": {
+ "description": "GPS module RX pin override",
+ "label": "Receive Pin"
+ },
+ "smartPositionEnabled": {
+ "description": "Only send position when there has been a meaningful change in location",
+ "label": "Enable Smart Position"
+ },
+ "smartPositionMinDistance": {
+ "description": "Minimum distance (in meters) that must be traveled before a position update is sent",
+ "label": "Smart Position Minimum Distance"
+ },
+ "smartPositionMinInterval": {
+ "description": "Minimum interval (in seconds) that must pass before a position update is sent",
+ "label": "Smart Position Minimum Interval"
+ },
+ "transmitPin": {
+ "description": "GPS module TX pin override",
+ "label": "Transmit Pin"
+ },
+ "intervalsSettings": {
+ "description": "How often to send position updates",
+ "label": "Intervals"
+ },
+ "flags": {
+ "placeholder": "Select position flags...",
+ "altitude": "Altitude",
+ "altitudeGeoidalSeparation": "Altitude Geoidal Separation",
+ "altitudeMsl": "Altitude is Mean Sea Level",
+ "dop": "Dilution of precision (DOP) PDOP used by default",
+ "hdopVdop": "If DOP is set, use HDOP / VDOP values instead of PDOP",
+ "numSatellites": "Number of satellites",
+ "sequenceNumber": "Sequence number",
+ "timestamp": "Data e hora",
+ "unset": "Não Definido",
+ "vehicleHeading": "Vehicle heading",
+ "vehicleSpeed": "Vehicle speed"
+ }
+ },
+ "power": {
+ "adcMultiplierOverride": {
+ "description": "Used for tweaking battery voltage reading",
+ "label": "ADC Multiplier Override ratio"
+ },
+ "ina219Address": {
+ "description": "Address of the INA219 battery monitor",
+ "label": "INA219 Address"
+ },
+ "lightSleepDuration": {
+ "description": "How long the device will be in light sleep for",
+ "label": "Light Sleep Duration"
+ },
+ "minimumWakeTime": {
+ "description": "Minimum amount of time the device will stay awake for after receiving a packet",
+ "label": "Minimum Wake Time"
+ },
+ "noConnectionBluetoothDisabled": {
+ "description": "If the device does not receive a Bluetooth connection, the BLE radio will be disabled after this long",
+ "label": "No Connection Bluetooth Disabled"
+ },
+ "powerSavingEnabled": {
+ "description": "Select if powered from a low-current source (i.e. solar), to minimize power consumption as much as possible.",
+ "label": "Ativar modo de poupança de energia"
+ },
+ "shutdownOnBatteryDelay": {
+ "description": "Automatically shutdown node after this long when on battery, 0 for indefinite",
+ "label": "Shutdown on battery delay"
+ },
+ "superDeepSleepDuration": {
+ "description": "How long the device will be in super deep sleep for",
+ "label": "Super Deep Sleep Duration"
+ },
+ "powerConfigSettings": {
+ "description": "Settings for the power module",
+ "label": "Configuração de Energia"
+ },
+ "sleepSettings": {
+ "description": "Sleep settings for the power module",
+ "label": "Sleep Settings"
+ }
+ },
+ "security": {
+ "description": "Settings for the Security configuration",
+ "title": "Security Settings",
+ "button_backupKey": "Backup Key",
+ "adminChannelEnabled": {
+ "description": "Allow incoming device control over the insecure legacy admin channel",
+ "label": "Allow Legacy Admin"
+ },
+ "enableDebugLogApi": {
+ "description": "Output live debug logging over serial, view and export position-redacted device logs over Bluetooth",
+ "label": "Enable Debug Log API"
+ },
+ "managed": {
+ "description": "If enabled, device configuration options are only able to be changed remotely by a Remote Admin node via admin messages. Do not enable this option unless at least one suitable Remote Admin node has been setup, and the public key is stored in one of the fields above.",
+ "label": "Managed"
+ },
+ "privateKey": {
+ "description": "Used to create a shared key with a remote device",
+ "label": "Chave privada"
+ },
+ "publicKey": {
+ "description": "Sent out to other nodes on the mesh to allow them to compute a shared secret key",
+ "label": "Chave pública"
+ },
+ "primaryAdminKey": {
+ "description": "The primary public key authorized to send admin messages to this node",
+ "label": "Primary Admin Key"
+ },
+ "secondaryAdminKey": {
+ "description": "The secondary public key authorized to send admin messages to this node",
+ "label": "Secondary Admin Key"
+ },
+ "serialOutputEnabled": {
+ "description": "Serial Console over the Stream API",
+ "label": "Serial Output Enabled"
+ },
+ "tertiaryAdminKey": {
+ "description": "The tertiary public key authorized to send admin messages to this node",
+ "label": "Tertiary Admin Key"
+ },
+ "adminSettings": {
+ "description": "Settings for Admin",
+ "label": "Admin Settings"
+ },
+ "loggingSettings": {
+ "description": "Settings for Logging",
+ "label": "Logging Settings"
+ }
+ },
+ "user": {
+ "title": "User Settings",
+ "description": "Configure your device name and identity settings",
+ "longName": {
+ "label": "Long Name",
+ "description": "Your full display name (1-40 characters)",
+ "validation": {
+ "min": "Long name must be at least 1 character",
+ "max": "Long name must be at most 40 characters"
+ }
+ },
+ "shortName": {
+ "label": "Short Name",
+ "description": "Your abbreviated name (2-4 characters)",
+ "validation": {
+ "min": "Short name must be at least 2 characters",
+ "max": "Short name must be at most 4 characters"
+ }
+ },
+ "isUnmessageable": {
+ "label": "Impossível enviar mensagens",
+ "description": "Used to identify unmonitored or infrastructure nodes so that messaging is not available to nodes that will never respond."
+ },
+ "isLicensed": {
+ "label": "Rádio amador licenciado (HAM)",
+ "description": "Enable if you are a licensed amateur radio operator, enabling this option disables encryption and is not compatible with the default Meshtastic network."
+ }
+ }
+}
diff --git a/packages/web/public/i18n/locales/pt-PT/dashboard.json b/packages/web/public/i18n/locales/pt-PT/dashboard.json
index 0c694905..b68c6190 100644
--- a/packages/web/public/i18n/locales/pt-PT/dashboard.json
+++ b/packages/web/public/i18n/locales/pt-PT/dashboard.json
@@ -1,12 +1,12 @@
{
- "dashboard": {
- "title": "Connected Devices",
- "description": "Manage your connected Meshtastic devices.",
- "connectionType_ble": "BLE",
- "connectionType_serial": "Série",
- "connectionType_network": "Rede",
- "noDevicesTitle": "No devices connected",
- "noDevicesDescription": "Connect a new device to get started.",
- "button_newConnection": "New Connection"
- }
+ "dashboard": {
+ "title": "Connected Devices",
+ "description": "Manage your connected Meshtastic devices.",
+ "connectionType_ble": "BLE",
+ "connectionType_serial": "Série",
+ "connectionType_network": "Rede",
+ "noDevicesTitle": "No devices connected",
+ "noDevicesDescription": "Connect a new device to get started.",
+ "button_newConnection": "New Connection"
+ }
}
diff --git a/packages/web/public/i18n/locales/pt-PT/dialog.json b/packages/web/public/i18n/locales/pt-PT/dialog.json
index 2f057128..c09d4f54 100644
--- a/packages/web/public/i18n/locales/pt-PT/dialog.json
+++ b/packages/web/public/i18n/locales/pt-PT/dialog.json
@@ -1,193 +1,221 @@
{
- "deleteMessages": {
- "description": "This action will clear all message history. This cannot be undone. Are you sure you want to continue?",
- "title": "Clear All Messages"
- },
- "deviceName": {
- "description": "The Device will restart once the config is saved.",
- "longName": "Long Name",
- "shortName": "Short Name",
- "title": "Change Device Name",
- "validation": {
- "longNameMax": "Long name must not be more than 40 characters",
- "shortNameMax": "Short name must not be more than 4 characters",
- "longNameMin": "Long name must have at least 1 character",
- "shortNameMin": "Short name must have at least 1 character"
- }
- },
- "import": {
- "description": "The current LoRa configuration will be overridden.",
- "error": {
- "invalidUrl": "Invalid Meshtastic URL"
- },
- "channelPrefix": "Channel: ",
- "channelSetUrl": "Channel Set/QR Code URL",
- "channels": "Channels:",
- "usePreset": "Use Preset?",
- "title": "Import Channel Set"
- },
- "locationResponse": {
- "title": "Location: {{identifier}}",
- "altitude": "Altitude: ",
- "coordinates": "Coordinates: ",
- "noCoordinates": "No Coordinates"
- },
- "pkiRegenerateDialog": {
- "title": "Regenerate Pre-Shared Key?",
- "description": "Are you sure you want to regenerate the pre-shared key?",
- "regenerate": "Regenerate"
- },
- "newDeviceDialog": {
- "title": "Connect New Device",
- "https": "https",
- "http": "http",
- "tabHttp": "HTTP",
- "tabBluetooth": "Bluetooth",
- "tabSerial": "Série",
- "useHttps": "Use HTTPS",
- "connecting": "Connecting...",
- "connect": "Ligar",
- "connectionFailedAlert": {
- "title": "Connection Failed",
- "descriptionPrefix": "Could not connect to the device. ",
- "httpsHint": "If using HTTPS, you may need to accept a self-signed certificate first. ",
- "openLinkPrefix": "Please open ",
- "openLinkSuffix": " in a new tab",
- "acceptTlsWarningSuffix": ", accept any TLS warnings if prompted, then try again",
- "learnMoreLink": "Learn more"
- },
- "httpConnection": {
- "label": "IP Address/Hostname",
- "placeholder": "000.000.000.000 / meshtastic.local"
- },
- "serialConnection": {
- "noDevicesPaired": "No devices paired yet.",
- "newDeviceButton": "New device",
- "deviceIdentifier": "# {{index}} - {{vendorId}} - {{productId}}"
- },
- "bluetoothConnection": {
- "noDevicesPaired": "No devices paired yet.",
- "newDeviceButton": "New device",
- "connectionFailed": "Connection failed",
- "deviceDisconnected": "Device disconnected",
- "unknownDevice": "Unknown Device",
- "errorLoadingDevices": "Error loading devices",
- "unknownErrorLoadingDevices": "Unknown error loading devices"
- },
- "validation": {
- "requiresWebBluetooth": "This connection type requires <0>Web Bluetooth0>. Please use a supported browser, like Chrome or Edge.",
- "requiresWebSerial": "This connection type requires <0>Web Serial0>. Please use a supported browser, like Chrome or Edge.",
- "requiresSecureContext": "This application requires a <0>secure context0>. Please connect using HTTPS or localhost.",
- "additionallyRequiresSecureContext": "Additionally, it requires a <0>secure context0>. Please connect using HTTPS or localhost."
- }
- },
- "nodeDetails": {
- "message": "Mensagem",
- "requestPosition": "Request Position",
- "traceRoute": "Trace Route",
- "airTxUtilization": "Air TX utilization",
- "allRawMetrics": "All Raw Metrics:",
- "batteryLevel": "Battery level",
- "channelUtilization": "Channel utilization",
- "details": "Details:",
- "deviceMetrics": "Device Metrics:",
- "hardware": "Hardware: ",
- "lastHeard": "Last Heard: ",
- "nodeHexPrefix": "Node Hex: ",
- "nodeNumber": "Node Number: ",
- "position": "Position:",
- "role": "Role: ",
- "uptime": "Uptime: ",
- "voltage": "Voltagem",
- "title": "Node Details for {{identifier}}",
- "ignoreNode": "Ignore node",
- "removeNode": "Remove node",
- "unignoreNode": "Unignore node",
- "security": "Security:",
- "publicKey": "Public Key: ",
- "messageable": "Messageable: ",
- "KeyManuallyVerifiedTrue": "Public Key has been manually verified",
- "KeyManuallyVerifiedFalse": "Public Key is not manually verified"
- },
- "pkiBackup": {
- "loseKeysWarning": "If you lose your keys, you will need to reset your device.",
- "secureBackup": "Its important to backup your public and private keys and store your backup securely!",
- "footer": "=== END OF KEYS ===",
- "header": "=== MESHTASTIC KEYS FOR {{longName}} ({{shortName}}) ===",
- "privateKey": "Private Key:",
- "publicKey": "Public Key:",
- "fileName": "meshtastic_keys_{{longName}}_{{shortName}}.txt",
- "title": "Backup Keys"
- },
- "pkiBackupReminder": {
- "description": "We recommend backing up your key data regularly. Would you like to back up now?",
- "title": "Backup Reminder",
- "remindLaterPrefix": "Remind me in",
- "remindNever": "Never remind me",
- "backupNow": "Back up now"
- },
- "pkiRegenerate": {
- "description": "Are you sure you want to regenerate key pair?",
- "title": "Regenerate Key Pair"
- },
- "qr": {
- "addChannels": "Add Channels",
- "replaceChannels": "Replace Channels",
- "description": "The current LoRa configuration will also be shared.",
- "sharableUrl": "Sharable URL",
- "title": "Generate QR Code"
- },
- "reboot": {
- "title": "Reboot device",
- "description": "Reboot now or schedule a reboot of the connected node. Optionally, you can choose to reboot into OTA (Over-the-Air) mode.",
- "ota": "Reboot into OTA mode",
- "enterDelay": "Enter delay",
- "scheduled": "Reboot has been scheduled",
- "schedule": "Schedule reboot",
- "now": "Reboot now",
- "cancel": "Cancel scheduled reboot"
- },
- "refreshKeys": {
- "description": {
- "acceptNewKeys": "This will remove the node from device and request new keys.",
- "keyMismatchReasonSuffix": ". This is due to the remote node's current public key does not match the previously stored key for this node.",
- "unableToSendDmPrefix": "Your node is unable to send a direct message to node: "
- },
- "acceptNewKeys": "Accept New Keys",
- "title": "Keys Mismatch - {{identifier}}"
- },
- "removeNode": {
- "description": "Are you sure you want to remove this Node?",
- "title": "Remove Node?"
- },
- "shutdown": {
- "title": "Schedule Shutdown",
- "description": "Turn off the connected node after x minutes."
- },
- "traceRoute": {
- "routeToDestination": "Route to destination:",
- "routeBack": "Route back:"
- },
- "tracerouteResponse": {
- "title": "Traceroute: {{identifier}}"
- },
- "unsafeRoles": {
- "confirmUnderstanding": "Yes, I know what I'm doing",
- "conjunction": " and the blog post about ",
- "postamble": " and understand the implications of changing the role.",
- "preamble": "I have read the ",
- "choosingRightDeviceRole": "Choosing The Right Device Role",
- "deviceRoleDocumentation": "Device Role Documentation",
- "title": "Confirma?"
- },
- "managedMode": {
- "confirmUnderstanding": "Yes, I know what I'm doing",
- "title": "Confirma?",
- "description": "Enabling Managed Mode blocks client applications (including the web client) from writing configurations to a radio. Once enabled, radio configurations can only be changed through Remote Admin messages. This setting is not required for remote node administration."
- },
- "clientNotification": {
- "title": "Client Notification",
- "TraceRoute can only be sent once every 30 seconds": "TraceRoute can only be sent once every 30 seconds",
- "Compromised keys were detected and regenerated.": "Compromised keys were detected and regenerated."
- }
+ "deleteMessages": {
+ "description": "This action will clear all message history. This cannot be undone. Are you sure you want to continue?",
+ "title": "Clear All Messages"
+ },
+ "deviceName": {
+ "description": "The Device will restart once the config is saved.",
+ "longName": "Long Name",
+ "shortName": "Short Name",
+ "title": "Change Device Name",
+ "validation": {
+ "longNameMax": "Long name must not be more than 40 characters",
+ "shortNameMax": "Short name must not be more than 4 characters",
+ "longNameMin": "Long name must have at least 1 character",
+ "shortNameMin": "Short name must have at least 1 character"
+ }
+ },
+ "import": {
+ "description": "The current LoRa configuration will be overridden.",
+ "error": {
+ "invalidUrl": "Invalid Meshtastic URL"
+ },
+ "channelPrefix": "Channel: ",
+ "primary": "Primary ",
+ "doNotImport": "No not import",
+ "channelName": "Nome",
+ "channelSlot": "Slot",
+ "channelSetUrl": "Channel Set/QR Code URL",
+ "useLoraConfig": "Import LoRa Config",
+ "presetDescription": "The current LoRa Config will be replaced.",
+ "title": "Import Channel Set"
+ },
+ "locationResponse": {
+ "title": "Location: {{identifier}}",
+ "altitude": "Altitude: ",
+ "coordinates": "Coordinates: ",
+ "noCoordinates": "No Coordinates"
+ },
+ "pkiRegenerateDialog": {
+ "title": "Regenerate Pre-Shared Key?",
+ "description": "Are you sure you want to regenerate the pre-shared key?",
+ "regenerate": "Regenerate"
+ },
+ "newDeviceDialog": {
+ "title": "Connect New Device",
+ "https": "https",
+ "http": "http",
+ "tabHttp": "HTTP",
+ "tabBluetooth": "Bluetooth",
+ "tabSerial": "Série",
+ "useHttps": "Use HTTPS",
+ "connecting": "Connecting...",
+ "connect": "Ligar",
+ "connectionFailedAlert": {
+ "title": "Connection Failed",
+ "descriptionPrefix": "Could not connect to the device. ",
+ "httpsHint": "If using HTTPS, you may need to accept a self-signed certificate first. ",
+ "openLinkPrefix": "Please open ",
+ "openLinkSuffix": " in a new tab",
+ "acceptTlsWarningSuffix": ", accept any TLS warnings if prompted, then try again",
+ "learnMoreLink": "Learn more"
+ },
+ "httpConnection": {
+ "label": "IP Address/Hostname",
+ "placeholder": "000.000.000.000 / meshtastic.local"
+ },
+ "serialConnection": {
+ "noDevicesPaired": "No devices paired yet.",
+ "newDeviceButton": "New device",
+ "deviceIdentifier": "# {{index}} - {{vendorId}} - {{productId}}"
+ },
+ "bluetoothConnection": {
+ "noDevicesPaired": "No devices paired yet.",
+ "newDeviceButton": "New device",
+ "connectionFailed": "Connection failed",
+ "deviceDisconnected": "Device disconnected",
+ "unknownDevice": "Unknown Device",
+ "errorLoadingDevices": "Error loading devices",
+ "unknownErrorLoadingDevices": "Unknown error loading devices"
+ },
+ "validation": {
+ "requiresWebBluetooth": "This connection type requires <0>Web Bluetooth0>. Please use a supported browser, like Chrome or Edge.",
+ "requiresWebSerial": "This connection type requires <0>Web Serial0>. Please use a supported browser, like Chrome or Edge.",
+ "requiresSecureContext": "This application requires a <0>secure context0>. Please connect using HTTPS or localhost.",
+ "additionallyRequiresSecureContext": "Additionally, it requires a <0>secure context0>. Please connect using HTTPS or localhost."
+ }
+ },
+ "nodeDetails": {
+ "message": "Mensagem",
+ "requestPosition": "Request Position",
+ "traceRoute": "Trace Route",
+ "airTxUtilization": "Air TX utilization",
+ "allRawMetrics": "All Raw Metrics:",
+ "batteryLevel": "Battery level",
+ "channelUtilization": "Channel utilization",
+ "details": "Details:",
+ "deviceMetrics": "Device Metrics:",
+ "hardware": "Hardware: ",
+ "lastHeard": "Last Heard: ",
+ "nodeHexPrefix": "Node Hex: ",
+ "nodeNumber": "Node Number: ",
+ "position": "Position:",
+ "role": "Role: ",
+ "uptime": "Uptime: ",
+ "voltage": "Voltagem",
+ "title": "Node Details for {{identifier}}",
+ "ignoreNode": "Ignore node",
+ "removeNode": "Remove node",
+ "unignoreNode": "Unignore node",
+ "security": "Security:",
+ "publicKey": "Public Key: ",
+ "messageable": "Messageable: ",
+ "KeyManuallyVerifiedTrue": "Public Key has been manually verified",
+ "KeyManuallyVerifiedFalse": "Public Key is not manually verified"
+ },
+ "pkiBackup": {
+ "loseKeysWarning": "If you lose your keys, you will need to reset your device.",
+ "secureBackup": "Its important to backup your public and private keys and store your backup securely!",
+ "footer": "=== END OF KEYS ===",
+ "header": "=== MESHTASTIC KEYS FOR {{longName}} ({{shortName}}) ===",
+ "privateKey": "Private Key:",
+ "publicKey": "Public Key:",
+ "fileName": "meshtastic_keys_{{longName}}_{{shortName}}.txt",
+ "title": "Backup Keys"
+ },
+ "pkiBackupReminder": {
+ "description": "We recommend backing up your key data regularly. Would you like to back up now?",
+ "title": "Backup Reminder",
+ "remindLaterPrefix": "Remind me in",
+ "remindNever": "Never remind me",
+ "backupNow": "Back up now"
+ },
+ "pkiRegenerate": {
+ "description": "Are you sure you want to regenerate key pair?",
+ "title": "Regenerate Key Pair"
+ },
+ "qr": {
+ "addChannels": "Add Channels",
+ "replaceChannels": "Replace Channels",
+ "description": "The current LoRa configuration will also be shared.",
+ "sharableUrl": "Sharable URL",
+ "title": "Generate QR Code"
+ },
+ "reboot": {
+ "title": "Reboot device",
+ "description": "Reboot now or schedule a reboot of the connected node. Optionally, you can choose to reboot into OTA (Over-the-Air) mode.",
+ "ota": "Reboot into OTA mode",
+ "enterDelay": "Enter delay",
+ "scheduled": "Reboot has been scheduled",
+ "schedule": "Schedule reboot",
+ "now": "Reboot now",
+ "cancel": "Cancel scheduled reboot"
+ },
+ "refreshKeys": {
+ "description": {
+ "acceptNewKeys": "This will remove the node from device and request new keys.",
+ "keyMismatchReasonSuffix": ". This is due to the remote node's current public key does not match the previously stored key for this node.",
+ "unableToSendDmPrefix": "Your node is unable to send a direct message to node: "
+ },
+ "acceptNewKeys": "Accept New Keys",
+ "title": "Keys Mismatch - {{identifier}}"
+ },
+ "removeNode": {
+ "description": "Are you sure you want to remove this Node?",
+ "title": "Remove Node?"
+ },
+ "shutdown": {
+ "title": "Schedule Shutdown",
+ "description": "Turn off the connected node after x minutes."
+ },
+ "traceRoute": {
+ "routeToDestination": "Route to destination:",
+ "routeBack": "Route back:"
+ },
+ "tracerouteResponse": {
+ "title": "Traceroute: {{identifier}}"
+ },
+ "unsafeRoles": {
+ "confirmUnderstanding": "Yes, I know what I'm doing",
+ "conjunction": " and the blog post about ",
+ "postamble": " and understand the implications of changing the role.",
+ "preamble": "I have read the ",
+ "choosingRightDeviceRole": "Choosing The Right Device Role",
+ "deviceRoleDocumentation": "Device Role Documentation",
+ "title": "Confirma?"
+ },
+ "managedMode": {
+ "confirmUnderstanding": "Yes, I know what I'm doing",
+ "title": "Confirma?",
+ "description": "Enabling Managed Mode blocks client applications (including the web client) from writing configurations to a radio. Once enabled, radio configurations can only be changed through Remote Admin messages. This setting is not required for remote node administration."
+ },
+ "clientNotification": {
+ "title": "Client Notification",
+ "TraceRoute can only be sent once every 30 seconds": "TraceRoute can only be sent once every 30 seconds",
+ "Compromised keys were detected and regenerated.": "Compromised keys were detected and regenerated."
+ },
+ "resetNodeDb": {
+ "title": "Reset Node Database",
+ "description": "This will clear all nodes from the connected device's node database and clear all message history in the client. This cannot be undone. Are you sure you want to continue?",
+ "confirm": "Reset Node Database",
+ "failedTitle": "There was an error resetting the Node DB. Please try again."
+ },
+ "clearAllStores": {
+ "title": "Clear All Local Storage",
+ "description": "This will clear all locally stored data, including message history and node databases for all previously connected devices. This will require you to reconnect to your node once complete and cannot be undone. Are you sure you want to continue?",
+ "confirm": "Clear all local storage",
+ "failedTitle": "There was an error clearing local storage. Please try again."
+ },
+ "factoryResetDevice": {
+ "title": "Factory Reset Device",
+ "description": "This will factory reset the connected device, erasing all configurations and data on the device as well as all nodes and messages saved in the client. This cannot be undone. Are you sure you want to continue?",
+ "confirm": "Factory Reset Device",
+ "failedTitle": "There was an error performing the factory reset. Please try again."
+ },
+ "factoryResetConfig": {
+ "title": "Factory Reset Config",
+ "description": "This will factory reset the configuration on the connected device, erasing all configurations on the device. This cannot be undone. Are you sure you want to continue?",
+ "confirm": "Factory Reset Config",
+ "failedTitle": "There was an error performing the factory reset. Please try again."
+ }
}
diff --git a/packages/web/public/i18n/locales/pt-PT/map.json b/packages/web/public/i18n/locales/pt-PT/map.json
new file mode 100644
index 00000000..fc2b7c4f
--- /dev/null
+++ b/packages/web/public/i18n/locales/pt-PT/map.json
@@ -0,0 +1,38 @@
+{
+ "maplibre": {
+ "GeolocateControl.FindMyLocation": "Find my location",
+ "NavigationControl.ZoomIn": "Zoom in",
+ "NavigationControl.ZoomOut": "Zoom out",
+ "CooperativeGesturesHandler.WindowsHelpText": "Use Ctrl + scroll to zoom the map",
+ "CooperativeGesturesHandler.MacHelpText": "Use ⌘ + scroll to zoom the map",
+ "CooperativeGesturesHandler.MobileHelpText": "Use two fingers to move the map"
+ },
+ "layerTool": {
+ "nodeMarkers": "Show nodes",
+ "directNeighbors": "Show direct connections",
+ "remoteNeighbors": "Show remote connections",
+ "positionPrecision": "Show position precision",
+ "traceroutes": "Show traceroutes",
+ "waypoints": "Show waypoints"
+ },
+ "mapMenu": {
+ "locateAria": "Locate my node",
+ "layersAria": "Change map style"
+ },
+ "waypointDetail": {
+ "edit": "Editar",
+ "description": "Description:",
+ "createdBy": "Edited by:",
+ "createdDate": "Created:",
+ "updated": "Updated:",
+ "expires": "Expires:",
+ "distance": "Distance:",
+ "bearing": "Absolute bearing:",
+ "lockedTo": "Locked by:",
+ "latitude": "Latitude:",
+ "longitude": "Longitude:"
+ },
+ "myNode": {
+ "tooltip": "This device"
+ }
+}
diff --git a/packages/web/public/i18n/locales/pt-PT/messages.json b/packages/web/public/i18n/locales/pt-PT/messages.json
index a4647b95..cd7260a8 100644
--- a/packages/web/public/i18n/locales/pt-PT/messages.json
+++ b/packages/web/public/i18n/locales/pt-PT/messages.json
@@ -1,39 +1,39 @@
{
- "page": {
- "title": "Messages: {{chatName}}",
- "placeholder": "Enter Message"
- },
- "emptyState": {
- "title": "Select a Chat",
- "text": "No messages yet."
- },
- "selectChatPrompt": {
- "text": "Select a channel or node to start messaging."
- },
- "sendMessage": {
- "placeholder": "Enter your message here...",
- "sendButton": "Enviar"
- },
- "actionsMenu": {
- "addReactionLabel": "Add Reaction",
- "replyLabel": "Responder"
- },
- "deliveryStatus": {
- "delivered": {
- "label": "Message delivered",
- "displayText": "Message delivered"
- },
- "failed": {
- "label": "Message delivery failed",
- "displayText": "Delivery failed"
- },
- "unknown": {
- "label": "Message status unknown",
- "displayText": "Unknown state"
- },
- "waiting": {
- "label": "Sending message",
- "displayText": "Waiting for delivery"
- }
- }
+ "page": {
+ "title": "Messages: {{chatName}}",
+ "placeholder": "Enter Message"
+ },
+ "emptyState": {
+ "title": "Select a Chat",
+ "text": "No messages yet."
+ },
+ "selectChatPrompt": {
+ "text": "Select a channel or node to start messaging."
+ },
+ "sendMessage": {
+ "placeholder": "Enter your message here...",
+ "sendButton": "Enviar"
+ },
+ "actionsMenu": {
+ "addReactionLabel": "Add Reaction",
+ "replyLabel": "Responder"
+ },
+ "deliveryStatus": {
+ "delivered": {
+ "label": "Message delivered",
+ "displayText": "Message delivered"
+ },
+ "failed": {
+ "label": "Message delivery failed",
+ "displayText": "Delivery failed"
+ },
+ "unknown": {
+ "label": "Message status unknown",
+ "displayText": "Unknown state"
+ },
+ "waiting": {
+ "label": "Sending message",
+ "displayText": "Waiting for delivery"
+ }
+ }
}
diff --git a/packages/web/public/i18n/locales/pt-PT/moduleConfig.json b/packages/web/public/i18n/locales/pt-PT/moduleConfig.json
index b6db7506..7aa6c107 100644
--- a/packages/web/public/i18n/locales/pt-PT/moduleConfig.json
+++ b/packages/web/public/i18n/locales/pt-PT/moduleConfig.json
@@ -1,448 +1,448 @@
{
- "page": {
- "tabAmbientLighting": "Iluminação ambiente",
- "tabAudio": "Áudio",
- "tabCannedMessage": "Canned",
- "tabDetectionSensor": "Sensor de deteção",
- "tabExternalNotification": "Ext Notif",
- "tabMqtt": "MQTT",
- "tabNeighborInfo": "Informações da vizinhança",
- "tabPaxcounter": "Contador de pessoas",
- "tabRangeTest": "Teste de Alcance",
- "tabSerial": "Série",
- "tabStoreAndForward": "S&F",
- "tabTelemetry": "Telemetria"
- },
- "ambientLighting": {
- "title": "Ambient Lighting Settings",
- "description": "Settings for the Ambient Lighting module",
- "ledState": {
- "label": "LED State",
- "description": "Sets LED to on or off"
- },
- "current": {
- "label": "Atual",
- "description": "Sets the current for the LED output. Default is 10"
- },
- "red": {
- "label": "Vermelho",
- "description": "Sets the red LED level. Values are 0-255"
- },
- "green": {
- "label": "Verde",
- "description": "Sets the green LED level. Values are 0-255"
- },
- "blue": {
- "label": "Azul",
- "description": "Sets the blue LED level. Values are 0-255"
- }
- },
- "audio": {
- "title": "Audio Settings",
- "description": "Settings for the Audio module",
- "codec2Enabled": {
- "label": "Codec 2 Enabled",
- "description": "Enable Codec 2 audio encoding"
- },
- "pttPin": {
- "label": "PTT Pin",
- "description": "GPIO pin to use for PTT"
- },
- "bitrate": {
- "label": "Bitrate",
- "description": "Bitrate to use for audio encoding"
- },
- "i2sWs": {
- "label": "i2S WS",
- "description": "GPIO pin to use for i2S WS"
- },
- "i2sSd": {
- "label": "i2S SD",
- "description": "GPIO pin to use for i2S SD"
- },
- "i2sDin": {
- "label": "i2S DIN",
- "description": "GPIO pin to use for i2S DIN"
- },
- "i2sSck": {
- "label": "i2S SCK",
- "description": "GPIO pin to use for i2S SCK"
- }
- },
- "cannedMessage": {
- "title": "Canned Message Settings",
- "description": "Settings for the Canned Message module",
- "moduleEnabled": {
- "label": "Module Enabled",
- "description": "Enable Canned Message"
- },
- "rotary1Enabled": {
- "label": "Rotary Encoder #1 Enabled",
- "description": "Enable the rotary encoder"
- },
- "inputbrokerPinA": {
- "label": "Encoder Pin A",
- "description": "GPIO Pin Value (1-39) For encoder port A"
- },
- "inputbrokerPinB": {
- "label": "Encoder Pin B",
- "description": "GPIO Pin Value (1-39) For encoder port B"
- },
- "inputbrokerPinPress": {
- "label": "Encoder Pin Press",
- "description": "GPIO Pin Value (1-39) For encoder Press"
- },
- "inputbrokerEventCw": {
- "label": "Clockwise event",
- "description": "Select input event."
- },
- "inputbrokerEventCcw": {
- "label": "Counter Clockwise event",
- "description": "Select input event."
- },
- "inputbrokerEventPress": {
- "label": "Press event",
- "description": "Select input event"
- },
- "updown1Enabled": {
- "label": "Up Down enabled",
- "description": "Enable the up / down encoder"
- },
- "allowInputSource": {
- "label": "Allow Input Source",
- "description": "Select from: '_any', 'rotEnc1', 'upDownEnc1', 'cardkb'"
- },
- "sendBell": {
- "label": "Send Bell",
- "description": "Sends a bell character with each message"
- }
- },
- "detectionSensor": {
- "title": "Detection Sensor Settings",
- "description": "Settings for the Detection Sensor module",
- "enabled": {
- "label": "Enabled",
- "description": "Enable or disable Detection Sensor Module"
- },
- "minimumBroadcastSecs": {
- "label": "Minimum Broadcast Seconds",
- "description": "The interval in seconds of how often we can send a message to the mesh when a state change is detected"
- },
- "stateBroadcastSecs": {
- "label": "State Broadcast Seconds",
- "description": "The interval in seconds of how often we should send a message to the mesh with the current state regardless of changes"
- },
- "sendBell": {
- "label": "Send Bell",
- "description": "Send ASCII bell with alert message"
- },
- "name": {
- "label": "Friendly Name",
- "description": "Used to format the message sent to mesh, max 20 Characters"
- },
- "monitorPin": {
- "label": "Monitor Pin",
- "description": "The GPIO pin to monitor for state changes"
- },
- "detectionTriggerType": {
- "label": "Detection Triggered Type",
- "description": "The type of trigger event to be used"
- },
- "usePullup": {
- "label": "Use Pullup",
- "description": "Whether or not use INPUT_PULLUP mode for GPIO pin"
- }
- },
- "externalNotification": {
- "title": "External Notification Settings",
- "description": "Configure the external notification module",
- "enabled": {
- "label": "Module Enabled",
- "description": "Enable External Notification"
- },
- "outputMs": {
- "label": "Output MS",
- "description": "Output MS"
- },
- "output": {
- "label": "Output",
- "description": "Output"
- },
- "outputVibra": {
- "label": "Output Vibrate",
- "description": "Output Vibrate"
- },
- "outputBuzzer": {
- "label": "Output Buzzer",
- "description": "Output Buzzer"
- },
- "active": {
- "label": "Active",
- "description": "Active"
- },
- "alertMessage": {
- "label": "Alert Message",
- "description": "Alert Message"
- },
- "alertMessageVibra": {
- "label": "Alert Message Vibrate",
- "description": "Alert Message Vibrate"
- },
- "alertMessageBuzzer": {
- "label": "Alert Message Buzzer",
- "description": "Alert Message Buzzer"
- },
- "alertBell": {
- "label": "Alert Bell",
- "description": "Should an alert be triggered when receiving an incoming bell?"
- },
- "alertBellVibra": {
- "label": "Alert Bell Vibrate",
- "description": "Alert Bell Vibrate"
- },
- "alertBellBuzzer": {
- "label": "Alert Bell Buzzer",
- "description": "Alert Bell Buzzer"
- },
- "usePwm": {
- "label": "Use PWM",
- "description": "Use PWM"
- },
- "nagTimeout": {
- "label": "Nag Timeout",
- "description": "Nag Timeout"
- },
- "useI2sAsBuzzer": {
- "label": "Use I²S Pin as Buzzer",
- "description": "Designate I²S Pin as Buzzer Output"
- }
- },
- "mqtt": {
- "title": "MQTT Settings",
- "description": "Settings for the MQTT module",
- "enabled": {
- "label": "Enabled",
- "description": "Enable or disable MQTT"
- },
- "address": {
- "label": "MQTT Server Address",
- "description": "MQTT server address to use for default/custom servers"
- },
- "username": {
- "label": "MQTT Username",
- "description": "MQTT username to use for default/custom servers"
- },
- "password": {
- "label": "MQTT Password",
- "description": "MQTT password to use for default/custom servers"
- },
- "encryptionEnabled": {
- "label": "Encryption Enabled",
- "description": "Enable or disable MQTT encryption. Note: All messages are sent to the MQTT broker unencrypted if this option is not enabled, even when your uplink channels have encryption keys set. This includes position data."
- },
- "jsonEnabled": {
- "label": "JSON Enabled",
- "description": "Whether to send/consume JSON packets on MQTT"
- },
- "tlsEnabled": {
- "label": "TLS Enabled",
- "description": "Enable or disable TLS"
- },
- "root": {
- "label": "Tópico principal",
- "description": "MQTT root topic to use for default/custom servers"
- },
- "proxyToClientEnabled": {
- "label": "MQTT Client Proxy Enabled",
- "description": "Utilizes the network connection to proxy MQTT messages to the client."
- },
- "mapReportingEnabled": {
- "label": "Map Reporting Enabled",
- "description": "Your node will periodically send an unencrypted map report packet to the configured MQTT server, this includes id, short and long name, approximate location, hardware model, role, firmware version, LoRa region, modem preset and primary channel name."
- },
- "mapReportSettings": {
- "publishIntervalSecs": {
- "label": "Map Report Publish Interval (s)",
- "description": "Interval in seconds to publish map reports"
- },
- "positionPrecision": {
- "label": "Approximate Location",
- "description": "Position shared will be accurate within this distance",
- "options": {
- "metric_km23": "Within 23 km",
- "metric_km12": "Within 12 km",
- "metric_km5_8": "Within 5.8 km",
- "metric_km2_9": "Within 2.9 km",
- "metric_km1_5": "Within 1.5 km",
- "metric_m700": "Within 700 m",
- "metric_m350": "Within 350 m",
- "metric_m200": "Within 200 m",
- "metric_m90": "Within 90 m",
- "metric_m50": "Within 50 m",
- "imperial_mi15": "Within 15 miles",
- "imperial_mi7_3": "Within 7.3 miles",
- "imperial_mi3_6": "Within 3.6 miles",
- "imperial_mi1_8": "Within 1.8 miles",
- "imperial_mi0_9": "Within 0.9 miles",
- "imperial_mi0_5": "Within 0.5 miles",
- "imperial_mi0_2": "Within 0.2 miles",
- "imperial_ft600": "Within 600 feet",
- "imperial_ft300": "Within 300 feet",
- "imperial_ft150": "Within 150 feet"
- }
- }
- }
- },
- "neighborInfo": {
- "title": "Neighbor Info Settings",
- "description": "Settings for the Neighbor Info module",
- "enabled": {
- "label": "Enabled",
- "description": "Enable or disable Neighbor Info Module"
- },
- "updateInterval": {
- "label": "Update Interval",
- "description": "Interval in seconds of how often we should try to send our Neighbor Info to the mesh"
- }
- },
- "paxcounter": {
- "title": "Paxcounter Settings",
- "description": "Settings for the Paxcounter module",
- "enabled": {
- "label": "Module Enabled",
- "description": "Enable Paxcounter"
- },
- "paxcounterUpdateInterval": {
- "label": "Update Interval (seconds)",
- "description": "How long to wait between sending paxcounter packets"
- },
- "wifiThreshold": {
- "label": "WiFi RSSI Threshold",
- "description": "At what WiFi RSSI level should the counter increase. Defaults to -80."
- },
- "bleThreshold": {
- "label": "BLE RSSI Threshold",
- "description": "At what BLE RSSI level should the counter increase. Defaults to -80."
- }
- },
- "rangeTest": {
- "title": "Range Test Settings",
- "description": "Settings for the Range Test module",
- "enabled": {
- "label": "Module Enabled",
- "description": "Enable Range Test"
- },
- "sender": {
- "label": "Message Interval",
- "description": "How long to wait between sending test packets"
- },
- "save": {
- "label": "Save CSV to storage",
- "description": "ESP32 Only"
- }
- },
- "serial": {
- "title": "Serial Settings",
- "description": "Settings for the Serial module",
- "enabled": {
- "label": "Module Enabled",
- "description": "Enable Serial output"
- },
- "echo": {
- "label": "Echo",
- "description": "Any packets you send will be echoed back to your device"
- },
- "rxd": {
- "label": "Receive Pin",
- "description": "Set the GPIO pin to the RXD pin you have set up."
- },
- "txd": {
- "label": "Transmit Pin",
- "description": "Set the GPIO pin to the TXD pin you have set up."
- },
- "baud": {
- "label": "Baud Rate",
- "description": "The serial baud rate"
- },
- "timeout": {
- "label": "Timeout",
- "description": "Seconds to wait before we consider your packet as 'done'"
- },
- "mode": {
- "label": "Mode",
- "description": "Select Mode"
- },
- "overrideConsoleSerialPort": {
- "label": "Override Console Serial Port",
- "description": "If you have a serial port connected to the console, this will override it."
- }
- },
- "storeForward": {
- "title": "Store & Forward Settings",
- "description": "Settings for the Store & Forward module",
- "enabled": {
- "label": "Module Enabled",
- "description": "Enable Store & Forward"
- },
- "heartbeat": {
- "label": "Heartbeat Enabled",
- "description": "Enable Store & Forward heartbeat"
- },
- "records": {
- "label": "Número de registos",
- "description": "Number of records to store"
- },
- "historyReturnMax": {
- "label": "History return max",
- "description": "Max number of records to return"
- },
- "historyReturnWindow": {
- "label": "History return window",
- "description": "Return records from this time window (minutes)"
- }
- },
- "telemetry": {
- "title": "Telemetry Settings",
- "description": "Settings for the Telemetry module",
- "deviceUpdateInterval": {
- "label": "Device Metrics",
- "description": "Intervalo de atualização de métricas do dispositivo (segundos)"
- },
- "environmentUpdateInterval": {
- "label": "Intervalo de atualização de métricas de ambiente (segundos)",
- "description": ""
- },
- "environmentMeasurementEnabled": {
- "label": "Module Enabled",
- "description": "Enable the Environment Telemetry"
- },
- "environmentScreenEnabled": {
- "label": "Displayed on Screen",
- "description": "Show the Telemetry Module on the OLED"
- },
- "environmentDisplayFahrenheit": {
- "label": "Display Fahrenheit",
- "description": "Display temp in Fahrenheit"
- },
- "airQualityEnabled": {
- "label": "Air Quality Enabled",
- "description": "Enable the Air Quality Telemetry"
- },
- "airQualityInterval": {
- "label": "Air Quality Update Interval",
- "description": "How often to send Air Quality data over the mesh"
- },
- "powerMeasurementEnabled": {
- "label": "Power Measurement Enabled",
- "description": "Enable the Power Measurement Telemetry"
- },
- "powerUpdateInterval": {
- "label": "Power Update Interval",
- "description": "How often to send Power data over the mesh"
- },
- "powerScreenEnabled": {
- "label": "Power Screen Enabled",
- "description": "Enable the Power Telemetry Screen"
- }
- }
+ "page": {
+ "tabAmbientLighting": "Iluminação ambiente",
+ "tabAudio": "Áudio",
+ "tabCannedMessage": "Canned",
+ "tabDetectionSensor": "Sensor de deteção",
+ "tabExternalNotification": "Ext Notif",
+ "tabMqtt": "MQTT",
+ "tabNeighborInfo": "Informações da vizinhança",
+ "tabPaxcounter": "Contador de pessoas",
+ "tabRangeTest": "Teste de Alcance",
+ "tabSerial": "Série",
+ "tabStoreAndForward": "S&F",
+ "tabTelemetry": "Telemetria"
+ },
+ "ambientLighting": {
+ "title": "Ambient Lighting Settings",
+ "description": "Settings for the Ambient Lighting module",
+ "ledState": {
+ "label": "LED State",
+ "description": "Sets LED to on or off"
+ },
+ "current": {
+ "label": "Atual",
+ "description": "Sets the current for the LED output. Default is 10"
+ },
+ "red": {
+ "label": "Vermelho",
+ "description": "Sets the red LED level. Values are 0-255"
+ },
+ "green": {
+ "label": "Verde",
+ "description": "Sets the green LED level. Values are 0-255"
+ },
+ "blue": {
+ "label": "Azul",
+ "description": "Sets the blue LED level. Values are 0-255"
+ }
+ },
+ "audio": {
+ "title": "Audio Settings",
+ "description": "Settings for the Audio module",
+ "codec2Enabled": {
+ "label": "Codec 2 Enabled",
+ "description": "Enable Codec 2 audio encoding"
+ },
+ "pttPin": {
+ "label": "PTT Pin",
+ "description": "GPIO pin to use for PTT"
+ },
+ "bitrate": {
+ "label": "Bitrate",
+ "description": "Bitrate to use for audio encoding"
+ },
+ "i2sWs": {
+ "label": "i2S WS",
+ "description": "GPIO pin to use for i2S WS"
+ },
+ "i2sSd": {
+ "label": "i2S SD",
+ "description": "GPIO pin to use for i2S SD"
+ },
+ "i2sDin": {
+ "label": "i2S DIN",
+ "description": "GPIO pin to use for i2S DIN"
+ },
+ "i2sSck": {
+ "label": "i2S SCK",
+ "description": "GPIO pin to use for i2S SCK"
+ }
+ },
+ "cannedMessage": {
+ "title": "Canned Message Settings",
+ "description": "Settings for the Canned Message module",
+ "moduleEnabled": {
+ "label": "Module Enabled",
+ "description": "Enable Canned Message"
+ },
+ "rotary1Enabled": {
+ "label": "Rotary Encoder #1 Enabled",
+ "description": "Enable the rotary encoder"
+ },
+ "inputbrokerPinA": {
+ "label": "Encoder Pin A",
+ "description": "GPIO Pin Value (1-39) For encoder port A"
+ },
+ "inputbrokerPinB": {
+ "label": "Encoder Pin B",
+ "description": "GPIO Pin Value (1-39) For encoder port B"
+ },
+ "inputbrokerPinPress": {
+ "label": "Encoder Pin Press",
+ "description": "GPIO Pin Value (1-39) For encoder Press"
+ },
+ "inputbrokerEventCw": {
+ "label": "Clockwise event",
+ "description": "Select input event."
+ },
+ "inputbrokerEventCcw": {
+ "label": "Counter Clockwise event",
+ "description": "Select input event."
+ },
+ "inputbrokerEventPress": {
+ "label": "Press event",
+ "description": "Select input event"
+ },
+ "updown1Enabled": {
+ "label": "Up Down enabled",
+ "description": "Enable the up / down encoder"
+ },
+ "allowInputSource": {
+ "label": "Allow Input Source",
+ "description": "Select from: '_any', 'rotEnc1', 'upDownEnc1', 'cardkb'"
+ },
+ "sendBell": {
+ "label": "Send Bell",
+ "description": "Sends a bell character with each message"
+ }
+ },
+ "detectionSensor": {
+ "title": "Detection Sensor Settings",
+ "description": "Settings for the Detection Sensor module",
+ "enabled": {
+ "label": "Enabled",
+ "description": "Enable or disable Detection Sensor Module"
+ },
+ "minimumBroadcastSecs": {
+ "label": "Minimum Broadcast Seconds",
+ "description": "The interval in seconds of how often we can send a message to the mesh when a state change is detected"
+ },
+ "stateBroadcastSecs": {
+ "label": "State Broadcast Seconds",
+ "description": "The interval in seconds of how often we should send a message to the mesh with the current state regardless of changes"
+ },
+ "sendBell": {
+ "label": "Send Bell",
+ "description": "Send ASCII bell with alert message"
+ },
+ "name": {
+ "label": "Friendly Name",
+ "description": "Used to format the message sent to mesh, max 20 Characters"
+ },
+ "monitorPin": {
+ "label": "Monitor Pin",
+ "description": "The GPIO pin to monitor for state changes"
+ },
+ "detectionTriggerType": {
+ "label": "Detection Triggered Type",
+ "description": "The type of trigger event to be used"
+ },
+ "usePullup": {
+ "label": "Use Pullup",
+ "description": "Whether or not use INPUT_PULLUP mode for GPIO pin"
+ }
+ },
+ "externalNotification": {
+ "title": "External Notification Settings",
+ "description": "Configure the external notification module",
+ "enabled": {
+ "label": "Module Enabled",
+ "description": "Enable External Notification"
+ },
+ "outputMs": {
+ "label": "Output MS",
+ "description": "Output MS"
+ },
+ "output": {
+ "label": "Output",
+ "description": "Output"
+ },
+ "outputVibra": {
+ "label": "Output Vibrate",
+ "description": "Output Vibrate"
+ },
+ "outputBuzzer": {
+ "label": "Output Buzzer",
+ "description": "Output Buzzer"
+ },
+ "active": {
+ "label": "Active",
+ "description": "Active"
+ },
+ "alertMessage": {
+ "label": "Alert Message",
+ "description": "Alert Message"
+ },
+ "alertMessageVibra": {
+ "label": "Alert Message Vibrate",
+ "description": "Alert Message Vibrate"
+ },
+ "alertMessageBuzzer": {
+ "label": "Alert Message Buzzer",
+ "description": "Alert Message Buzzer"
+ },
+ "alertBell": {
+ "label": "Alert Bell",
+ "description": "Should an alert be triggered when receiving an incoming bell?"
+ },
+ "alertBellVibra": {
+ "label": "Alert Bell Vibrate",
+ "description": "Alert Bell Vibrate"
+ },
+ "alertBellBuzzer": {
+ "label": "Alert Bell Buzzer",
+ "description": "Alert Bell Buzzer"
+ },
+ "usePwm": {
+ "label": "Use PWM",
+ "description": "Use PWM"
+ },
+ "nagTimeout": {
+ "label": "Nag Timeout",
+ "description": "Nag Timeout"
+ },
+ "useI2sAsBuzzer": {
+ "label": "Use I²S Pin as Buzzer",
+ "description": "Designate I²S Pin as Buzzer Output"
+ }
+ },
+ "mqtt": {
+ "title": "MQTT Settings",
+ "description": "Settings for the MQTT module",
+ "enabled": {
+ "label": "Enabled",
+ "description": "Enable or disable MQTT"
+ },
+ "address": {
+ "label": "MQTT Server Address",
+ "description": "MQTT server address to use for default/custom servers"
+ },
+ "username": {
+ "label": "MQTT Username",
+ "description": "MQTT username to use for default/custom servers"
+ },
+ "password": {
+ "label": "MQTT Password",
+ "description": "MQTT password to use for default/custom servers"
+ },
+ "encryptionEnabled": {
+ "label": "Encryption Enabled",
+ "description": "Enable or disable MQTT encryption. Note: All messages are sent to the MQTT broker unencrypted if this option is not enabled, even when your uplink channels have encryption keys set. This includes position data."
+ },
+ "jsonEnabled": {
+ "label": "JSON Enabled",
+ "description": "Whether to send/consume JSON packets on MQTT"
+ },
+ "tlsEnabled": {
+ "label": "TLS Enabled",
+ "description": "Enable or disable TLS"
+ },
+ "root": {
+ "label": "Tópico principal",
+ "description": "MQTT root topic to use for default/custom servers"
+ },
+ "proxyToClientEnabled": {
+ "label": "MQTT Client Proxy Enabled",
+ "description": "Utilizes the network connection to proxy MQTT messages to the client."
+ },
+ "mapReportingEnabled": {
+ "label": "Map Reporting Enabled",
+ "description": "Your node will periodically send an unencrypted map report packet to the configured MQTT server, this includes id, short and long name, approximate location, hardware model, role, firmware version, LoRa region, modem preset and primary channel name."
+ },
+ "mapReportSettings": {
+ "publishIntervalSecs": {
+ "label": "Map Report Publish Interval (s)",
+ "description": "Interval in seconds to publish map reports"
+ },
+ "positionPrecision": {
+ "label": "Approximate Location",
+ "description": "Position shared will be accurate within this distance",
+ "options": {
+ "metric_km23": "Within 23 km",
+ "metric_km12": "Within 12 km",
+ "metric_km5_8": "Within 5.8 km",
+ "metric_km2_9": "Within 2.9 km",
+ "metric_km1_5": "Within 1.5 km",
+ "metric_m700": "Within 700 m",
+ "metric_m350": "Within 350 m",
+ "metric_m200": "Within 200 m",
+ "metric_m90": "Within 90 m",
+ "metric_m50": "Within 50 m",
+ "imperial_mi15": "Within 15 miles",
+ "imperial_mi7_3": "Within 7.3 miles",
+ "imperial_mi3_6": "Within 3.6 miles",
+ "imperial_mi1_8": "Within 1.8 miles",
+ "imperial_mi0_9": "Within 0.9 miles",
+ "imperial_mi0_5": "Within 0.5 miles",
+ "imperial_mi0_2": "Within 0.2 miles",
+ "imperial_ft600": "Within 600 feet",
+ "imperial_ft300": "Within 300 feet",
+ "imperial_ft150": "Within 150 feet"
+ }
+ }
+ }
+ },
+ "neighborInfo": {
+ "title": "Neighbor Info Settings",
+ "description": "Settings for the Neighbor Info module",
+ "enabled": {
+ "label": "Enabled",
+ "description": "Enable or disable Neighbor Info Module"
+ },
+ "updateInterval": {
+ "label": "Update Interval",
+ "description": "Interval in seconds of how often we should try to send our Neighbor Info to the mesh"
+ }
+ },
+ "paxcounter": {
+ "title": "Paxcounter Settings",
+ "description": "Settings for the Paxcounter module",
+ "enabled": {
+ "label": "Module Enabled",
+ "description": "Enable Paxcounter"
+ },
+ "paxcounterUpdateInterval": {
+ "label": "Update Interval (seconds)",
+ "description": "How long to wait between sending paxcounter packets"
+ },
+ "wifiThreshold": {
+ "label": "WiFi RSSI Threshold",
+ "description": "At what WiFi RSSI level should the counter increase. Defaults to -80."
+ },
+ "bleThreshold": {
+ "label": "BLE RSSI Threshold",
+ "description": "At what BLE RSSI level should the counter increase. Defaults to -80."
+ }
+ },
+ "rangeTest": {
+ "title": "Range Test Settings",
+ "description": "Settings for the Range Test module",
+ "enabled": {
+ "label": "Module Enabled",
+ "description": "Enable Range Test"
+ },
+ "sender": {
+ "label": "Message Interval",
+ "description": "How long to wait between sending test packets"
+ },
+ "save": {
+ "label": "Save CSV to storage",
+ "description": "ESP32 Only"
+ }
+ },
+ "serial": {
+ "title": "Serial Settings",
+ "description": "Settings for the Serial module",
+ "enabled": {
+ "label": "Module Enabled",
+ "description": "Enable Serial output"
+ },
+ "echo": {
+ "label": "Echo",
+ "description": "Any packets you send will be echoed back to your device"
+ },
+ "rxd": {
+ "label": "Receive Pin",
+ "description": "Set the GPIO pin to the RXD pin you have set up."
+ },
+ "txd": {
+ "label": "Transmit Pin",
+ "description": "Set the GPIO pin to the TXD pin you have set up."
+ },
+ "baud": {
+ "label": "Baud Rate",
+ "description": "The serial baud rate"
+ },
+ "timeout": {
+ "label": "Timeout",
+ "description": "Seconds to wait before we consider your packet as 'done'"
+ },
+ "mode": {
+ "label": "Mode",
+ "description": "Select Mode"
+ },
+ "overrideConsoleSerialPort": {
+ "label": "Override Console Serial Port",
+ "description": "If you have a serial port connected to the console, this will override it."
+ }
+ },
+ "storeForward": {
+ "title": "Store & Forward Settings",
+ "description": "Settings for the Store & Forward module",
+ "enabled": {
+ "label": "Module Enabled",
+ "description": "Enable Store & Forward"
+ },
+ "heartbeat": {
+ "label": "Heartbeat Enabled",
+ "description": "Enable Store & Forward heartbeat"
+ },
+ "records": {
+ "label": "Número de registos",
+ "description": "Number of records to store"
+ },
+ "historyReturnMax": {
+ "label": "History return max",
+ "description": "Max number of records to return"
+ },
+ "historyReturnWindow": {
+ "label": "History return window",
+ "description": "Return records from this time window (minutes)"
+ }
+ },
+ "telemetry": {
+ "title": "Telemetry Settings",
+ "description": "Settings for the Telemetry module",
+ "deviceUpdateInterval": {
+ "label": "Device Metrics",
+ "description": "Intervalo de atualização de métricas do dispositivo (segundos)"
+ },
+ "environmentUpdateInterval": {
+ "label": "Intervalo de atualização de métricas de ambiente (segundos)",
+ "description": ""
+ },
+ "environmentMeasurementEnabled": {
+ "label": "Module Enabled",
+ "description": "Enable the Environment Telemetry"
+ },
+ "environmentScreenEnabled": {
+ "label": "Displayed on Screen",
+ "description": "Show the Telemetry Module on the OLED"
+ },
+ "environmentDisplayFahrenheit": {
+ "label": "Display Fahrenheit",
+ "description": "Display temp in Fahrenheit"
+ },
+ "airQualityEnabled": {
+ "label": "Air Quality Enabled",
+ "description": "Enable the Air Quality Telemetry"
+ },
+ "airQualityInterval": {
+ "label": "Air Quality Update Interval",
+ "description": "How often to send Air Quality data over the mesh"
+ },
+ "powerMeasurementEnabled": {
+ "label": "Power Measurement Enabled",
+ "description": "Enable the Power Measurement Telemetry"
+ },
+ "powerUpdateInterval": {
+ "label": "Power Update Interval",
+ "description": "How often to send Power data over the mesh"
+ },
+ "powerScreenEnabled": {
+ "label": "Power Screen Enabled",
+ "description": "Enable the Power Telemetry Screen"
+ }
+ }
}
diff --git a/packages/web/public/i18n/locales/pt-PT/nodes.json b/packages/web/public/i18n/locales/pt-PT/nodes.json
index 229aa086..3a92cdd3 100644
--- a/packages/web/public/i18n/locales/pt-PT/nodes.json
+++ b/packages/web/public/i18n/locales/pt-PT/nodes.json
@@ -1,63 +1,59 @@
{
- "nodeDetail": {
- "publicKeyEnabled": {
- "label": "Public Key Enabled"
- },
- "noPublicKey": {
- "label": "No Public Key"
- },
- "directMessage": {
- "label": "Direct Message {{shortName}}"
- },
- "favorite": {
- "label": "Favoritos",
- "tooltip": "Add or remove this node from your favorites"
- },
- "notFavorite": {
- "label": "Not a Favorite"
- },
- "error": {
- "label": "Erros",
- "text": "An error occurred while fetching node details. Please try again later."
- },
- "status": {
- "heard": "Heard",
- "mqtt": "MQTT"
- },
- "elevation": {
- "label": "Elevation"
- },
- "channelUtil": {
- "label": "Channel Util"
- },
- "airtimeUtil": {
- "label": "Airtime Util"
- }
- },
- "nodesTable": {
- "headings": {
- "longName": "Long Name",
- "connection": "Connection",
- "lastHeard": "Last Heard",
- "encryption": "Encryption",
- "model": "Model",
- "macAddress": "MAC Address"
- },
- "connectionStatus": {
- "direct": "Direto",
- "away": "away",
- "unknown": "-",
- "viaMqtt": ", via MQTT"
- },
- "lastHeardStatus": {
- "never": "Never"
- }
- },
- "actions": {
- "added": "Added",
- "removed": "Removed",
- "ignoreNode": "Ignore Node",
- "unignoreNode": "Unignore Node",
- "requestPosition": "Request Position"
- }
+ "nodeDetail": {
+ "publicKeyEnabled": {
+ "label": "Public Key Enabled"
+ },
+ "noPublicKey": {
+ "label": "No Public Key"
+ },
+ "directMessage": {
+ "label": "Direct Message {{shortName}}"
+ },
+ "favorite": {
+ "label": "Favoritos",
+ "tooltip": "Add or remove this node from your favorites"
+ },
+ "notFavorite": {
+ "label": "Not a Favorite"
+ },
+ "error": {
+ "label": "Erros",
+ "text": "An error occurred while fetching node details. Please try again later."
+ },
+ "status": {
+ "heard": "Heard",
+ "mqtt": "MQTT"
+ },
+ "elevation": {
+ "label": "Elevation"
+ },
+ "channelUtil": {
+ "label": "Channel Util"
+ },
+ "airtimeUtil": {
+ "label": "Airtime Util"
+ }
+ },
+ "nodesTable": {
+ "headings": {
+ "longName": "Long Name",
+ "connection": "Connection",
+ "lastHeard": "Last Heard",
+ "encryption": "Encryption",
+ "model": "Model",
+ "macAddress": "MAC Address"
+ },
+ "connectionStatus": {
+ "direct": "Direto",
+ "away": "away",
+ "viaMqtt": ", via MQTT"
+ }
+ },
+ "actions": {
+ "added": "Added",
+ "removed": "Removed",
+ "ignoreNode": "Ignore Node",
+ "unignoreNode": "Unignore Node",
+ "requestPosition": "Request Position"
+ }
}
diff --git a/packages/web/public/i18n/locales/pt-PT/ui.json b/packages/web/public/i18n/locales/pt-PT/ui.json
index e6261a3f..8e476d18 100644
--- a/packages/web/public/i18n/locales/pt-PT/ui.json
+++ b/packages/web/public/i18n/locales/pt-PT/ui.json
@@ -1,228 +1,229 @@
{
- "navigation": {
- "title": "Navigation",
- "messages": "Mensagens",
- "map": "Mapa",
- "config": "Config",
- "radioConfig": "Radio Config",
- "moduleConfig": "Module Config",
- "channels": "Canal",
- "nodes": "Nodes"
- },
- "app": {
- "title": "Meshtastic",
- "logo": "Meshtastic Logo"
- },
- "sidebar": {
- "collapseToggle": {
- "button": {
- "open": "Open sidebar",
- "close": "Close sidebar"
- }
- },
- "deviceInfo": {
- "volts": "{{voltage}} volts",
- "firmware": {
- "title": "Firmware",
- "version": "v{{version}}",
- "buildDate": "Build date: {{date}}"
- },
- "deviceName": {
- "title": "Device Name",
- "changeName": "Change Device Name",
- "placeholder": "Enter device name"
- },
- "editDeviceName": "Edit device name"
- }
- },
- "batteryStatus": {
- "charging": "{{level}}% charging",
- "pluggedIn": "Plugged in",
- "title": "Bateria"
- },
- "search": {
- "nodes": "Search nodes...",
- "channels": "Search channels...",
- "commandPalette": "Search commands..."
- },
- "toast": {
- "positionRequestSent": {
- "title": "Position request sent."
- },
- "requestingPosition": {
- "title": "Requesting position, please wait..."
- },
- "sendingTraceroute": {
- "title": "Sending Traceroute, please wait..."
- },
- "tracerouteSent": {
- "title": "Traceroute sent."
- },
- "savedChannel": {
- "title": "Saved Channel: {{channelName}}"
- },
- "messages": {
- "pkiEncryption": {
- "title": "Chat is using PKI encryption."
- },
- "pskEncryption": {
- "title": "Chat is using PSK encryption."
- }
- },
- "configSaveError": {
- "title": "Error Saving Config",
- "description": "An error occurred while saving the configuration."
- },
- "validationError": {
- "title": "Config Errors Exist",
- "description": "Please fix the configuration errors before saving."
- },
- "saveSuccess": {
- "title": "Saving Config",
- "description": "The configuration change {{case}} has been saved."
- },
- "favoriteNode": {
- "title": "{{action}} {{nodeName}} {{direction}} favorites.",
- "action": {
- "added": "Added",
- "removed": "Removed",
- "to": "to",
- "from": "from"
- }
- },
- "ignoreNode": {
- "title": "{{action}} {{nodeName}} {{direction}} ignore list",
- "action": {
- "added": "Added",
- "removed": "Removed",
- "to": "to",
- "from": "from"
- }
- }
- },
- "notifications": {
- "copied": {
- "label": "Copied!"
- },
- "copyToClipboard": {
- "label": "Copy to clipboard"
- },
- "hidePassword": {
- "label": "Ocultar palavra-passe"
- },
- "showPassword": {
- "label": "Mostrar palavra-passe"
- },
- "deliveryStatus": {
- "delivered": "Delivered",
- "failed": "Delivery Failed",
- "waiting": "Waiting",
- "unknown": "Unknown"
- }
- },
- "general": {
- "label": "General"
- },
- "hardware": {
- "label": "Hardware"
- },
- "metrics": {
- "label": "Metrics"
- },
- "role": {
- "label": "Papel"
- },
- "filter": {
- "label": "Filtrar"
- },
- "advanced": {
- "label": "Advanced"
- },
- "clearInput": {
- "label": "Clear input"
- },
- "resetFilters": {
- "label": "Reset Filters"
- },
- "nodeName": {
- "label": "Node name/number",
- "placeholder": "Meshtastic 1234"
- },
- "airtimeUtilization": {
- "label": "Airtime Utilization (%)"
- },
- "batteryLevel": {
- "label": "Battery level (%)",
- "labelText": "Battery level (%): {{value}}"
- },
- "batteryVoltage": {
- "label": "Battery voltage (V)",
- "title": "Voltagem"
- },
- "channelUtilization": {
- "label": "Channel Utilization (%)"
- },
- "hops": {
- "direct": "Direto",
- "label": "Number of hops",
- "text": "Number of hops: {{value}}"
- },
- "lastHeard": {
- "label": "Último recebido",
- "labelText": "Last heard: {{value}}",
- "nowLabel": "Now"
- },
- "snr": {
- "label": "SNR (db)"
- },
- "favorites": {
- "label": "Favorites"
- },
- "hide": {
- "label": "Hide"
- },
- "showOnly": {
- "label": "Show Only"
- },
- "viaMqtt": {
- "label": "Connected via MQTT"
- },
- "hopsUnknown": {
- "label": "Unknown number of hops"
- },
- "showUnheard": {
- "label": "Never heard"
- },
- "language": {
- "label": "Idioma",
- "changeLanguage": "Change Language"
- },
- "theme": {
- "dark": "Escuro",
- "light": "Claro",
- "system": "Automatic",
- "changeTheme": "Change Color Scheme"
- },
- "errorPage": {
- "title": "This is a little embarrassing...",
- "description1": "We are really sorry but an error occurred in the web client that caused it to crash.
This is not supposed to happen, and we are working hard to fix it.",
- "description2": "The best way to prevent this from happening again to you or anyone else is to report the issue to us.",
- "reportInstructions": "Please include the following information in your report:",
- "reportSteps": {
- "step1": "What you were doing when the error occurred",
- "step2": "What you expected to happen",
- "step3": "What actually happened",
- "step4": "Any other relevant information"
- },
- "reportLink": "You can report the issue to our <0>GitHub0>",
- "dashboardLink": "Return to the <0>dashboard0>",
- "detailsSummary": "Error Details",
- "errorMessageLabel": "Error message:",
- "stackTraceLabel": "Stack trace:",
- "fallbackError": "{{error}}"
- },
- "footer": {
- "text": "Powered by <0>▲ Vercel0> | Meshtastic® is a registered trademark of Meshtastic LLC. | <1>Legal Information1>",
- "commitSha": "Commit SHA: {{sha}}"
- }
+ "navigation": {
+ "title": "Navigation",
+ "messages": "Mensagens",
+ "map": "Mapa",
+ "settings": "Definições",
+ "channels": "Canal",
+ "radioConfig": "Radio Config",
+ "deviceConfig": "Configuração do Dispositivo",
+ "moduleConfig": "Module Config",
+ "nodes": "Nodes"
+ },
+ "app": {
+ "title": "Meshtastic",
+ "logo": "Meshtastic Logo"
+ },
+ "sidebar": {
+ "collapseToggle": {
+ "button": {
+ "open": "Open sidebar",
+ "close": "Close sidebar"
+ }
+ },
+ "deviceInfo": {
+ "volts": "{{voltage}} volts",
+ "firmware": {
+ "title": "Firmware",
+ "version": "v{{version}}",
+ "buildDate": "Build date: {{date}}"
+ }
+ }
+ },
+ "batteryStatus": {
+ "charging": "{{level}}% charging",
+ "pluggedIn": "Plugged in",
+ "title": "Bateria"
+ },
+ "search": {
+ "nodes": "Search nodes...",
+ "channels": "Search channels...",
+ "commandPalette": "Search commands..."
+ },
+ "toast": {
+ "positionRequestSent": {
+ "title": "Position request sent."
+ },
+ "requestingPosition": {
+ "title": "Requesting position, please wait..."
+ },
+ "sendingTraceroute": {
+ "title": "Sending Traceroute, please wait..."
+ },
+ "tracerouteSent": {
+ "title": "Traceroute sent."
+ },
+ "savedChannel": {
+ "title": "Saved Channel: {{channelName}}"
+ },
+ "messages": {
+ "pkiEncryption": {
+ "title": "Chat is using PKI encryption."
+ },
+ "pskEncryption": {
+ "title": "Chat is using PSK encryption."
+ }
+ },
+ "configSaveError": {
+ "title": "Error Saving Config",
+ "description": "An error occurred while saving the configuration."
+ },
+ "validationError": {
+ "title": "Config Errors Exist",
+ "description": "Please fix the configuration errors before saving."
+ },
+ "saveSuccess": {
+ "title": "Saving Config",
+ "description": "The configuration change {{case}} has been saved."
+ },
+ "saveAllSuccess": {
+ "title": "Saved",
+ "description": "All configuration changes have been saved."
+ },
+ "favoriteNode": {
+ "title": "{{action}} {{nodeName}} {{direction}} favorites.",
+ "action": {
+ "added": "Added",
+ "removed": "Removed",
+ "to": "to",
+ "from": "from"
+ }
+ },
+ "ignoreNode": {
+ "title": "{{action}} {{nodeName}} {{direction}} ignore list",
+ "action": {
+ "added": "Added",
+ "removed": "Removed",
+ "to": "to",
+ "from": "from"
+ }
+ }
+ },
+ "notifications": {
+ "copied": {
+ "label": "Copied!"
+ },
+ "copyToClipboard": {
+ "label": "Copy to clipboard"
+ },
+ "hidePassword": {
+ "label": "Ocultar palavra-passe"
+ },
+ "showPassword": {
+ "label": "Mostrar palavra-passe"
+ },
+ "deliveryStatus": {
+ "delivered": "Delivered",
+ "failed": "Delivery Failed",
+ "waiting": "Waiting",
+ "unknown": "Unknown"
+ }
+ },
+ "general": {
+ "label": "General"
+ },
+ "hardware": {
+ "label": "Hardware"
+ },
+ "metrics": {
+ "label": "Metrics"
+ },
+ "role": {
+ "label": "Papel"
+ },
+ "filter": {
+ "label": "Filtrar"
+ },
+ "advanced": {
+ "label": "Advanced"
+ },
+ "clearInput": {
+ "label": "Clear input"
+ },
+ "resetFilters": {
+ "label": "Reset Filters"
+ },
+ "nodeName": {
+ "label": "Node name/number",
+ "placeholder": "Meshtastic 1234"
+ },
+ "airtimeUtilization": {
+ "label": "Airtime Utilization (%)",
+ "short": "Airtime Util. (%)"
+ },
+ "batteryLevel": {
+ "label": "Battery level (%)",
+ "labelText": "Battery level (%): {{value}}"
+ },
+ "batteryVoltage": {
+ "label": "Battery voltage (V)",
+ "title": "Voltagem"
+ },
+ "channelUtilization": {
+ "label": "Channel Utilization (%)",
+ "short": "Channel Util. (%)"
+ },
+ "hops": {
+ "direct": "Direto",
+ "label": "Number of hops",
+ "text": "Number of hops: {{value}}"
+ },
+ "lastHeard": {
+ "label": "Último recebido",
+ "labelText": "Last heard: {{value}}",
+ "nowLabel": "Now"
+ },
+ "snr": {
+ "label": "SNR (db)"
+ },
+ "favorites": {
+ "label": "Favorites"
+ },
+ "hide": {
+ "label": "Hide"
+ },
+ "showOnly": {
+ "label": "Show Only"
+ },
+ "viaMqtt": {
+ "label": "Connected via MQTT"
+ },
+ "hopsUnknown": {
+ "label": "Unknown number of hops"
+ },
+ "showUnheard": {
+ "label": "Never heard"
+ },
+ "language": {
+ "label": "Idioma",
+ "changeLanguage": "Change Language"
+ },
+ "theme": {
+ "dark": "Escuro",
+ "light": "Claro",
+ "system": "Automatic",
+ "changeTheme": "Change Color Scheme"
+ },
+ "errorPage": {
+ "title": "This is a little embarrassing...",
+ "description1": "We are really sorry but an error occurred in the web client that caused it to crash.
This is not supposed to happen, and we are working hard to fix it.",
+ "description2": "The best way to prevent this from happening again to you or anyone else is to report the issue to us.",
+ "reportInstructions": "Please include the following information in your report:",
+ "reportSteps": {
+ "step1": "What you were doing when the error occurred",
+ "step2": "What you expected to happen",
+ "step3": "What actually happened",
+ "step4": "Any other relevant information"
+ },
+ "reportLink": "You can report the issue to our <0>GitHub0>",
+ "dashboardLink": "Return to the <0>dashboard0>",
+ "detailsSummary": "Error Details",
+ "errorMessageLabel": "Error message:",
+ "stackTraceLabel": "Stack trace:",
+ "fallbackError": "{{error}}"
+ },
+ "footer": {
+ "text": "Powered by <0>▲ Vercel0> | Meshtastic® is a registered trademark of Meshtastic LLC. | <1>Legal Information1>",
+ "commitSha": "Commit SHA: {{sha}}"
+ }
}
diff --git a/packages/web/public/i18n/locales/sv-SE/channels.json b/packages/web/public/i18n/locales/sv-SE/channels.json
index 94fb9375..79ed0e6e 100644
--- a/packages/web/public/i18n/locales/sv-SE/channels.json
+++ b/packages/web/public/i18n/locales/sv-SE/channels.json
@@ -1,69 +1,71 @@
{
- "page": {
- "sectionLabel": "Kanaler",
- "channelName": "Kanal: {channelName}",
- "broadcastLabel": "Primär",
- "channelIndex": "# {{index}}"
- },
- "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"
- }
- }
+ "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"
+ }
+ }
}
diff --git a/packages/web/public/i18n/locales/sv-SE/commandPalette.json b/packages/web/public/i18n/locales/sv-SE/commandPalette.json
index 83f950ce..712194b7 100644
--- a/packages/web/public/i18n/locales/sv-SE/commandPalette.json
+++ b/packages/web/public/i18n/locales/sv-SE/commandPalette.json
@@ -15,7 +15,6 @@
"messages": "Meddelanden",
"map": "Karta",
"config": "Inställningar",
- "channels": "Kanaler",
"nodes": "Noder"
}
},
@@ -45,7 +44,8 @@
"label": "Felsökning",
"command": {
"reconfigure": "Konfigurera om",
- "clearAllStoredMessages": "Radera alla sparade meddelanden"
+ "clearAllStoredMessages": "Radera alla sparade meddelanden",
+ "clearAllStores": "Clear All Local Storage"
}
}
}
diff --git a/packages/web/public/i18n/locales/sv-SE/common.json b/packages/web/public/i18n/locales/sv-SE/common.json
index 0c9efcfb..94c41ecf 100644
--- a/packages/web/public/i18n/locales/sv-SE/common.json
+++ b/packages/web/public/i18n/locales/sv-SE/common.json
@@ -1,142 +1,157 @@
{
- "button": {
- "apply": "Verkställ",
- "backupKey": "Säkerhetskopiera nyckel",
- "cancel": "Avbryt",
- "clearMessages": "Ta bort meddelanden",
- "close": "Stäng",
- "confirm": "Bekräfta",
- "delete": "Radera",
- "dismiss": "Stäng",
- "download": "Ladda ner",
- "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",
- "save": "Spara",
- "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",
- "raw": "raw",
- "meter": {
- "one": "Meter",
- "plural": "Meter",
- "suffix": "m"
- },
- "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"
- },
- "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"
- }
- },
- "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."
- }
- },
- "yes": "Ja",
- "no": "Nej"
+ "button": {
+ "apply": "Verkställ",
+ "backupKey": "Säkerhetskopiera nyckel",
+ "cancel": "Avbryt",
+ "clearMessages": "Ta bort meddelanden",
+ "close": "Stäng",
+ "confirm": "Bekräfta",
+ "delete": "Radera",
+ "dismiss": "Stäng",
+ "download": "Ladda ner",
+ "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",
+ "save": "Spara",
+ "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",
+ "raw": "raw",
+ "meter": {
+ "one": "Meter",
+ "plural": "Meter",
+ "suffix": "m"
+ },
+ "kilometer": {
+ "one": "Kilometer",
+ "plural": "Kilometers",
+ "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": "Today",
+ "yesterday": "Yesterday"
+ },
+ "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": "Degree",
+ "plural": "Degrees",
+ "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": "Invalid format, expected a value in the range 410-930 MHz or 0 (use default)."
+ }
+ },
+ "yes": "Ja",
+ "no": "Nej"
}
diff --git a/packages/web/public/i18n/locales/sv-SE/config.json b/packages/web/public/i18n/locales/sv-SE/config.json
new file mode 100644
index 00000000..43791b1c
--- /dev/null
+++ b/packages/web/public/i18n/locales/sv-SE/config.json
@@ -0,0 +1,458 @@
+{
+ "page": {
+ "title": "Settings",
+ "tabUser": "User",
+ "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 MHz",
+ "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": "User Settings",
+ "description": "Configure your device name and identity settings",
+ "longName": {
+ "label": "Långt namn",
+ "description": "Your full display name (1-40 characters)",
+ "validation": {
+ "min": "Long name must be at least 1 character",
+ "max": "Long name must be at most 40 characters"
+ }
+ },
+ "shortName": {
+ "label": "Kort namn",
+ "description": "Your abbreviated name (2-4 characters)",
+ "validation": {
+ "min": "Short name must be at least 2 characters",
+ "max": "Short name must be at most 4 characters"
+ }
+ },
+ "isUnmessageable": {
+ "label": "Unmessageable",
+ "description": "Used to identify unmonitored or infrastructure nodes so that messaging is not available to nodes that will never respond."
+ },
+ "isLicensed": {
+ "label": "Licensed amateur radio (HAM)",
+ "description": "Enable if you are a licensed amateur radio operator, enabling this option disables encryption and is not compatible with the default Meshtastic network."
+ }
+ }
+}
diff --git a/packages/web/public/i18n/locales/sv-SE/dashboard.json b/packages/web/public/i18n/locales/sv-SE/dashboard.json
index a6d941ad..f9ac6a24 100644
--- a/packages/web/public/i18n/locales/sv-SE/dashboard.json
+++ b/packages/web/public/i18n/locales/sv-SE/dashboard.json
@@ -1,12 +1,12 @@
{
- "dashboard": {
- "title": "Anslutna enheter",
- "description": "Hantera dina anslutna Meshtastic-enheter.",
- "connectionType_ble": "BLE",
- "connectionType_serial": "Seriell kommunikation",
- "connectionType_network": "Nätverk",
- "noDevicesTitle": "Inga anslutna enheter ",
- "noDevicesDescription": "Anslut en ny enhet för att komma igång.",
- "button_newConnection": "Ny anslutning"
- }
+ "dashboard": {
+ "title": "Anslutna enheter",
+ "description": "Hantera dina anslutna Meshtastic-enheter.",
+ "connectionType_ble": "BLE",
+ "connectionType_serial": "Seriell kommunikation",
+ "connectionType_network": "Nätverk",
+ "noDevicesTitle": "Inga anslutna enheter ",
+ "noDevicesDescription": "Anslut en ny enhet för att komma igång.",
+ "button_newConnection": "Ny anslutning"
+ }
}
diff --git a/packages/web/public/i18n/locales/sv-SE/dialog.json b/packages/web/public/i18n/locales/sv-SE/dialog.json
index f229a2ac..09b0f157 100644
--- a/packages/web/public/i18n/locales/sv-SE/dialog.json
+++ b/packages/web/public/i18n/locales/sv-SE/dialog.json
@@ -1,193 +1,221 @@
{
- "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"
- },
- "deviceName": {
- "description": "Enheten kommer att starta om när inställningarna har sparats.",
- "longName": "Långt namn",
- "shortName": "Kort namn",
- "title": "Ändra enhetens namn",
- "validation": {
- "longNameMax": "Långt namn får inte vara längre än 40 tecken",
- "shortNameMax": "Kort namn får inte vara längre än 4 tecken",
- "longNameMin": "Långt namn måste ha minst 1 tecken",
- "shortNameMin": "Kort namn måste ha minst 1 tecken"
- }
- },
- "import": {
- "description": "Den aktuella LoRa konfigurationen kommer att skrivas över.",
- "error": {
- "invalidUrl": "Ogiltig Meshtastic URL"
- },
- "channelPrefix": "Kanal: ",
- "channelSetUrl": "Kanalinställning/QR-kod URL",
- "channels": "Kanaler:",
- "usePreset": "Använd förinställning?",
- "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"
- },
- "newDeviceDialog": {
- "title": "Anslut ny enhet",
- "https": "https",
- "http": "http",
- "tabHttp": "HTTP",
- "tabBluetooth": "Bluetooth",
- "tabSerial": "Seriell kommunikation",
- "useHttps": "Använd HTTPS",
- "connecting": "Ansluter...",
- "connect": "Anslut",
- "connectionFailedAlert": {
- "title": "Anslutningen misslyckades",
- "descriptionPrefix": "Kunde inte ansluta till enheten. ",
- "httpsHint": "Om du använder HTTPS kan du behöva godkänna ett självsignerat certifikat först. ",
- "openLinkPrefix": "Vänligen öppna ",
- "openLinkSuffix": " i en ny flik",
- "acceptTlsWarningSuffix": ", acceptera eventuella TLS-varningar om du uppmanas och försök igen",
- "learnMoreLink": "Läs mer"
- },
- "httpConnection": {
- "label": "IP-adress/värdnamn",
- "placeholder": "000.000.000.000 / meshtastic.lokal"
- },
- "serialConnection": {
- "noDevicesPaired": "Inga enheter parkopplade ännu.",
- "newDeviceButton": "Ny enhet",
- "deviceIdentifier": "# {{index}} - {{vendorId}} - {{productId}}"
- },
- "bluetoothConnection": {
- "noDevicesPaired": "Inga enheter parkopplade ännu.",
- "newDeviceButton": "Ny enhet",
- "connectionFailed": "Anslutningen misslyckades",
- "deviceDisconnected": "Enheten frånkopplad",
- "unknownDevice": "Okänd enhet",
- "errorLoadingDevices": "Fel vid inläsning av enheter",
- "unknownErrorLoadingDevices": "Okänt fel vid inläsning av enheter"
- },
- "validation": {
- "requiresWebBluetooth": "Den här anslutningstypen kräver <0>Web Bluetooth0>. Använd en webbläsare som stöds, till exempel Chrome eller Edge.",
- "requiresWebSerial": "Den här anslutningstypen kräver <0>Web Serial0>. Använd en webbläsare som stöds, till exempel Chrome eller Edge.",
- "requiresSecureContext": "Denna applikation kräver en <0>säker kontext0>. Anslut med HTTPS eller localhost.",
- "additionallyRequiresSecureContext": "Dessutom kräver den ett <0>säker kontext0>. Vänligen anslut med HTTPS eller localhost."
- }
- },
- "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."
- }
+ "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"
+ },
+ "deviceName": {
+ "description": "Enheten kommer att starta om när inställningarna har sparats.",
+ "longName": "Långt namn",
+ "shortName": "Kort namn",
+ "title": "Ändra enhetens namn",
+ "validation": {
+ "longNameMax": "Långt namn får inte vara längre än 40 tecken",
+ "shortNameMax": "Kort namn får inte vara längre än 4 tecken",
+ "longNameMin": "Långt namn måste ha minst 1 tecken",
+ "shortNameMin": "Kort namn måste ha minst 1 tecken"
+ }
+ },
+ "import": {
+ "description": "Den aktuella LoRa konfigurationen kommer att skrivas över.",
+ "error": {
+ "invalidUrl": "Ogiltig Meshtastic URL"
+ },
+ "channelPrefix": "Kanal: ",
+ "primary": "Primary ",
+ "doNotImport": "No not import",
+ "channelName": "Namn",
+ "channelSlot": "Slot",
+ "channelSetUrl": "Kanalinställning/QR-kod URL",
+ "useLoraConfig": "Import LoRa Config",
+ "presetDescription": "The current LoRa Config will be replaced.",
+ "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"
+ },
+ "newDeviceDialog": {
+ "title": "Anslut ny enhet",
+ "https": "https",
+ "http": "http",
+ "tabHttp": "HTTP",
+ "tabBluetooth": "Bluetooth",
+ "tabSerial": "Seriell kommunikation",
+ "useHttps": "Använd HTTPS",
+ "connecting": "Ansluter...",
+ "connect": "Anslut",
+ "connectionFailedAlert": {
+ "title": "Anslutningen misslyckades",
+ "descriptionPrefix": "Kunde inte ansluta till enheten. ",
+ "httpsHint": "Om du använder HTTPS kan du behöva godkänna ett självsignerat certifikat först. ",
+ "openLinkPrefix": "Vänligen öppna ",
+ "openLinkSuffix": " i en ny flik",
+ "acceptTlsWarningSuffix": ", acceptera eventuella TLS-varningar om du uppmanas och försök igen",
+ "learnMoreLink": "Läs mer"
+ },
+ "httpConnection": {
+ "label": "IP-adress/värdnamn",
+ "placeholder": "000.000.000.000 / meshtastic.lokal"
+ },
+ "serialConnection": {
+ "noDevicesPaired": "Inga enheter parkopplade ännu.",
+ "newDeviceButton": "Ny enhet",
+ "deviceIdentifier": "# {{index}} - {{vendorId}} - {{productId}}"
+ },
+ "bluetoothConnection": {
+ "noDevicesPaired": "Inga enheter parkopplade ännu.",
+ "newDeviceButton": "Ny enhet",
+ "connectionFailed": "Anslutningen misslyckades",
+ "deviceDisconnected": "Enheten frånkopplad",
+ "unknownDevice": "Okänd enhet",
+ "errorLoadingDevices": "Fel vid inläsning av enheter",
+ "unknownErrorLoadingDevices": "Okänt fel vid inläsning av enheter"
+ },
+ "validation": {
+ "requiresWebBluetooth": "Den här anslutningstypen kräver <0>Web Bluetooth0>. Använd en webbläsare som stöds, till exempel Chrome eller Edge.",
+ "requiresWebSerial": "Den här anslutningstypen kräver <0>Web Serial0>. Använd en webbläsare som stöds, till exempel Chrome eller Edge.",
+ "requiresSecureContext": "Denna applikation kräver en <0>säker kontext0>. Anslut med HTTPS eller localhost.",
+ "additionallyRequiresSecureContext": "Dessutom kräver den ett <0>säker kontext0>. Vänligen anslut med HTTPS eller localhost."
+ }
+ },
+ "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": "Reset Node Database",
+ "description": "This will clear all nodes from the connected device's node database and clear all message history in the client. This cannot be undone. Are you sure you want to continue?",
+ "confirm": "Reset Node Database",
+ "failedTitle": "There was an error resetting the Node DB. Please try again."
+ },
+ "clearAllStores": {
+ "title": "Clear All Local Storage",
+ "description": "This will clear all locally stored data, including message history and node databases for all previously connected devices. This will require you to reconnect to your node once complete and cannot be undone. Are you sure you want to continue?",
+ "confirm": "Clear all local storage",
+ "failedTitle": "There was an error clearing local storage. Please try again."
+ },
+ "factoryResetDevice": {
+ "title": "Fabriksåterställ enhet",
+ "description": "This will factory reset the connected device, erasing all configurations and data on the device as well as all nodes and messages saved in the client. This cannot be undone. Are you sure you want to continue?",
+ "confirm": "Fabriksåterställ enhet",
+ "failedTitle": "There was an error performing the factory reset. Please try again."
+ },
+ "factoryResetConfig": {
+ "title": "Fabriksåterställ konfigurationen",
+ "description": "This will factory reset the configuration on the connected device, erasing all configurations on the device. This cannot be undone. Are you sure you want to continue?",
+ "confirm": "Fabriksåterställ konfigurationen",
+ "failedTitle": "There was an error performing the factory reset. Please try again."
+ }
}
diff --git a/packages/web/public/i18n/locales/sv-SE/map.json b/packages/web/public/i18n/locales/sv-SE/map.json
new file mode 100644
index 00000000..498a6141
--- /dev/null
+++ b/packages/web/public/i18n/locales/sv-SE/map.json
@@ -0,0 +1,38 @@
+{
+ "maplibre": {
+ "GeolocateControl.FindMyLocation": "Find my location",
+ "NavigationControl.ZoomIn": "Zoom in",
+ "NavigationControl.ZoomOut": "Zoom out",
+ "CooperativeGesturesHandler.WindowsHelpText": "Use Ctrl + scroll to zoom the map",
+ "CooperativeGesturesHandler.MacHelpText": "Use ⌘ + scroll to zoom the map",
+ "CooperativeGesturesHandler.MobileHelpText": "Use two fingers to move the map"
+ },
+ "layerTool": {
+ "nodeMarkers": "Show nodes",
+ "directNeighbors": "Show direct connections",
+ "remoteNeighbors": "Show remote connections",
+ "positionPrecision": "Show position precision",
+ "traceroutes": "Show traceroutes",
+ "waypoints": "Show waypoints"
+ },
+ "mapMenu": {
+ "locateAria": "Locate my node",
+ "layersAria": "Change map style"
+ },
+ "waypointDetail": {
+ "edit": "Ändra",
+ "description": "Description:",
+ "createdBy": "Edited by:",
+ "createdDate": "Created:",
+ "updated": "Updated:",
+ "expires": "Expires:",
+ "distance": "Distance:",
+ "bearing": "Absolute bearing:",
+ "lockedTo": "Locked by:",
+ "latitude": "Latitude:",
+ "longitude": "Longitude:"
+ },
+ "myNode": {
+ "tooltip": "This device"
+ }
+}
diff --git a/packages/web/public/i18n/locales/sv-SE/messages.json b/packages/web/public/i18n/locales/sv-SE/messages.json
index bf46becc..203b600f 100644
--- a/packages/web/public/i18n/locales/sv-SE/messages.json
+++ b/packages/web/public/i18n/locales/sv-SE/messages.json
@@ -1,39 +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"
- }
- }
+ "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"
+ }
+ }
}
diff --git a/packages/web/public/i18n/locales/sv-SE/moduleConfig.json b/packages/web/public/i18n/locales/sv-SE/moduleConfig.json
index 9002b00f..b9d1239a 100644
--- a/packages/web/public/i18n/locales/sv-SE/moduleConfig.json
+++ b/packages/web/public/i18n/locales/sv-SE/moduleConfig.json
@@ -1,448 +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"
- }
- }
+ "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"
+ }
+ }
}
diff --git a/packages/web/public/i18n/locales/sv-SE/nodes.json b/packages/web/public/i18n/locales/sv-SE/nodes.json
index 659c41be..119e0eaa 100644
--- a/packages/web/public/i18n/locales/sv-SE/nodes.json
+++ b/packages/web/public/i18n/locales/sv-SE/nodes.json
@@ -1,63 +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",
- "unknown": "-",
- "viaMqtt": ", via MQTT"
- },
- "lastHeardStatus": {
- "never": "Aldrig"
- }
- },
- "actions": {
- "added": "Tillagd",
- "removed": "Borttagen",
- "ignoreNode": "Ignorera nod",
- "unignoreNode": "Ta bort ignorering",
- "requestPosition": "Begär plats"
- }
+ "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"
+ }
}
diff --git a/packages/web/public/i18n/locales/sv-SE/ui.json b/packages/web/public/i18n/locales/sv-SE/ui.json
index a76914e7..40f1a5eb 100644
--- a/packages/web/public/i18n/locales/sv-SE/ui.json
+++ b/packages/web/public/i18n/locales/sv-SE/ui.json
@@ -1,228 +1,229 @@
{
- "navigation": {
- "title": "Navigering",
- "messages": "Meddelanden",
- "map": "Karta",
- "config": "Inställningar",
- "radioConfig": "Radioinställningar",
- "moduleConfig": "Modulinställningar",
- "channels": "Kanaler",
- "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}}"
- },
- "deviceName": {
- "title": "Enhetsnamn",
- "changeName": "Ändra enhetens namn",
- "placeholder": "Ange enhetsnamn"
- },
- "editDeviceName": "Redigera enhetsnamn"
- }
- },
- "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."
- },
- "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 (%)"
- },
- "batteryLevel": {
- "label": "Batterinivå (%)",
- "labelText": "Batterinivå (%): {{value}}"
- },
- "batteryVoltage": {
- "label": "Batterispänning (V)",
- "title": "Spänning"
- },
- "channelUtilization": {
- "label": "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": "Aldrig hörd"
- },
- "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.
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>GitHub0>",
- "dashboardLink": "Återvänd till <0>start0>",
- "detailsSummary": "Detaljer om felet",
- "errorMessageLabel": "Felmeddelande:",
- "stackTraceLabel": "Stackspårning:",
- "fallbackError": "{{error}}"
- },
- "footer": {
- "text": "Drivs av <0>▲ Vercel0> | Meshtastic® är ett registrerat varumärke som tillhör Meshtastic LLC. | <1>Juridisk information1>",
- "commitSha": "Commit SHA: {{sha}}"
- }
+ "navigation": {
+ "title": "Navigering",
+ "messages": "Meddelanden",
+ "map": "Karta",
+ "settings": "Settings",
+ "channels": "Kanaler",
+ "radioConfig": "Radioinställningar",
+ "deviceConfig": "Device Config",
+ "moduleConfig": "Modulinställningar",
+ "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": "Saved",
+ "description": "All configuration changes have been saved."
+ },
+ "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": "Airtime Util. (%)"
+ },
+ "batteryLevel": {
+ "label": "Batterinivå (%)",
+ "labelText": "Batterinivå (%): {{value}}"
+ },
+ "batteryVoltage": {
+ "label": "Batterispänning (V)",
+ "title": "Spänning"
+ },
+ "channelUtilization": {
+ "label": "Kanalutnyttjande (%)",
+ "short": "Channel Util. (%)"
+ },
+ "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": "Aldrig hörd"
+ },
+ "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.
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>GitHub0>",
+ "dashboardLink": "Återvänd till <0>start0>",
+ "detailsSummary": "Detaljer om felet",
+ "errorMessageLabel": "Felmeddelande:",
+ "stackTraceLabel": "Stackspårning:",
+ "fallbackError": "{{error}}"
+ },
+ "footer": {
+ "text": "Drivs av <0>▲ Vercel0> | Meshtastic® är ett registrerat varumärke som tillhör Meshtastic LLC. | <1>Juridisk information1>",
+ "commitSha": "Commit SHA: {{sha}}"
+ }
}
diff --git a/packages/web/public/i18n/locales/tr-TR/channels.json b/packages/web/public/i18n/locales/tr-TR/channels.json
index 04d91871..910b6cff 100644
--- a/packages/web/public/i18n/locales/tr-TR/channels.json
+++ b/packages/web/public/i18n/locales/tr-TR/channels.json
@@ -1,69 +1,71 @@
{
- "page": {
- "sectionLabel": "Kanallar",
- "channelName": "Kanal: {{channelName}}",
- "broadcastLabel": "Birincil",
- "channelIndex": "Ch {{index}}"
- },
- "validation": {
- "pskInvalid": "Lütfen geçerli bir {{bits}} bit PSK girin."
- },
- "settings": {
- "label": "Kanal Ayarları",
- "description": "Kripto ve MQTT genel ayarları"
- },
- "role": {
- "label": "Rol",
- "description": "Cihaz telemetrisi BİRİNCİL üzerinden gönderildi. Sadece bir BİRİNCİL izin verilir",
- "options": {
- "primary": "BİRİNCİL",
- "disabled": "DEVRE DIŞI",
- "secondary": "İKİNCİL"
- }
- },
- "psk": {
- "label": "Paylaşılan Anahtar",
- "description": "Desteklenen PSK uzunlukları: 256 bit, 128 bit, 8 bit, Boş (0 bit)",
- "generate": "Oluştur"
- },
- "name": {
- "label": "İsmi",
- "description": "12 bayt'tan küçük kanal için benzersiz bir ad, varsayılan olarak boş bırakın"
- },
- "uplinkEnabled": {
- "label": "Uplink Etkin",
- "description": "Yerel ağdan MQTT'ye mesaj gönderin"
- },
- "downlinkEnabled": {
- "label": "Downlink Etkin",
- "description": "MQTT'den yerel mesh ağa mesaj gönderin"
- },
- "positionPrecision": {
- "label": "Konum",
- "description": "Kanalla paylaşılacak konumun kesinliği. Devre dışı bırakılabilir.",
- "options": {
- "none": "Konumu paylaşma",
- "precise": "Tam Konum",
- "metric_km23": "23 kilometre içinde",
- "metric_km12": "12 kilometre içinde",
- "metric_km5_8": "5,8 kilometre içinde",
- "metric_km2_9": "2,9 kilometre içinde",
- "metric_km1_5": "1,5 kilometre içinde",
- "metric_m700": "700 metre içinde",
- "metric_m350": "350 metre içinde",
- "metric_m200": "200 metre içinde",
- "metric_m90": "90 metre içinde",
- "metric_m50": "50 metre içinde",
- "imperial_mi15": "15 mil içinde",
- "imperial_mi7_3": "7,3 mil içinde",
- "imperial_mi3_6": "3,6 mil içinde",
- "imperial_mi1_8": "1,8 mil içinde",
- "imperial_mi0_9": "0,9 mil içinde",
- "imperial_mi0_5": "0,5 mil içinde",
- "imperial_mi0_2": "0,2 mil içinde",
- "imperial_ft600": "600 fit içinde",
- "imperial_ft300": "300 fit içinde",
- "imperial_ft150": "150 fit içinde"
- }
- }
+ "page": {
+ "sectionLabel": "Kanallar",
+ "channelName": "Kanal: {{channelName}}",
+ "broadcastLabel": "Birincil",
+ "channelIndex": "Ch {{index}}",
+ "import": "İçeri aktar",
+ "export": "Dışa Aktar"
+ },
+ "validation": {
+ "pskInvalid": "Lütfen geçerli bir {{bits}} bit PSK girin."
+ },
+ "settings": {
+ "label": "Kanal Ayarları",
+ "description": "Kripto ve MQTT genel ayarları"
+ },
+ "role": {
+ "label": "Rol",
+ "description": "Cihaz telemetrisi BİRİNCİL üzerinden gönderildi. Sadece bir BİRİNCİL izin verilir",
+ "options": {
+ "primary": "BİRİNCİL",
+ "disabled": "DEVRE DIŞI",
+ "secondary": "İKİNCİL"
+ }
+ },
+ "psk": {
+ "label": "Paylaşılan Anahtar",
+ "description": "Desteklenen PSK uzunlukları: 256 bit, 128 bit, 8 bit, Boş (0 bit)",
+ "generate": "Oluştur"
+ },
+ "name": {
+ "label": "İsmi",
+ "description": "12 bayt'tan küçük kanal için benzersiz bir ad, varsayılan olarak boş bırakın"
+ },
+ "uplinkEnabled": {
+ "label": "Uplink Etkin",
+ "description": "Yerel ağdan MQTT'ye mesaj gönderin"
+ },
+ "downlinkEnabled": {
+ "label": "Downlink Etkin",
+ "description": "MQTT'den yerel mesh ağa mesaj gönderin"
+ },
+ "positionPrecision": {
+ "label": "Konum",
+ "description": "Kanalla paylaşılacak konumun kesinliği. Devre dışı bırakılabilir.",
+ "options": {
+ "none": "Konumu paylaşma",
+ "precise": "Tam Konum",
+ "metric_km23": "23 kilometre içinde",
+ "metric_km12": "12 kilometre içinde",
+ "metric_km5_8": "5,8 kilometre içinde",
+ "metric_km2_9": "2,9 kilometre içinde",
+ "metric_km1_5": "1,5 kilometre içinde",
+ "metric_m700": "700 metre içinde",
+ "metric_m350": "350 metre içinde",
+ "metric_m200": "200 metre içinde",
+ "metric_m90": "90 metre içinde",
+ "metric_m50": "50 metre içinde",
+ "imperial_mi15": "15 mil içinde",
+ "imperial_mi7_3": "7,3 mil içinde",
+ "imperial_mi3_6": "3,6 mil içinde",
+ "imperial_mi1_8": "1,8 mil içinde",
+ "imperial_mi0_9": "0,9 mil içinde",
+ "imperial_mi0_5": "0,5 mil içinde",
+ "imperial_mi0_2": "0,2 mil içinde",
+ "imperial_ft600": "600 fit içinde",
+ "imperial_ft300": "300 fit içinde",
+ "imperial_ft150": "150 fit içinde"
+ }
+ }
}
diff --git a/packages/web/public/i18n/locales/tr-TR/commandPalette.json b/packages/web/public/i18n/locales/tr-TR/commandPalette.json
index e77bf380..f6b7353a 100644
--- a/packages/web/public/i18n/locales/tr-TR/commandPalette.json
+++ b/packages/web/public/i18n/locales/tr-TR/commandPalette.json
@@ -15,7 +15,6 @@
"messages": "Mesajlar",
"map": "Harita",
"config": "Yapılandır",
- "channels": "Kanallar",
"nodes": "Düğümler"
}
},
@@ -45,7 +44,8 @@
"label": "Hata Ayıklama",
"command": {
"reconfigure": "Yeniden yapılandır",
- "clearAllStoredMessages": "Depolanan Tüm Mesajları Sil"
+ "clearAllStoredMessages": "Depolanan Tüm Mesajları Sil",
+ "clearAllStores": "Clear All Local Storage"
}
}
}
diff --git a/packages/web/public/i18n/locales/tr-TR/common.json b/packages/web/public/i18n/locales/tr-TR/common.json
index 8458153d..df4c8c2b 100644
--- a/packages/web/public/i18n/locales/tr-TR/common.json
+++ b/packages/web/public/i18n/locales/tr-TR/common.json
@@ -1,142 +1,157 @@
{
- "button": {
- "apply": "Uygula",
- "backupKey": "Yedekleme Anahtarı",
- "cancel": "İptal",
- "clearMessages": "Mesajları Sil",
- "close": "Kapat",
- "confirm": "Onayla",
- "delete": "Sil",
- "dismiss": "Vazgeç",
- "download": "Yükle",
- "export": "Dışa Aktar",
- "generate": "Oluştur",
- "regenerate": "Yeniden Oluştur",
- "import": "İçeri aktar",
- "message": "Mesaj",
- "now": "Şimdi",
- "ok": "Tamam",
- "print": "Yazdır",
- "remove": "Kaldır",
- "requestNewKeys": "Yeni Anahtar İste",
- "requestPosition": "Konum İste",
- "reset": "Sıfırla",
- "save": "Kaydet",
- "scanQr": "QR Kodu Tara",
- "traceRoute": "Rotayı Takip Et",
- "submit": "Gönder"
- },
- "app": {
- "title": "Meshtastic",
- "fullTitle": "Meshtastic Web İstemci"
- },
- "loading": "Yükleniyor...",
- "unit": {
- "cps": "CPS",
- "dbm": "dBm",
- "hertz": "Hz",
- "hop": {
- "one": "Hop",
- "plural": "Hop"
- },
- "hopsAway": {
- "one": "{{count}} hop uzaklıkta",
- "plural": "{{count}} hop uzaklıkta",
- "unknown": "Hop uzaklığı bilinmiyor"
- },
- "megahertz": "MHz",
- "raw": "ham",
- "meter": {
- "one": "Metre",
- "plural": "Metre",
- "suffix": "m"
- },
- "minute": {
- "one": "Dakika",
- "plural": "Dakika"
- },
- "hour": {
- "one": "Saat",
- "plural": "Saat"
- },
- "millisecond": {
- "one": "Milisaniye",
- "plural": "Milisaniye",
- "suffix": "ms"
- },
- "second": {
- "one": "Saniye",
- "plural": "Saniye"
- },
- "day": {
- "one": "Gün",
- "plural": "Gün"
- },
- "month": {
- "one": "Ay",
- "plural": "Ay"
- },
- "year": {
- "one": "Yıl",
- "plural": "Yıl"
- },
- "snr": "SNR",
- "volt": {
- "one": "Volt",
- "plural": "Volt",
- "suffix": "V"
- },
- "record": {
- "one": "Records",
- "plural": "Records"
- }
- },
- "security": {
- "0bit": "Boş",
- "8bit": "8 bit",
- "128bit": "128 bit",
- "256bit": "256 bit"
- },
- "unknown": {
- "longName": "Bilinmeyen",
- "shortName": "UNK",
- "notAvailable": "Müsait Değil",
- "num": "??"
- },
- "nodeUnknownPrefix": "!",
- "unset": "UNSET",
- "fallbackName": "Meshtastic {{last4}}",
- "node": "Node",
- "formValidation": {
- "unsavedChanges": "Kaydedilmemiş değişiklikler",
- "tooBig": {
- "string": "Çok uzun, {{maximum}} karaktere eşit yada daha az olması gerek.",
- "number": "Çok büyük, {{maximum}} sayıya eşit yada daha az olması gerek.",
- "bytes": "Too big, expected less than or equal to {{params.maximum}} bytes."
- },
- "tooSmall": {
- "string": "Too short, expected more than or equal to {{minimum}} characters.",
- "number": "Too small, expected a number larger than or equal to {{minimum}}."
- },
- "invalidFormat": {
- "ipv4": "Invalid format, expected an IPv4 address.",
- "key": "Invalid format, expected a Base64 encoded pre-shared key (PSK)."
- },
- "invalidType": {
- "number": "Invalid type, expected a number."
- },
- "pskLength": {
- "0bit": "Anahtarın boş olması gerekiyor.",
- "8bit": "Key is required to be an 8 bit pre-shared key (PSK).",
- "128bit": "Key is required to be a 128 bit pre-shared key (PSK).",
- "256bit": "Key is required to be a 256 bit pre-shared key (PSK)."
- },
- "required": {
- "generic": "Bu alan zorunludur.",
- "managed": "Nodeun yönetilmesi için en az bir tane yönetici anahtarı gerekli.",
- "key": "Anahtar gerekli."
- }
- },
- "yes": "Yes",
- "no": "No"
+ "button": {
+ "apply": "Uygula",
+ "backupKey": "Yedekleme Anahtarı",
+ "cancel": "İptal",
+ "clearMessages": "Mesajları Sil",
+ "close": "Kapat",
+ "confirm": "Onayla",
+ "delete": "Sil",
+ "dismiss": "Vazgeç",
+ "download": "Yükle",
+ "export": "Dışa Aktar",
+ "generate": "Oluştur",
+ "regenerate": "Yeniden Oluştur",
+ "import": "İçeri aktar",
+ "message": "Mesaj",
+ "now": "Şimdi",
+ "ok": "Tamam",
+ "print": "Yazdır",
+ "remove": "Kaldır",
+ "requestNewKeys": "Yeni Anahtar İste",
+ "requestPosition": "Konum İste",
+ "reset": "Sıfırla",
+ "save": "Kaydet",
+ "scanQr": "QR Kodu Tara",
+ "traceRoute": "Rotayı Takip Et",
+ "submit": "Gönder"
+ },
+ "app": {
+ "title": "Meshtastic",
+ "fullTitle": "Meshtastic Web İstemci"
+ },
+ "loading": "Yükleniyor...",
+ "unit": {
+ "cps": "CPS",
+ "dbm": "dBm",
+ "hertz": "Hz",
+ "hop": {
+ "one": "Hop",
+ "plural": "Hop"
+ },
+ "hopsAway": {
+ "one": "{{count}} hop uzaklıkta",
+ "plural": "{{count}} hop uzaklıkta",
+ "unknown": "Hop uzaklığı bilinmiyor"
+ },
+ "megahertz": "MHz",
+ "raw": "ham",
+ "meter": {
+ "one": "Metre",
+ "plural": "Metre",
+ "suffix": "m"
+ },
+ "kilometer": {
+ "one": "Kilometer",
+ "plural": "Kilometers",
+ "suffix": "km"
+ },
+ "minute": {
+ "one": "Dakika",
+ "plural": "Dakika"
+ },
+ "hour": {
+ "one": "Saat",
+ "plural": "Saat"
+ },
+ "millisecond": {
+ "one": "Milisaniye",
+ "plural": "Milisaniye",
+ "suffix": "ms"
+ },
+ "second": {
+ "one": "Saniye",
+ "plural": "Saniye"
+ },
+ "day": {
+ "one": "Gün",
+ "plural": "Gün",
+ "today": "Today",
+ "yesterday": "Yesterday"
+ },
+ "month": {
+ "one": "Ay",
+ "plural": "Ay"
+ },
+ "year": {
+ "one": "Yıl",
+ "plural": "Yıl"
+ },
+ "snr": "SNR",
+ "volt": {
+ "one": "Volt",
+ "plural": "Volt",
+ "suffix": "V"
+ },
+ "record": {
+ "one": "Records",
+ "plural": "Records"
+ },
+ "degree": {
+ "one": "Degree",
+ "plural": "Degrees",
+ "suffix": "°"
+ }
+ },
+ "security": {
+ "0bit": "Boş",
+ "8bit": "8 bit",
+ "128bit": "128 bit",
+ "256bit": "256 bit"
+ },
+ "unknown": {
+ "longName": "Bilinmeyen",
+ "shortName": "UNK",
+ "notAvailable": "Müsait Değil",
+ "num": "??"
+ },
+ "nodeUnknownPrefix": "!",
+ "unset": "UNSET",
+ "fallbackName": "Meshtastic {{last4}}",
+ "node": "Node",
+ "formValidation": {
+ "unsavedChanges": "Kaydedilmemiş değişiklikler",
+ "tooBig": {
+ "string": "Çok uzun, {{maximum}} karaktere eşit yada daha az olması gerek.",
+ "number": "Çok büyük, {{maximum}} sayıya eşit yada daha az olması gerek.",
+ "bytes": "Too big, expected less than or equal to {{params.maximum}} bytes."
+ },
+ "tooSmall": {
+ "string": "Too short, expected more than or equal to {{minimum}} characters.",
+ "number": "Too small, expected a number larger than or equal to {{minimum}}."
+ },
+ "invalidFormat": {
+ "ipv4": "Invalid format, expected an IPv4 address.",
+ "key": "Invalid format, expected a Base64 encoded pre-shared key (PSK)."
+ },
+ "invalidType": {
+ "number": "Invalid type, expected a number."
+ },
+ "pskLength": {
+ "0bit": "Anahtarın boş olması gerekiyor.",
+ "8bit": "Key is required to be an 8 bit pre-shared key (PSK).",
+ "128bit": "Key is required to be a 128 bit pre-shared key (PSK).",
+ "256bit": "Key is required to be a 256 bit pre-shared key (PSK)."
+ },
+ "required": {
+ "generic": "Bu alan zorunludur.",
+ "managed": "Nodeun yönetilmesi için en az bir tane yönetici anahtarı gerekli.",
+ "key": "Anahtar gerekli."
+ },
+ "invalidOverrideFreq": {
+ "number": "Invalid format, expected a value in the range 410-930 MHz or 0 (use default)."
+ }
+ },
+ "yes": "Yes",
+ "no": "No"
}
diff --git a/packages/web/public/i18n/locales/tr-TR/config.json b/packages/web/public/i18n/locales/tr-TR/config.json
new file mode 100644
index 00000000..36771713
--- /dev/null
+++ b/packages/web/public/i18n/locales/tr-TR/config.json
@@ -0,0 +1,458 @@
+{
+ "page": {
+ "title": "Ayarlar",
+ "tabUser": "Kullanıcı",
+ "tabChannels": "Kanallar",
+ "tabBluetooth": "Bluetooth",
+ "tabDevice": "Cihaz",
+ "tabDisplay": "Ekran",
+ "tabLora": "LoRa",
+ "tabNetwork": "Ağ",
+ "tabPosition": "Konum",
+ "tabPower": "Güç",
+ "tabSecurity": "Güvenlik"
+ },
+ "sidebar": {
+ "label": "Yapılandırma"
+ },
+ "device": {
+ "title": "Cihaz Ayarları",
+ "description": "Cihazınız için ayar",
+ "buttonPin": {
+ "description": "Buton pini geçersiz kılma",
+ "label": "Buton pini"
+ },
+ "buzzerPin": {
+ "description": "Buzzer pinini geçersiz kıl",
+ "label": "Buzer pini"
+ },
+ "disableTripleClick": {
+ "description": "Üçlü tıklamayı kapat",
+ "label": "Üçlü Tıklamayı Kapat"
+ },
+ "doubleTapAsButtonPress": {
+ "description": "Çift dokunuşu düğmeye basma olarak kabul edin",
+ "label": "Çift Dokunarak Düğmeye Bas"
+ },
+ "ledHeartbeatDisabled": {
+ "description": "Varsayılan LED yanıp sönmesini kapat",
+ "label": "LED Kalp Atışı Kapalı"
+ },
+ "nodeInfoBroadcastInterval": {
+ "description": "Ne sıklıkla node bilgi göndersin",
+ "label": "Node Bilgisi Yayın Aralığı"
+ },
+ "posixTimezone": {
+ "description": "The POSIX timezone string for the device",
+ "label": "POSIX Zaman Dilimi"
+ },
+ "rebroadcastMode": {
+ "description": "How to handle rebroadcasting",
+ "label": "Rebroadcast Mode"
+ },
+ "role": {
+ "description": "What role the device performs on the mesh",
+ "label": "Rol"
+ }
+ },
+ "bluetooth": {
+ "title": "Bluetooth Ayarları",
+ "description": "Bluetooth modül ayarları",
+ "note": "Not: Bazı cihazlar (ESP32) aynı anda Bluetooth ve WiFi kullanamazlar.",
+ "enabled": {
+ "description": "Bluetooth Aç ya da Kapat",
+ "label": "Etkin"
+ },
+ "pairingMode": {
+ "description": "Pin selection behaviour.",
+ "label": "Eşleştirme Modu"
+ },
+ "pin": {
+ "description": "Pin to use when pairing",
+ "label": "Pin"
+ }
+ },
+ "display": {
+ "description": "Settings for the device display",
+ "title": "Ekran Ayarları",
+ "headingBold": {
+ "description": "Bolden the heading text",
+ "label": "Bold Heading"
+ },
+ "carouselDelay": {
+ "description": "How fast to cycle through windows",
+ "label": "Carousel Delay"
+ },
+ "compassNorthTop": {
+ "description": "Fix north to the top of compass",
+ "label": "Compass North Top"
+ },
+ "displayMode": {
+ "description": "Screen layout variant",
+ "label": "Display Mode"
+ },
+ "displayUnits": {
+ "description": "Display metric or imperial units",
+ "label": "Display Units"
+ },
+ "flipScreen": {
+ "description": "Ekranı 180 derece dönder",
+ "label": "Ekranı Dönder"
+ },
+ "gpsDisplayUnits": {
+ "description": "Coordinate display format",
+ "label": "GPS format"
+ },
+ "oledType": {
+ "description": "Cihazın OLED ekran tipi",
+ "label": "OLED Tipi"
+ },
+ "screenTimeout": {
+ "description": "Turn off the display after this long",
+ "label": "Screen Timeout"
+ },
+ "twelveHourClock": {
+ "description": "12 saat formatını kullan",
+ "label": "12 saatlik zaman"
+ },
+ "wakeOnTapOrMotion": {
+ "description": "Cihazı uyandırmak için dokun veya hareket ettir",
+ "label": "Wake on Tap or Motion"
+ }
+ },
+ "lora": {
+ "title": "Mesh Ayarları",
+ "description": "Settings for the LoRa mesh",
+ "bandwidth": {
+ "description": "Channel bandwidth in MHz",
+ "label": "Bant genişliği"
+ },
+ "boostedRxGain": {
+ "description": "Boosted RX gain",
+ "label": "Boosted RX Gain"
+ },
+ "codingRate": {
+ "description": "The denominator of the coding rate",
+ "label": "Coding Rate"
+ },
+ "frequencyOffset": {
+ "description": "Frequency offset to correct for crystal calibration errors",
+ "label": "Frequency Offset"
+ },
+ "frequencySlot": {
+ "description": "LoRa kanal frekans numarası",
+ "label": "Frequency Slot"
+ },
+ "hopLimit": {
+ "description": "Maximum number of hops",
+ "label": "Hop Limiti"
+ },
+ "ignoreMqtt": {
+ "description": "Don't forward MQTT messages over the mesh",
+ "label": "MQTT'yi Yoksay"
+ },
+ "modemPreset": {
+ "description": "Modem preset to use",
+ "label": "Modem Ön Ayarı"
+ },
+ "okToMqtt": {
+ "description": "When set to true, this configuration indicates that the user approves the packet to be uploaded to MQTT. If set to false, remote nodes are requested not to forward packets to MQTT",
+ "label": "MQTT'ye Tamam"
+ },
+ "overrideDutyCycle": {
+ "description": "Görev Döngüsünü Geçersiz Kıl",
+ "label": "Görev Döngüsünü Geçersiz Kıl"
+ },
+ "overrideFrequency": {
+ "description": "Override frequency",
+ "label": "Override Frequency"
+ },
+ "region": {
+ "description": "Düğümün için bölge seç",
+ "label": "Bölge"
+ },
+ "spreadingFactor": {
+ "description": "Indicates the number of chirps per symbol",
+ "label": "Spreading Factor"
+ },
+ "transmitEnabled": {
+ "description": "Enable/Disable transmit (TX) from the LoRa radio",
+ "label": "Transmit Enabled"
+ },
+ "transmitPower": {
+ "description": "Max transmit power",
+ "label": "Transmit Power"
+ },
+ "usePreset": {
+ "description": "Use one of the predefined modem presets",
+ "label": "Use Preset"
+ },
+ "meshSettings": {
+ "description": "Settings for the LoRa mesh",
+ "label": "Mesh Ayarları"
+ },
+ "waveformSettings": {
+ "description": "Settings for the LoRa waveform",
+ "label": "Waveform Settings"
+ },
+ "radioSettings": {
+ "label": "Radyo Ayarları",
+ "description": "Settings for the LoRa radio"
+ }
+ },
+ "network": {
+ "title": "WiFi Ayarı",
+ "description": "WiFi radyo ayarı",
+ "note": "Not: Bazı cihazlar (ESP32) aynı anda Bluetooth ve WiFi kullanamazlar.",
+ "addressMode": {
+ "description": "Address assignment selection",
+ "label": "Address Mode"
+ },
+ "dns": {
+ "description": "DNS Sunucusu",
+ "label": "DNS"
+ },
+ "ethernetEnabled": {
+ "description": "Ethernet portunu aç ya da kapat",
+ "label": "Açık"
+ },
+ "gateway": {
+ "description": "Varsayılan Geçit",
+ "label": "Ağ geçidi"
+ },
+ "ip": {
+ "description": "IP Adresi",
+ "label": "IP"
+ },
+ "psk": {
+ "description": "Ağ şifresi",
+ "label": "PSK"
+ },
+ "ssid": {
+ "description": "Ağ adı",
+ "label": "SSID"
+ },
+ "subnet": {
+ "description": "Subnet Mask",
+ "label": "Alt ağ"
+ },
+ "wifiEnabled": {
+ "description": "Enable or disable the WiFi radio",
+ "label": "Açık"
+ },
+ "meshViaUdp": {
+ "label": "UDP ile Mesh"
+ },
+ "ntpServer": {
+ "label": "NTP Sunucusu"
+ },
+ "rsyslogServer": {
+ "label": "Rsyslog Server"
+ },
+ "ethernetConfigSettings": {
+ "description": "Ethernet port configuration",
+ "label": "Ethernet Config"
+ },
+ "ipConfigSettings": {
+ "description": "IP yapılandırması",
+ "label": "IP Ayarı"
+ },
+ "ntpConfigSettings": {
+ "description": "NTP configuration",
+ "label": "NTP Config"
+ },
+ "rsyslogConfigSettings": {
+ "description": "Rsyslog configuration",
+ "label": "Rsyslog Config"
+ },
+ "udpConfigSettings": {
+ "description": "UDP over Mesh configuration",
+ "label": "UDP Ayarları"
+ }
+ },
+ "position": {
+ "title": "Position Settings",
+ "description": "Settings for the position module",
+ "broadcastInterval": {
+ "description": "How often your position is sent out over the mesh",
+ "label": "Broadcast Interval"
+ },
+ "enablePin": {
+ "description": "GPS module enable pin override",
+ "label": "Enable Pin"
+ },
+ "fixedPosition": {
+ "description": "Don't report GPS position, but a manually-specified one",
+ "label": "Fixed Position"
+ },
+ "gpsMode": {
+ "description": "Configure whether device GPS is Enabled, Disabled, or Not Present",
+ "label": "GPS Modu"
+ },
+ "gpsUpdateInterval": {
+ "description": "How often a GPS fix should be acquired",
+ "label": "GPS Update Interval"
+ },
+ "positionFlags": {
+ "description": "Optional fields to include when assembling position messages. The more fields are selected, the larger the message will be leading to longer airtime usage and a higher risk of packet loss.",
+ "label": "Position Flags"
+ },
+ "receivePin": {
+ "description": "GPS module RX pin override",
+ "label": "Receive Pin"
+ },
+ "smartPositionEnabled": {
+ "description": "Only send position when there has been a meaningful change in location",
+ "label": "Enable Smart Position"
+ },
+ "smartPositionMinDistance": {
+ "description": "Minimum distance (in meters) that must be traveled before a position update is sent",
+ "label": "Smart Position Minimum Distance"
+ },
+ "smartPositionMinInterval": {
+ "description": "Minimum interval (in seconds) that must pass before a position update is sent",
+ "label": "Smart Position Minimum Interval"
+ },
+ "transmitPin": {
+ "description": "GPS module TX pin override",
+ "label": "Transmit Pin"
+ },
+ "intervalsSettings": {
+ "description": "How often to send position updates",
+ "label": "Intervals"
+ },
+ "flags": {
+ "placeholder": "Select position flags...",
+ "altitude": "Rakım",
+ "altitudeGeoidalSeparation": "Altitude Geoidal Separation",
+ "altitudeMsl": "Altitude is Mean Sea Level",
+ "dop": "Dilution of precision (DOP) PDOP used by default",
+ "hdopVdop": "If DOP is set, use HDOP / VDOP values instead of PDOP",
+ "numSatellites": "Uydu sayısı",
+ "sequenceNumber": "Sequence number",
+ "timestamp": "Zaman Damgası",
+ "unset": "Ayarlanmamış",
+ "vehicleHeading": "Vehicle heading",
+ "vehicleSpeed": "Vehicle speed"
+ }
+ },
+ "power": {
+ "adcMultiplierOverride": {
+ "description": "Used for tweaking battery voltage reading",
+ "label": "ADC Multiplier Override ratio"
+ },
+ "ina219Address": {
+ "description": "Address of the INA219 battery monitor",
+ "label": "INA219 Address"
+ },
+ "lightSleepDuration": {
+ "description": "How long the device will be in light sleep for",
+ "label": "Light Sleep Duration"
+ },
+ "minimumWakeTime": {
+ "description": "Minimum amount of time the device will stay awake for after receiving a packet",
+ "label": "Minimum Wake Time"
+ },
+ "noConnectionBluetoothDisabled": {
+ "description": "If the device does not receive a Bluetooth connection, the BLE radio will be disabled after this long",
+ "label": "No Connection Bluetooth Disabled"
+ },
+ "powerSavingEnabled": {
+ "description": "Select if powered from a low-current source (i.e. solar), to minimize power consumption as much as possible.",
+ "label": "Güç tasarrufu modunu etkinleştir"
+ },
+ "shutdownOnBatteryDelay": {
+ "description": "Automatically shutdown node after this long when on battery, 0 for indefinite",
+ "label": "Shutdown on battery delay"
+ },
+ "superDeepSleepDuration": {
+ "description": "How long the device will be in super deep sleep for",
+ "label": "Super Deep Sleep Duration"
+ },
+ "powerConfigSettings": {
+ "description": "Settings for the power module",
+ "label": "Güç Ayarı"
+ },
+ "sleepSettings": {
+ "description": "Sleep settings for the power module",
+ "label": "Uyku Ayarları"
+ }
+ },
+ "security": {
+ "description": "Settings for the Security configuration",
+ "title": "Security Settings",
+ "button_backupKey": "Yedekleme Anahtarı",
+ "adminChannelEnabled": {
+ "description": "Gelen cihaza güvenli olmayan eski yönetici kanalı üzerinde kontrol izni verin",
+ "label": "Eski Yöneticiye İzin Ver"
+ },
+ "enableDebugLogApi": {
+ "description": "Output live debug logging over serial, view and export position-redacted device logs over Bluetooth",
+ "label": "Enable Debug Log API"
+ },
+ "managed": {
+ "description": "If enabled, device configuration options are only able to be changed remotely by a Remote Admin node via admin messages. Do not enable this option unless at least one suitable Remote Admin node has been setup, and the public key is stored in one of the fields above.",
+ "label": "Managed"
+ },
+ "privateKey": {
+ "description": "Used to create a shared key with a remote device",
+ "label": "Özel Anahtar"
+ },
+ "publicKey": {
+ "description": "Sent out to other nodes on the mesh to allow them to compute a shared secret key",
+ "label": "Genel Anahtar"
+ },
+ "primaryAdminKey": {
+ "description": "The primary public key authorized to send admin messages to this node",
+ "label": "Primary Admin Key"
+ },
+ "secondaryAdminKey": {
+ "description": "The secondary public key authorized to send admin messages to this node",
+ "label": "Secondary Admin Key"
+ },
+ "serialOutputEnabled": {
+ "description": "Serial Console over the Stream API",
+ "label": "Serial Output Enabled"
+ },
+ "tertiaryAdminKey": {
+ "description": "The tertiary public key authorized to send admin messages to this node",
+ "label": "Tertiary Admin Key"
+ },
+ "adminSettings": {
+ "description": "Yönetici Ayarı",
+ "label": "Yönetici Ayarları"
+ },
+ "loggingSettings": {
+ "description": "Settings for Logging",
+ "label": "Logging Settings"
+ }
+ },
+ "user": {
+ "title": "User Settings",
+ "description": "Configure your device name and identity settings",
+ "longName": {
+ "label": "Uzun Ad",
+ "description": "Your full display name (1-40 characters)",
+ "validation": {
+ "min": "Long name must be at least 1 character",
+ "max": "Long name must be at most 40 characters"
+ }
+ },
+ "shortName": {
+ "label": "Kısa Ad",
+ "description": "Your abbreviated name (2-4 characters)",
+ "validation": {
+ "min": "Short name must be at least 2 characters",
+ "max": "Short name must be at most 4 characters"
+ }
+ },
+ "isUnmessageable": {
+ "label": "Mesaj gönderilemez",
+ "description": "Used to identify unmonitored or infrastructure nodes so that messaging is not available to nodes that will never respond."
+ },
+ "isLicensed": {
+ "label": "Lisanslı amatör radyo",
+ "description": "Enable if you are a licensed amateur radio operator, enabling this option disables encryption and is not compatible with the default Meshtastic network."
+ }
+ }
+}
diff --git a/packages/web/public/i18n/locales/tr-TR/dashboard.json b/packages/web/public/i18n/locales/tr-TR/dashboard.json
index a04d05fd..5815cf25 100644
--- a/packages/web/public/i18n/locales/tr-TR/dashboard.json
+++ b/packages/web/public/i18n/locales/tr-TR/dashboard.json
@@ -1,12 +1,12 @@
{
- "dashboard": {
- "title": "Bağlanan Cihazlar",
- "description": "Bağlanan Meshtastic cihazlarını yönet.",
- "connectionType_ble": "BLE",
- "connectionType_serial": "Seri",
- "connectionType_network": "Ağ",
- "noDevicesTitle": "Bağlı cihaz yok",
- "noDevicesDescription": "Başlamak için yeni cihaz bağla.",
- "button_newConnection": "Yeni Bağlantı"
- }
+ "dashboard": {
+ "title": "Bağlanan Cihazlar",
+ "description": "Bağlanan Meshtastic cihazlarını yönet.",
+ "connectionType_ble": "BLE",
+ "connectionType_serial": "Seri",
+ "connectionType_network": "Ağ",
+ "noDevicesTitle": "Bağlı cihaz yok",
+ "noDevicesDescription": "Başlamak için yeni cihaz bağla.",
+ "button_newConnection": "Yeni Bağlantı"
+ }
}
diff --git a/packages/web/public/i18n/locales/tr-TR/dialog.json b/packages/web/public/i18n/locales/tr-TR/dialog.json
index a434d1d4..3166643f 100644
--- a/packages/web/public/i18n/locales/tr-TR/dialog.json
+++ b/packages/web/public/i18n/locales/tr-TR/dialog.json
@@ -1,193 +1,221 @@
{
- "deleteMessages": {
- "description": "Bu işlem tüm mesaj geçmişini temizleyecektir. Bu işlem geri alınamaz. Devam etmek istediğinizden emin misiniz?",
- "title": "Tüm Mesajları Sil"
- },
- "deviceName": {
- "description": "Yapılandırma kaydedildikten sonra Cihaz yeniden başlatılacaktır.",
- "longName": "Uzun Ad",
- "shortName": "Kısa Ad",
- "title": "Cihazın Adını Değiştir",
- "validation": {
- "longNameMax": "Long name must not be more than 40 characters",
- "shortNameMax": "Short name must not be more than 4 characters",
- "longNameMin": "Long name must have at least 1 character",
- "shortNameMin": "Short name must have at least 1 character"
- }
- },
- "import": {
- "description": "The current LoRa configuration will be overridden.",
- "error": {
- "invalidUrl": "Invalid Meshtastic URL"
- },
- "channelPrefix": "Channel: ",
- "channelSetUrl": "Channel Set/QR Code URL",
- "channels": "Channels:",
- "usePreset": "Use Preset?",
- "title": "Import Channel Set"
- },
- "locationResponse": {
- "title": "Location: {{identifier}}",
- "altitude": "Altitude: ",
- "coordinates": "Coordinates: ",
- "noCoordinates": "No Coordinates"
- },
- "pkiRegenerateDialog": {
- "title": "Regenerate Pre-Shared Key?",
- "description": "Are you sure you want to regenerate the pre-shared key?",
- "regenerate": "Regenerate"
- },
- "newDeviceDialog": {
- "title": "Connect New Device",
- "https": "https",
- "http": "http",
- "tabHttp": "HTTP",
- "tabBluetooth": "Bluetooth",
- "tabSerial": "Seri",
- "useHttps": "Use HTTPS",
- "connecting": "Connecting...",
- "connect": "Bağlan",
- "connectionFailedAlert": {
- "title": "Connection Failed",
- "descriptionPrefix": "Could not connect to the device. ",
- "httpsHint": "If using HTTPS, you may need to accept a self-signed certificate first. ",
- "openLinkPrefix": "Please open ",
- "openLinkSuffix": " in a new tab",
- "acceptTlsWarningSuffix": ", accept any TLS warnings if prompted, then try again",
- "learnMoreLink": "Learn more"
- },
- "httpConnection": {
- "label": "IP Address/Hostname",
- "placeholder": "000.000.000.000 / meshtastic.local"
- },
- "serialConnection": {
- "noDevicesPaired": "No devices paired yet.",
- "newDeviceButton": "New device",
- "deviceIdentifier": "# {{index}} - {{vendorId}} - {{productId}}"
- },
- "bluetoothConnection": {
- "noDevicesPaired": "No devices paired yet.",
- "newDeviceButton": "New device",
- "connectionFailed": "Connection failed",
- "deviceDisconnected": "Device disconnected",
- "unknownDevice": "Bilinmeyen Cihaz",
- "errorLoadingDevices": "Cihazları yüklerken hata oluştu",
- "unknownErrorLoadingDevices": "Cihazları yüklerken bilinmeyen hata oluştu"
- },
- "validation": {
- "requiresWebBluetooth": "Bu bağlantı tipi <0>Web Bluetooth0> gerektirir. Lütfen desteklenen bir tarayıcı kullan, Chrome yada Edge gibi.",
- "requiresWebSerial": "Bu bağlantı tipi <0>Web Serial0> gerektirir. Lütfen desteklenen bir tarayıcı kullan, Chrome yada Edge gibi.",
- "requiresSecureContext": "This application requires a <0>secure context0>. Please connect using HTTPS or localhost.",
- "additionallyRequiresSecureContext": "Additionally, it requires a <0>secure context0>. Please connect using HTTPS or localhost."
- }
- },
- "nodeDetails": {
- "message": "Mesaj",
- "requestPosition": "Request Position",
- "traceRoute": "Trace Route",
- "airTxUtilization": "Air TX utilization",
- "allRawMetrics": "All Raw Metrics:",
- "batteryLevel": "Battery level",
- "channelUtilization": "Channel utilization",
- "details": "Details:",
- "deviceMetrics": "Device Metrics:",
- "hardware": "Donanım: ",
- "lastHeard": "Last Heard: ",
- "nodeHexPrefix": "Node Hex: ",
- "nodeNumber": "Node Number: ",
- "position": "Position:",
- "role": "Rol: ",
- "uptime": "Çalışma süresi: ",
- "voltage": "Voltaj",
- "title": "{{identifier}} Node Detayları",
- "ignoreNode": "Node yoksay",
- "removeNode": "Node sil",
- "unignoreNode": "Node yoksaymayı bırak",
- "security": "Security:",
- "publicKey": "Public Key: ",
- "messageable": "Messageable: ",
- "KeyManuallyVerifiedTrue": "Public Key has been manually verified",
- "KeyManuallyVerifiedFalse": "Public Key is not manually verified"
- },
- "pkiBackup": {
- "loseKeysWarning": "Eğer anahtarınızı kaybederseniz cihazınızı sıfırlamalısınız.",
- "secureBackup": "Açık ve gizli anahtarınızı yedekleyin ve güvenli bir şekilde depolayın!",
- "footer": "=== ANAHTAR SONU ===",
- "header": "=== MESHTASTIC ANAHTARI {{longName}} ({{shortName}}) İÇİN ===",
- "privateKey": "Gizli Anahtar:",
- "publicKey": "Açık Anahtar:",
- "fileName": "meshtastic_keys_{{longName}}_{{shortName}}.txt",
- "title": "Anahtarları Yedekle"
- },
- "pkiBackupReminder": {
- "description": "We recommend backing up your key data regularly. Would you like to back up now?",
- "title": "Backup Reminder",
- "remindLaterPrefix": "Remind me in",
- "remindNever": "Never remind me",
- "backupNow": "Back up now"
- },
- "pkiRegenerate": {
- "description": "Are you sure you want to regenerate key pair?",
- "title": "Regenerate Key Pair"
- },
- "qr": {
- "addChannels": "Kanal Ekle",
- "replaceChannels": "Kanalları Değiştir",
- "description": "Mevcut LoRa yapılandırması da paylaşılacak.",
- "sharableUrl": "Paylaşılabilir URL",
- "title": "QR kod oluştur"
- },
- "reboot": {
- "title": "Reboot device",
- "description": "Reboot now or schedule a reboot of the connected node. Optionally, you can choose to reboot into OTA (Over-the-Air) mode.",
- "ota": "Reboot into OTA mode",
- "enterDelay": "Enter delay",
- "scheduled": "Reboot has been scheduled",
- "schedule": "Schedule reboot",
- "now": "Reboot now",
- "cancel": "Cancel scheduled reboot"
- },
- "refreshKeys": {
- "description": {
- "acceptNewKeys": "This will remove the node from device and request new keys.",
- "keyMismatchReasonSuffix": ". This is due to the remote node's current public key does not match the previously stored key for this node.",
- "unableToSendDmPrefix": "Your node is unable to send a direct message to node: "
- },
- "acceptNewKeys": "Accept New Keys",
- "title": "Keys Mismatch - {{identifier}}"
- },
- "removeNode": {
- "description": "Are you sure you want to remove this Node?",
- "title": "Remove Node?"
- },
- "shutdown": {
- "title": "Kapatmayı Planla",
- "description": "Turn off the connected node after x minutes."
- },
- "traceRoute": {
- "routeToDestination": "Route to destination:",
- "routeBack": "Route back:"
- },
- "tracerouteResponse": {
- "title": "Traceroute: {{identifier}}"
- },
- "unsafeRoles": {
- "confirmUnderstanding": "Evet, ne yaptığımı biliyorum",
- "conjunction": " and the blog post about ",
- "postamble": " and understand the implications of changing the role.",
- "preamble": "Okudum ",
- "choosingRightDeviceRole": "Doğru Cihaz Rolünü Seç",
- "deviceRoleDocumentation": "Cihaz Rolü Dökümanları",
- "title": "Emin misiniz?"
- },
- "managedMode": {
- "confirmUnderstanding": "Evet, ne yaptığımı biliyorum",
- "title": "Emin misiniz?",
- "description": "Yönetilen Modun etkinleştirilmesi, istemci uygulamalarının (web istemcisi dahil) bir radyoya yapılandırma yazmasını engeller. Etkinleştirildikten sonra, radyo yapılandırmaları yalnızca Uzak Yönetici mesajları aracılığıyla değiştirilebilir. Bu ayar, uzak düğüm yönetimi için gerekli değildir."
- },
- "clientNotification": {
- "title": "Client Notification",
- "TraceRoute can only be sent once every 30 seconds": "TraceRoute can only be sent once every 30 seconds",
- "Compromised keys were detected and regenerated.": "Compromised keys were detected and regenerated."
- }
+ "deleteMessages": {
+ "description": "Bu işlem tüm mesaj geçmişini temizleyecektir. Bu işlem geri alınamaz. Devam etmek istediğinizden emin misiniz?",
+ "title": "Tüm Mesajları Sil"
+ },
+ "deviceName": {
+ "description": "Yapılandırma kaydedildikten sonra Cihaz yeniden başlatılacaktır.",
+ "longName": "Uzun Ad",
+ "shortName": "Kısa Ad",
+ "title": "Cihazın Adını Değiştir",
+ "validation": {
+ "longNameMax": "Long name must not be more than 40 characters",
+ "shortNameMax": "Short name must not be more than 4 characters",
+ "longNameMin": "Long name must have at least 1 character",
+ "shortNameMin": "Short name must have at least 1 character"
+ }
+ },
+ "import": {
+ "description": "The current LoRa configuration will be overridden.",
+ "error": {
+ "invalidUrl": "Invalid Meshtastic URL"
+ },
+ "channelPrefix": "Channel: ",
+ "primary": "Primary ",
+ "doNotImport": "No not import",
+ "channelName": "İsmi",
+ "channelSlot": "Yuva",
+ "channelSetUrl": "Channel Set/QR Code URL",
+ "useLoraConfig": "Import LoRa Config",
+ "presetDescription": "The current LoRa Config will be replaced.",
+ "title": "Import Channel Set"
+ },
+ "locationResponse": {
+ "title": "Location: {{identifier}}",
+ "altitude": "Altitude: ",
+ "coordinates": "Coordinates: ",
+ "noCoordinates": "No Coordinates"
+ },
+ "pkiRegenerateDialog": {
+ "title": "Regenerate Pre-Shared Key?",
+ "description": "Are you sure you want to regenerate the pre-shared key?",
+ "regenerate": "Regenerate"
+ },
+ "newDeviceDialog": {
+ "title": "Connect New Device",
+ "https": "https",
+ "http": "http",
+ "tabHttp": "HTTP",
+ "tabBluetooth": "Bluetooth",
+ "tabSerial": "Seri",
+ "useHttps": "Use HTTPS",
+ "connecting": "Connecting...",
+ "connect": "Bağlan",
+ "connectionFailedAlert": {
+ "title": "Connection Failed",
+ "descriptionPrefix": "Could not connect to the device. ",
+ "httpsHint": "If using HTTPS, you may need to accept a self-signed certificate first. ",
+ "openLinkPrefix": "Please open ",
+ "openLinkSuffix": " in a new tab",
+ "acceptTlsWarningSuffix": ", accept any TLS warnings if prompted, then try again",
+ "learnMoreLink": "Learn more"
+ },
+ "httpConnection": {
+ "label": "IP Address/Hostname",
+ "placeholder": "000.000.000.000 / meshtastic.local"
+ },
+ "serialConnection": {
+ "noDevicesPaired": "No devices paired yet.",
+ "newDeviceButton": "New device",
+ "deviceIdentifier": "# {{index}} - {{vendorId}} - {{productId}}"
+ },
+ "bluetoothConnection": {
+ "noDevicesPaired": "No devices paired yet.",
+ "newDeviceButton": "New device",
+ "connectionFailed": "Connection failed",
+ "deviceDisconnected": "Device disconnected",
+ "unknownDevice": "Bilinmeyen Cihaz",
+ "errorLoadingDevices": "Cihazları yüklerken hata oluştu",
+ "unknownErrorLoadingDevices": "Cihazları yüklerken bilinmeyen hata oluştu"
+ },
+ "validation": {
+ "requiresWebBluetooth": "Bu bağlantı tipi <0>Web Bluetooth0> gerektirir. Lütfen desteklenen bir tarayıcı kullan, Chrome yada Edge gibi.",
+ "requiresWebSerial": "Bu bağlantı tipi <0>Web Serial0> gerektirir. Lütfen desteklenen bir tarayıcı kullan, Chrome yada Edge gibi.",
+ "requiresSecureContext": "This application requires a <0>secure context0>. Please connect using HTTPS or localhost.",
+ "additionallyRequiresSecureContext": "Additionally, it requires a <0>secure context0>. Please connect using HTTPS or localhost."
+ }
+ },
+ "nodeDetails": {
+ "message": "Mesaj",
+ "requestPosition": "Request Position",
+ "traceRoute": "Trace Route",
+ "airTxUtilization": "Air TX utilization",
+ "allRawMetrics": "All Raw Metrics:",
+ "batteryLevel": "Battery level",
+ "channelUtilization": "Channel utilization",
+ "details": "Details:",
+ "deviceMetrics": "Device Metrics:",
+ "hardware": "Donanım: ",
+ "lastHeard": "Last Heard: ",
+ "nodeHexPrefix": "Node Hex: ",
+ "nodeNumber": "Node Number: ",
+ "position": "Position:",
+ "role": "Rol: ",
+ "uptime": "Çalışma süresi: ",
+ "voltage": "Voltaj",
+ "title": "{{identifier}} Node Detayları",
+ "ignoreNode": "Node yoksay",
+ "removeNode": "Node sil",
+ "unignoreNode": "Node yoksaymayı bırak",
+ "security": "Security:",
+ "publicKey": "Public Key: ",
+ "messageable": "Messageable: ",
+ "KeyManuallyVerifiedTrue": "Public Key has been manually verified",
+ "KeyManuallyVerifiedFalse": "Public Key is not manually verified"
+ },
+ "pkiBackup": {
+ "loseKeysWarning": "Eğer anahtarınızı kaybederseniz cihazınızı sıfırlamalısınız.",
+ "secureBackup": "Açık ve gizli anahtarınızı yedekleyin ve güvenli bir şekilde depolayın!",
+ "footer": "=== ANAHTAR SONU ===",
+ "header": "=== MESHTASTIC ANAHTARI {{longName}} ({{shortName}}) İÇİN ===",
+ "privateKey": "Gizli Anahtar:",
+ "publicKey": "Açık Anahtar:",
+ "fileName": "meshtastic_keys_{{longName}}_{{shortName}}.txt",
+ "title": "Anahtarları Yedekle"
+ },
+ "pkiBackupReminder": {
+ "description": "We recommend backing up your key data regularly. Would you like to back up now?",
+ "title": "Backup Reminder",
+ "remindLaterPrefix": "Remind me in",
+ "remindNever": "Never remind me",
+ "backupNow": "Back up now"
+ },
+ "pkiRegenerate": {
+ "description": "Are you sure you want to regenerate key pair?",
+ "title": "Regenerate Key Pair"
+ },
+ "qr": {
+ "addChannels": "Kanal Ekle",
+ "replaceChannels": "Kanalları Değiştir",
+ "description": "Mevcut LoRa yapılandırması da paylaşılacak.",
+ "sharableUrl": "Paylaşılabilir URL",
+ "title": "QR kod oluştur"
+ },
+ "reboot": {
+ "title": "Reboot device",
+ "description": "Reboot now or schedule a reboot of the connected node. Optionally, you can choose to reboot into OTA (Over-the-Air) mode.",
+ "ota": "Reboot into OTA mode",
+ "enterDelay": "Enter delay",
+ "scheduled": "Reboot has been scheduled",
+ "schedule": "Schedule reboot",
+ "now": "Reboot now",
+ "cancel": "Cancel scheduled reboot"
+ },
+ "refreshKeys": {
+ "description": {
+ "acceptNewKeys": "This will remove the node from device and request new keys.",
+ "keyMismatchReasonSuffix": ". This is due to the remote node's current public key does not match the previously stored key for this node.",
+ "unableToSendDmPrefix": "Your node is unable to send a direct message to node: "
+ },
+ "acceptNewKeys": "Accept New Keys",
+ "title": "Keys Mismatch - {{identifier}}"
+ },
+ "removeNode": {
+ "description": "Are you sure you want to remove this Node?",
+ "title": "Remove Node?"
+ },
+ "shutdown": {
+ "title": "Kapatmayı Planla",
+ "description": "Turn off the connected node after x minutes."
+ },
+ "traceRoute": {
+ "routeToDestination": "Route to destination:",
+ "routeBack": "Route back:"
+ },
+ "tracerouteResponse": {
+ "title": "Traceroute: {{identifier}}"
+ },
+ "unsafeRoles": {
+ "confirmUnderstanding": "Evet, ne yaptığımı biliyorum",
+ "conjunction": " and the blog post about ",
+ "postamble": " and understand the implications of changing the role.",
+ "preamble": "Okudum ",
+ "choosingRightDeviceRole": "Doğru Cihaz Rolünü Seç",
+ "deviceRoleDocumentation": "Cihaz Rolü Dökümanları",
+ "title": "Emin misiniz?"
+ },
+ "managedMode": {
+ "confirmUnderstanding": "Evet, ne yaptığımı biliyorum",
+ "title": "Emin misiniz?",
+ "description": "Yönetilen Modun etkinleştirilmesi, istemci uygulamalarının (web istemcisi dahil) bir radyoya yapılandırma yazmasını engeller. Etkinleştirildikten sonra, radyo yapılandırmaları yalnızca Uzak Yönetici mesajları aracılığıyla değiştirilebilir. Bu ayar, uzak düğüm yönetimi için gerekli değildir."
+ },
+ "clientNotification": {
+ "title": "Client Notification",
+ "TraceRoute can only be sent once every 30 seconds": "TraceRoute can only be sent once every 30 seconds",
+ "Compromised keys were detected and regenerated.": "Compromised keys were detected and regenerated."
+ },
+ "resetNodeDb": {
+ "title": "Reset Node Database",
+ "description": "This will clear all nodes from the connected device's node database and clear all message history in the client. This cannot be undone. Are you sure you want to continue?",
+ "confirm": "Reset Node Database",
+ "failedTitle": "There was an error resetting the Node DB. Please try again."
+ },
+ "clearAllStores": {
+ "title": "Clear All Local Storage",
+ "description": "This will clear all locally stored data, including message history and node databases for all previously connected devices. This will require you to reconnect to your node once complete and cannot be undone. Are you sure you want to continue?",
+ "confirm": "Clear all local storage",
+ "failedTitle": "There was an error clearing local storage. Please try again."
+ },
+ "factoryResetDevice": {
+ "title": "Cihazı Fabrika Ayarlarına Sıfırlayın",
+ "description": "This will factory reset the connected device, erasing all configurations and data on the device as well as all nodes and messages saved in the client. This cannot be undone. Are you sure you want to continue?",
+ "confirm": "Cihazı Fabrika Ayarlarına Sıfırlayın",
+ "failedTitle": "There was an error performing the factory reset. Please try again."
+ },
+ "factoryResetConfig": {
+ "title": "Fabrika Ayarları Yapılandırması",
+ "description": "This will factory reset the configuration on the connected device, erasing all configurations on the device. This cannot be undone. Are you sure you want to continue?",
+ "confirm": "Fabrika Ayarları Yapılandırması",
+ "failedTitle": "There was an error performing the factory reset. Please try again."
+ }
}
diff --git a/packages/web/public/i18n/locales/tr-TR/map.json b/packages/web/public/i18n/locales/tr-TR/map.json
new file mode 100644
index 00000000..e14c3dde
--- /dev/null
+++ b/packages/web/public/i18n/locales/tr-TR/map.json
@@ -0,0 +1,38 @@
+{
+ "maplibre": {
+ "GeolocateControl.FindMyLocation": "Find my location",
+ "NavigationControl.ZoomIn": "Zoom in",
+ "NavigationControl.ZoomOut": "Zoom out",
+ "CooperativeGesturesHandler.WindowsHelpText": "Use Ctrl + scroll to zoom the map",
+ "CooperativeGesturesHandler.MacHelpText": "Use ⌘ + scroll to zoom the map",
+ "CooperativeGesturesHandler.MobileHelpText": "Use two fingers to move the map"
+ },
+ "layerTool": {
+ "nodeMarkers": "Show nodes",
+ "directNeighbors": "Show direct connections",
+ "remoteNeighbors": "Show remote connections",
+ "positionPrecision": "Show position precision",
+ "traceroutes": "Show traceroutes",
+ "waypoints": "Show waypoints"
+ },
+ "mapMenu": {
+ "locateAria": "Locate my node",
+ "layersAria": "Change map style"
+ },
+ "waypointDetail": {
+ "edit": "Düzenle",
+ "description": "Description:",
+ "createdBy": "Edited by:",
+ "createdDate": "Created:",
+ "updated": "Updated:",
+ "expires": "Expires:",
+ "distance": "Distance:",
+ "bearing": "Absolute bearing:",
+ "lockedTo": "Locked by:",
+ "latitude": "Latitude:",
+ "longitude": "Longitude:"
+ },
+ "myNode": {
+ "tooltip": "This device"
+ }
+}
diff --git a/packages/web/public/i18n/locales/tr-TR/messages.json b/packages/web/public/i18n/locales/tr-TR/messages.json
index 334caadc..e2420ea5 100644
--- a/packages/web/public/i18n/locales/tr-TR/messages.json
+++ b/packages/web/public/i18n/locales/tr-TR/messages.json
@@ -1,39 +1,39 @@
{
- "page": {
- "title": "Messages: {{chatName}}",
- "placeholder": "Enter Message"
- },
- "emptyState": {
- "title": "Select a Chat",
- "text": "No messages yet."
- },
- "selectChatPrompt": {
- "text": "Select a channel or node to start messaging."
- },
- "sendMessage": {
- "placeholder": "Enter your message here...",
- "sendButton": "Gönder"
- },
- "actionsMenu": {
- "addReactionLabel": "Add Reaction",
- "replyLabel": "Yanıtla"
- },
- "deliveryStatus": {
- "delivered": {
- "label": "Message delivered",
- "displayText": "Message delivered"
- },
- "failed": {
- "label": "Message delivery failed",
- "displayText": "Delivery failed"
- },
- "unknown": {
- "label": "Message status unknown",
- "displayText": "Unknown state"
- },
- "waiting": {
- "label": "Sending message",
- "displayText": "Waiting for delivery"
- }
- }
+ "page": {
+ "title": "Messages: {{chatName}}",
+ "placeholder": "Enter Message"
+ },
+ "emptyState": {
+ "title": "Select a Chat",
+ "text": "No messages yet."
+ },
+ "selectChatPrompt": {
+ "text": "Select a channel or node to start messaging."
+ },
+ "sendMessage": {
+ "placeholder": "Enter your message here...",
+ "sendButton": "Gönder"
+ },
+ "actionsMenu": {
+ "addReactionLabel": "Add Reaction",
+ "replyLabel": "Yanıtla"
+ },
+ "deliveryStatus": {
+ "delivered": {
+ "label": "Message delivered",
+ "displayText": "Message delivered"
+ },
+ "failed": {
+ "label": "Message delivery failed",
+ "displayText": "Delivery failed"
+ },
+ "unknown": {
+ "label": "Message status unknown",
+ "displayText": "Unknown state"
+ },
+ "waiting": {
+ "label": "Sending message",
+ "displayText": "Waiting for delivery"
+ }
+ }
}
diff --git a/packages/web/public/i18n/locales/tr-TR/moduleConfig.json b/packages/web/public/i18n/locales/tr-TR/moduleConfig.json
index 71a6115d..a1ada1e2 100644
--- a/packages/web/public/i18n/locales/tr-TR/moduleConfig.json
+++ b/packages/web/public/i18n/locales/tr-TR/moduleConfig.json
@@ -1,448 +1,448 @@
{
- "page": {
- "tabAmbientLighting": "Ortam Işıklandırması",
- "tabAudio": "Ses",
- "tabCannedMessage": "Canned",
- "tabDetectionSensor": "Algılama Sensörü",
- "tabExternalNotification": "Ext Notif",
- "tabMqtt": "MQTT",
- "tabNeighborInfo": "Komşu Bilgisi",
- "tabPaxcounter": "Pax sayacı",
- "tabRangeTest": "Mesafe Testi",
- "tabSerial": "Seri",
- "tabStoreAndForward": "S&F",
- "tabTelemetry": "Telemetri"
- },
- "ambientLighting": {
- "title": "Ambient Lighting Settings",
- "description": "Settings for the Ambient Lighting module",
- "ledState": {
- "label": "LED State",
- "description": "Sets LED to on or off"
- },
- "current": {
- "label": "Akım",
- "description": "Sets the current for the LED output. Default is 10"
- },
- "red": {
- "label": "Kırmızı",
- "description": "Sets the red LED level. Values are 0-255"
- },
- "green": {
- "label": "Yeşil",
- "description": "Sets the green LED level. Values are 0-255"
- },
- "blue": {
- "label": "Mavi",
- "description": "Sets the blue LED level. Values are 0-255"
- }
- },
- "audio": {
- "title": "Audio Settings",
- "description": "Settings for the Audio module",
- "codec2Enabled": {
- "label": "Codec 2 Enabled",
- "description": "Enable Codec 2 audio encoding"
- },
- "pttPin": {
- "label": "PTT Pin",
- "description": "GPIO pin to use for PTT"
- },
- "bitrate": {
- "label": "Bitrate",
- "description": "Bitrate to use for audio encoding"
- },
- "i2sWs": {
- "label": "i2S WS",
- "description": "GPIO pin to use for i2S WS"
- },
- "i2sSd": {
- "label": "i2S SD",
- "description": "GPIO pin to use for i2S SD"
- },
- "i2sDin": {
- "label": "i2S DIN",
- "description": "GPIO pin to use for i2S DIN"
- },
- "i2sSck": {
- "label": "i2S SCK",
- "description": "GPIO pin to use for i2S SCK"
- }
- },
- "cannedMessage": {
- "title": "Canned Message Settings",
- "description": "Settings for the Canned Message module",
- "moduleEnabled": {
- "label": "Module Enabled",
- "description": "Enable Canned Message"
- },
- "rotary1Enabled": {
- "label": "Rotary Encoder #1 Enabled",
- "description": "Enable the rotary encoder"
- },
- "inputbrokerPinA": {
- "label": "Encoder Pin A",
- "description": "GPIO Pin Value (1-39) For encoder port A"
- },
- "inputbrokerPinB": {
- "label": "Encoder Pin B",
- "description": "GPIO Pin Value (1-39) For encoder port B"
- },
- "inputbrokerPinPress": {
- "label": "Encoder Pin Press",
- "description": "GPIO Pin Value (1-39) For encoder Press"
- },
- "inputbrokerEventCw": {
- "label": "Clockwise event",
- "description": "Select input event."
- },
- "inputbrokerEventCcw": {
- "label": "Counter Clockwise event",
- "description": "Select input event."
- },
- "inputbrokerEventPress": {
- "label": "Press event",
- "description": "Select input event"
- },
- "updown1Enabled": {
- "label": "Up Down enabled",
- "description": "Enable the up / down encoder"
- },
- "allowInputSource": {
- "label": "Allow Input Source",
- "description": "Select from: '_any', 'rotEnc1', 'upDownEnc1', 'cardkb'"
- },
- "sendBell": {
- "label": "Send Bell",
- "description": "Sends a bell character with each message"
- }
- },
- "detectionSensor": {
- "title": "Detection Sensor Settings",
- "description": "Settings for the Detection Sensor module",
- "enabled": {
- "label": "Enabled",
- "description": "Enable or disable Detection Sensor Module"
- },
- "minimumBroadcastSecs": {
- "label": "Minimum Broadcast Seconds",
- "description": "The interval in seconds of how often we can send a message to the mesh when a state change is detected"
- },
- "stateBroadcastSecs": {
- "label": "State Broadcast Seconds",
- "description": "The interval in seconds of how often we should send a message to the mesh with the current state regardless of changes"
- },
- "sendBell": {
- "label": "Send Bell",
- "description": "Send ASCII bell with alert message"
- },
- "name": {
- "label": "Friendly Name",
- "description": "Used to format the message sent to mesh, max 20 Characters"
- },
- "monitorPin": {
- "label": "Monitor Pin",
- "description": "The GPIO pin to monitor for state changes"
- },
- "detectionTriggerType": {
- "label": "Detection Triggered Type",
- "description": "The type of trigger event to be used"
- },
- "usePullup": {
- "label": "Use Pullup",
- "description": "Whether or not use INPUT_PULLUP mode for GPIO pin"
- }
- },
- "externalNotification": {
- "title": "External Notification Settings",
- "description": "Configure the external notification module",
- "enabled": {
- "label": "Module Enabled",
- "description": "Enable External Notification"
- },
- "outputMs": {
- "label": "Output MS",
- "description": "Output MS"
- },
- "output": {
- "label": "Output",
- "description": "Output"
- },
- "outputVibra": {
- "label": "Output Vibrate",
- "description": "Output Vibrate"
- },
- "outputBuzzer": {
- "label": "Output Buzzer",
- "description": "Output Buzzer"
- },
- "active": {
- "label": "Active",
- "description": "Active"
- },
- "alertMessage": {
- "label": "Alert Message",
- "description": "Alert Message"
- },
- "alertMessageVibra": {
- "label": "Alert Message Vibrate",
- "description": "Alert Message Vibrate"
- },
- "alertMessageBuzzer": {
- "label": "Alert Message Buzzer",
- "description": "Alert Message Buzzer"
- },
- "alertBell": {
- "label": "Alert Bell",
- "description": "Should an alert be triggered when receiving an incoming bell?"
- },
- "alertBellVibra": {
- "label": "Alert Bell Vibrate",
- "description": "Alert Bell Vibrate"
- },
- "alertBellBuzzer": {
- "label": "Alert Bell Buzzer",
- "description": "Alert Bell Buzzer"
- },
- "usePwm": {
- "label": "Use PWM",
- "description": "Use PWM"
- },
- "nagTimeout": {
- "label": "Nag Timeout",
- "description": "Nag Timeout"
- },
- "useI2sAsBuzzer": {
- "label": "Use I²S Pin as Buzzer",
- "description": "Designate I²S Pin as Buzzer Output"
- }
- },
- "mqtt": {
- "title": "MQTT Settings",
- "description": "Settings for the MQTT module",
- "enabled": {
- "label": "Enabled",
- "description": "Enable or disable MQTT"
- },
- "address": {
- "label": "MQTT Server Address",
- "description": "MQTT server address to use for default/custom servers"
- },
- "username": {
- "label": "MQTT Username",
- "description": "MQTT username to use for default/custom servers"
- },
- "password": {
- "label": "MQTT Password",
- "description": "MQTT password to use for default/custom servers"
- },
- "encryptionEnabled": {
- "label": "Encryption Enabled",
- "description": "Enable or disable MQTT encryption. Note: All messages are sent to the MQTT broker unencrypted if this option is not enabled, even when your uplink channels have encryption keys set. This includes position data."
- },
- "jsonEnabled": {
- "label": "JSON Enabled",
- "description": "Whether to send/consume JSON packets on MQTT"
- },
- "tlsEnabled": {
- "label": "TLS Enabled",
- "description": "Enable or disable TLS"
- },
- "root": {
- "label": "Ana konu",
- "description": "MQTT root topic to use for default/custom servers"
- },
- "proxyToClientEnabled": {
- "label": "MQTT Client Proxy Enabled",
- "description": "Utilizes the network connection to proxy MQTT messages to the client."
- },
- "mapReportingEnabled": {
- "label": "Map Reporting Enabled",
- "description": "Your node will periodically send an unencrypted map report packet to the configured MQTT server, this includes id, short and long name, approximate location, hardware model, role, firmware version, LoRa region, modem preset and primary channel name."
- },
- "mapReportSettings": {
- "publishIntervalSecs": {
- "label": "Map Report Publish Interval (s)",
- "description": "Interval in seconds to publish map reports"
- },
- "positionPrecision": {
- "label": "Approximate Location",
- "description": "Position shared will be accurate within this distance",
- "options": {
- "metric_km23": "Within 23 km",
- "metric_km12": "Within 12 km",
- "metric_km5_8": "Within 5.8 km",
- "metric_km2_9": "Within 2.9 km",
- "metric_km1_5": "Within 1.5 km",
- "metric_m700": "Within 700 m",
- "metric_m350": "Within 350 m",
- "metric_m200": "Within 200 m",
- "metric_m90": "Within 90 m",
- "metric_m50": "Within 50 m",
- "imperial_mi15": "Within 15 miles",
- "imperial_mi7_3": "Within 7.3 miles",
- "imperial_mi3_6": "Within 3.6 miles",
- "imperial_mi1_8": "Within 1.8 miles",
- "imperial_mi0_9": "Within 0.9 miles",
- "imperial_mi0_5": "Within 0.5 miles",
- "imperial_mi0_2": "Within 0.2 miles",
- "imperial_ft600": "Within 600 feet",
- "imperial_ft300": "Within 300 feet",
- "imperial_ft150": "Within 150 feet"
- }
- }
- }
- },
- "neighborInfo": {
- "title": "Neighbor Info Settings",
- "description": "Settings for the Neighbor Info module",
- "enabled": {
- "label": "Enabled",
- "description": "Enable or disable Neighbor Info Module"
- },
- "updateInterval": {
- "label": "Update Interval",
- "description": "Interval in seconds of how often we should try to send our Neighbor Info to the mesh"
- }
- },
- "paxcounter": {
- "title": "Paxcounter Settings",
- "description": "Settings for the Paxcounter module",
- "enabled": {
- "label": "Module Enabled",
- "description": "Enable Paxcounter"
- },
- "paxcounterUpdateInterval": {
- "label": "Update Interval (seconds)",
- "description": "How long to wait between sending paxcounter packets"
- },
- "wifiThreshold": {
- "label": "WiFi RSSI Threshold",
- "description": "At what WiFi RSSI level should the counter increase. Defaults to -80."
- },
- "bleThreshold": {
- "label": "BLE RSSI Threshold",
- "description": "At what BLE RSSI level should the counter increase. Defaults to -80."
- }
- },
- "rangeTest": {
- "title": "Range Test Settings",
- "description": "Settings for the Range Test module",
- "enabled": {
- "label": "Module Enabled",
- "description": "Enable Range Test"
- },
- "sender": {
- "label": "Message Interval",
- "description": "How long to wait between sending test packets"
- },
- "save": {
- "label": "Save CSV to storage",
- "description": "ESP32 Only"
- }
- },
- "serial": {
- "title": "Serial Settings",
- "description": "Settings for the Serial module",
- "enabled": {
- "label": "Module Enabled",
- "description": "Enable Serial output"
- },
- "echo": {
- "label": "Echo",
- "description": "Any packets you send will be echoed back to your device"
- },
- "rxd": {
- "label": "Receive Pin",
- "description": "Set the GPIO pin to the RXD pin you have set up."
- },
- "txd": {
- "label": "Transmit Pin",
- "description": "Set the GPIO pin to the TXD pin you have set up."
- },
- "baud": {
- "label": "Baud Rate",
- "description": "The serial baud rate"
- },
- "timeout": {
- "label": "Zaman Aşımı",
- "description": "Seconds to wait before we consider your packet as 'done'"
- },
- "mode": {
- "label": "Mode",
- "description": "Select Mode"
- },
- "overrideConsoleSerialPort": {
- "label": "Override Console Serial Port",
- "description": "If you have a serial port connected to the console, this will override it."
- }
- },
- "storeForward": {
- "title": "Store & Forward Settings",
- "description": "Settings for the Store & Forward module",
- "enabled": {
- "label": "Module Enabled",
- "description": "Enable Store & Forward"
- },
- "heartbeat": {
- "label": "Heartbeat Enabled",
- "description": "Enable Store & Forward heartbeat"
- },
- "records": {
- "label": "Kayıt sayısı",
- "description": "Number of records to store"
- },
- "historyReturnMax": {
- "label": "Geçmiş geri dönüş maksimum",
- "description": "Max number of records to return"
- },
- "historyReturnWindow": {
- "label": "Geçmiş geri dönüş penceresi",
- "description": "Bu zaman penceresinden kayıtları döndür (dakika)"
- }
- },
- "telemetry": {
- "title": "Telemetry Settings",
- "description": "Settings for the Telemetry module",
- "deviceUpdateInterval": {
- "label": "Device Metrics",
- "description": "Cihaz metrikleri güncelleme aralığı (saniye)"
- },
- "environmentUpdateInterval": {
- "label": "Çevre metrikleri güncelleme aralığı (saniye)",
- "description": ""
- },
- "environmentMeasurementEnabled": {
- "label": "Module Enabled",
- "description": "Enable the Environment Telemetry"
- },
- "environmentScreenEnabled": {
- "label": "Displayed on Screen",
- "description": "Show the Telemetry Module on the OLED"
- },
- "environmentDisplayFahrenheit": {
- "label": "Display Fahrenheit",
- "description": "Display temp in Fahrenheit"
- },
- "airQualityEnabled": {
- "label": "Air Quality Enabled",
- "description": "Enable the Air Quality Telemetry"
- },
- "airQualityInterval": {
- "label": "Air Quality Update Interval",
- "description": "How often to send Air Quality data over the mesh"
- },
- "powerMeasurementEnabled": {
- "label": "Power Measurement Enabled",
- "description": "Enable the Power Measurement Telemetry"
- },
- "powerUpdateInterval": {
- "label": "Power Update Interval",
- "description": "How often to send Power data over the mesh"
- },
- "powerScreenEnabled": {
- "label": "Power Screen Enabled",
- "description": "Enable the Power Telemetry Screen"
- }
- }
+ "page": {
+ "tabAmbientLighting": "Ortam Işıklandırması",
+ "tabAudio": "Ses",
+ "tabCannedMessage": "Canned",
+ "tabDetectionSensor": "Algılama Sensörü",
+ "tabExternalNotification": "Ext Notif",
+ "tabMqtt": "MQTT",
+ "tabNeighborInfo": "Komşu Bilgisi",
+ "tabPaxcounter": "Pax sayacı",
+ "tabRangeTest": "Mesafe Testi",
+ "tabSerial": "Seri",
+ "tabStoreAndForward": "S&F",
+ "tabTelemetry": "Telemetri"
+ },
+ "ambientLighting": {
+ "title": "Ambient Lighting Settings",
+ "description": "Settings for the Ambient Lighting module",
+ "ledState": {
+ "label": "LED State",
+ "description": "Sets LED to on or off"
+ },
+ "current": {
+ "label": "Akım",
+ "description": "Sets the current for the LED output. Default is 10"
+ },
+ "red": {
+ "label": "Kırmızı",
+ "description": "Sets the red LED level. Values are 0-255"
+ },
+ "green": {
+ "label": "Yeşil",
+ "description": "Sets the green LED level. Values are 0-255"
+ },
+ "blue": {
+ "label": "Mavi",
+ "description": "Sets the blue LED level. Values are 0-255"
+ }
+ },
+ "audio": {
+ "title": "Audio Settings",
+ "description": "Settings for the Audio module",
+ "codec2Enabled": {
+ "label": "Codec 2 Enabled",
+ "description": "Enable Codec 2 audio encoding"
+ },
+ "pttPin": {
+ "label": "PTT Pin",
+ "description": "GPIO pin to use for PTT"
+ },
+ "bitrate": {
+ "label": "Bitrate",
+ "description": "Bitrate to use for audio encoding"
+ },
+ "i2sWs": {
+ "label": "i2S WS",
+ "description": "GPIO pin to use for i2S WS"
+ },
+ "i2sSd": {
+ "label": "i2S SD",
+ "description": "GPIO pin to use for i2S SD"
+ },
+ "i2sDin": {
+ "label": "i2S DIN",
+ "description": "GPIO pin to use for i2S DIN"
+ },
+ "i2sSck": {
+ "label": "i2S SCK",
+ "description": "GPIO pin to use for i2S SCK"
+ }
+ },
+ "cannedMessage": {
+ "title": "Canned Message Settings",
+ "description": "Settings for the Canned Message module",
+ "moduleEnabled": {
+ "label": "Module Enabled",
+ "description": "Enable Canned Message"
+ },
+ "rotary1Enabled": {
+ "label": "Rotary Encoder #1 Enabled",
+ "description": "Enable the rotary encoder"
+ },
+ "inputbrokerPinA": {
+ "label": "Encoder Pin A",
+ "description": "GPIO Pin Value (1-39) For encoder port A"
+ },
+ "inputbrokerPinB": {
+ "label": "Encoder Pin B",
+ "description": "GPIO Pin Value (1-39) For encoder port B"
+ },
+ "inputbrokerPinPress": {
+ "label": "Encoder Pin Press",
+ "description": "GPIO Pin Value (1-39) For encoder Press"
+ },
+ "inputbrokerEventCw": {
+ "label": "Clockwise event",
+ "description": "Select input event."
+ },
+ "inputbrokerEventCcw": {
+ "label": "Counter Clockwise event",
+ "description": "Select input event."
+ },
+ "inputbrokerEventPress": {
+ "label": "Press event",
+ "description": "Select input event"
+ },
+ "updown1Enabled": {
+ "label": "Up Down enabled",
+ "description": "Enable the up / down encoder"
+ },
+ "allowInputSource": {
+ "label": "Allow Input Source",
+ "description": "Select from: '_any', 'rotEnc1', 'upDownEnc1', 'cardkb'"
+ },
+ "sendBell": {
+ "label": "Send Bell",
+ "description": "Sends a bell character with each message"
+ }
+ },
+ "detectionSensor": {
+ "title": "Detection Sensor Settings",
+ "description": "Settings for the Detection Sensor module",
+ "enabled": {
+ "label": "Enabled",
+ "description": "Enable or disable Detection Sensor Module"
+ },
+ "minimumBroadcastSecs": {
+ "label": "Minimum Broadcast Seconds",
+ "description": "The interval in seconds of how often we can send a message to the mesh when a state change is detected"
+ },
+ "stateBroadcastSecs": {
+ "label": "State Broadcast Seconds",
+ "description": "The interval in seconds of how often we should send a message to the mesh with the current state regardless of changes"
+ },
+ "sendBell": {
+ "label": "Send Bell",
+ "description": "Send ASCII bell with alert message"
+ },
+ "name": {
+ "label": "Friendly Name",
+ "description": "Used to format the message sent to mesh, max 20 Characters"
+ },
+ "monitorPin": {
+ "label": "Monitor Pin",
+ "description": "The GPIO pin to monitor for state changes"
+ },
+ "detectionTriggerType": {
+ "label": "Detection Triggered Type",
+ "description": "The type of trigger event to be used"
+ },
+ "usePullup": {
+ "label": "Use Pullup",
+ "description": "Whether or not use INPUT_PULLUP mode for GPIO pin"
+ }
+ },
+ "externalNotification": {
+ "title": "External Notification Settings",
+ "description": "Configure the external notification module",
+ "enabled": {
+ "label": "Module Enabled",
+ "description": "Enable External Notification"
+ },
+ "outputMs": {
+ "label": "Output MS",
+ "description": "Output MS"
+ },
+ "output": {
+ "label": "Output",
+ "description": "Output"
+ },
+ "outputVibra": {
+ "label": "Output Vibrate",
+ "description": "Output Vibrate"
+ },
+ "outputBuzzer": {
+ "label": "Output Buzzer",
+ "description": "Output Buzzer"
+ },
+ "active": {
+ "label": "Active",
+ "description": "Active"
+ },
+ "alertMessage": {
+ "label": "Alert Message",
+ "description": "Alert Message"
+ },
+ "alertMessageVibra": {
+ "label": "Alert Message Vibrate",
+ "description": "Alert Message Vibrate"
+ },
+ "alertMessageBuzzer": {
+ "label": "Alert Message Buzzer",
+ "description": "Alert Message Buzzer"
+ },
+ "alertBell": {
+ "label": "Alert Bell",
+ "description": "Should an alert be triggered when receiving an incoming bell?"
+ },
+ "alertBellVibra": {
+ "label": "Alert Bell Vibrate",
+ "description": "Alert Bell Vibrate"
+ },
+ "alertBellBuzzer": {
+ "label": "Alert Bell Buzzer",
+ "description": "Alert Bell Buzzer"
+ },
+ "usePwm": {
+ "label": "Use PWM",
+ "description": "Use PWM"
+ },
+ "nagTimeout": {
+ "label": "Nag Timeout",
+ "description": "Nag Timeout"
+ },
+ "useI2sAsBuzzer": {
+ "label": "Use I²S Pin as Buzzer",
+ "description": "Designate I²S Pin as Buzzer Output"
+ }
+ },
+ "mqtt": {
+ "title": "MQTT Settings",
+ "description": "Settings for the MQTT module",
+ "enabled": {
+ "label": "Enabled",
+ "description": "Enable or disable MQTT"
+ },
+ "address": {
+ "label": "MQTT Server Address",
+ "description": "MQTT server address to use for default/custom servers"
+ },
+ "username": {
+ "label": "MQTT Username",
+ "description": "MQTT username to use for default/custom servers"
+ },
+ "password": {
+ "label": "MQTT Password",
+ "description": "MQTT password to use for default/custom servers"
+ },
+ "encryptionEnabled": {
+ "label": "Encryption Enabled",
+ "description": "Enable or disable MQTT encryption. Note: All messages are sent to the MQTT broker unencrypted if this option is not enabled, even when your uplink channels have encryption keys set. This includes position data."
+ },
+ "jsonEnabled": {
+ "label": "JSON Enabled",
+ "description": "Whether to send/consume JSON packets on MQTT"
+ },
+ "tlsEnabled": {
+ "label": "TLS Enabled",
+ "description": "Enable or disable TLS"
+ },
+ "root": {
+ "label": "Ana konu",
+ "description": "MQTT root topic to use for default/custom servers"
+ },
+ "proxyToClientEnabled": {
+ "label": "MQTT Client Proxy Enabled",
+ "description": "Utilizes the network connection to proxy MQTT messages to the client."
+ },
+ "mapReportingEnabled": {
+ "label": "Map Reporting Enabled",
+ "description": "Your node will periodically send an unencrypted map report packet to the configured MQTT server, this includes id, short and long name, approximate location, hardware model, role, firmware version, LoRa region, modem preset and primary channel name."
+ },
+ "mapReportSettings": {
+ "publishIntervalSecs": {
+ "label": "Map Report Publish Interval (s)",
+ "description": "Interval in seconds to publish map reports"
+ },
+ "positionPrecision": {
+ "label": "Approximate Location",
+ "description": "Position shared will be accurate within this distance",
+ "options": {
+ "metric_km23": "Within 23 km",
+ "metric_km12": "Within 12 km",
+ "metric_km5_8": "Within 5.8 km",
+ "metric_km2_9": "Within 2.9 km",
+ "metric_km1_5": "Within 1.5 km",
+ "metric_m700": "Within 700 m",
+ "metric_m350": "Within 350 m",
+ "metric_m200": "Within 200 m",
+ "metric_m90": "Within 90 m",
+ "metric_m50": "Within 50 m",
+ "imperial_mi15": "Within 15 miles",
+ "imperial_mi7_3": "Within 7.3 miles",
+ "imperial_mi3_6": "Within 3.6 miles",
+ "imperial_mi1_8": "Within 1.8 miles",
+ "imperial_mi0_9": "Within 0.9 miles",
+ "imperial_mi0_5": "Within 0.5 miles",
+ "imperial_mi0_2": "Within 0.2 miles",
+ "imperial_ft600": "Within 600 feet",
+ "imperial_ft300": "Within 300 feet",
+ "imperial_ft150": "Within 150 feet"
+ }
+ }
+ }
+ },
+ "neighborInfo": {
+ "title": "Neighbor Info Settings",
+ "description": "Settings for the Neighbor Info module",
+ "enabled": {
+ "label": "Enabled",
+ "description": "Enable or disable Neighbor Info Module"
+ },
+ "updateInterval": {
+ "label": "Update Interval",
+ "description": "Interval in seconds of how often we should try to send our Neighbor Info to the mesh"
+ }
+ },
+ "paxcounter": {
+ "title": "Paxcounter Settings",
+ "description": "Settings for the Paxcounter module",
+ "enabled": {
+ "label": "Module Enabled",
+ "description": "Enable Paxcounter"
+ },
+ "paxcounterUpdateInterval": {
+ "label": "Update Interval (seconds)",
+ "description": "How long to wait between sending paxcounter packets"
+ },
+ "wifiThreshold": {
+ "label": "WiFi RSSI Threshold",
+ "description": "At what WiFi RSSI level should the counter increase. Defaults to -80."
+ },
+ "bleThreshold": {
+ "label": "BLE RSSI Threshold",
+ "description": "At what BLE RSSI level should the counter increase. Defaults to -80."
+ }
+ },
+ "rangeTest": {
+ "title": "Range Test Settings",
+ "description": "Settings for the Range Test module",
+ "enabled": {
+ "label": "Module Enabled",
+ "description": "Enable Range Test"
+ },
+ "sender": {
+ "label": "Message Interval",
+ "description": "How long to wait between sending test packets"
+ },
+ "save": {
+ "label": "Save CSV to storage",
+ "description": "ESP32 Only"
+ }
+ },
+ "serial": {
+ "title": "Serial Settings",
+ "description": "Settings for the Serial module",
+ "enabled": {
+ "label": "Module Enabled",
+ "description": "Enable Serial output"
+ },
+ "echo": {
+ "label": "Echo",
+ "description": "Any packets you send will be echoed back to your device"
+ },
+ "rxd": {
+ "label": "Receive Pin",
+ "description": "Set the GPIO pin to the RXD pin you have set up."
+ },
+ "txd": {
+ "label": "Transmit Pin",
+ "description": "Set the GPIO pin to the TXD pin you have set up."
+ },
+ "baud": {
+ "label": "Baud Rate",
+ "description": "The serial baud rate"
+ },
+ "timeout": {
+ "label": "Zaman Aşımı",
+ "description": "Seconds to wait before we consider your packet as 'done'"
+ },
+ "mode": {
+ "label": "Mode",
+ "description": "Select Mode"
+ },
+ "overrideConsoleSerialPort": {
+ "label": "Override Console Serial Port",
+ "description": "If you have a serial port connected to the console, this will override it."
+ }
+ },
+ "storeForward": {
+ "title": "Store & Forward Settings",
+ "description": "Settings for the Store & Forward module",
+ "enabled": {
+ "label": "Module Enabled",
+ "description": "Enable Store & Forward"
+ },
+ "heartbeat": {
+ "label": "Heartbeat Enabled",
+ "description": "Enable Store & Forward heartbeat"
+ },
+ "records": {
+ "label": "Kayıt sayısı",
+ "description": "Number of records to store"
+ },
+ "historyReturnMax": {
+ "label": "Geçmiş geri dönüş maksimum",
+ "description": "Max number of records to return"
+ },
+ "historyReturnWindow": {
+ "label": "Geçmiş geri dönüş penceresi",
+ "description": "Bu zaman penceresinden kayıtları döndür (dakika)"
+ }
+ },
+ "telemetry": {
+ "title": "Telemetry Settings",
+ "description": "Settings for the Telemetry module",
+ "deviceUpdateInterval": {
+ "label": "Device Metrics",
+ "description": "Cihaz metrikleri güncelleme aralığı (saniye)"
+ },
+ "environmentUpdateInterval": {
+ "label": "Çevre metrikleri güncelleme aralığı (saniye)",
+ "description": ""
+ },
+ "environmentMeasurementEnabled": {
+ "label": "Module Enabled",
+ "description": "Enable the Environment Telemetry"
+ },
+ "environmentScreenEnabled": {
+ "label": "Displayed on Screen",
+ "description": "Show the Telemetry Module on the OLED"
+ },
+ "environmentDisplayFahrenheit": {
+ "label": "Display Fahrenheit",
+ "description": "Display temp in Fahrenheit"
+ },
+ "airQualityEnabled": {
+ "label": "Air Quality Enabled",
+ "description": "Enable the Air Quality Telemetry"
+ },
+ "airQualityInterval": {
+ "label": "Air Quality Update Interval",
+ "description": "How often to send Air Quality data over the mesh"
+ },
+ "powerMeasurementEnabled": {
+ "label": "Power Measurement Enabled",
+ "description": "Enable the Power Measurement Telemetry"
+ },
+ "powerUpdateInterval": {
+ "label": "Power Update Interval",
+ "description": "How often to send Power data over the mesh"
+ },
+ "powerScreenEnabled": {
+ "label": "Power Screen Enabled",
+ "description": "Enable the Power Telemetry Screen"
+ }
+ }
}
diff --git a/packages/web/public/i18n/locales/tr-TR/nodes.json b/packages/web/public/i18n/locales/tr-TR/nodes.json
index 8ee00245..6b6bbc97 100644
--- a/packages/web/public/i18n/locales/tr-TR/nodes.json
+++ b/packages/web/public/i18n/locales/tr-TR/nodes.json
@@ -1,63 +1,59 @@
{
- "nodeDetail": {
- "publicKeyEnabled": {
- "label": "Public Key Enabled"
- },
- "noPublicKey": {
- "label": "No Public Key"
- },
- "directMessage": {
- "label": "Direk Mesaj {{shortName}}"
- },
- "favorite": {
- "label": "Favori",
- "tooltip": "Add or remove this node from your favorites"
- },
- "notFavorite": {
- "label": "Not a Favorite"
- },
- "error": {
- "label": "Hata",
- "text": "An error occurred while fetching node details. Please try again later."
- },
- "status": {
- "heard": "Heard",
- "mqtt": "MQTT"
- },
- "elevation": {
- "label": "Elevation"
- },
- "channelUtil": {
- "label": "Channel Util"
- },
- "airtimeUtil": {
- "label": "Airtime Util"
- }
- },
- "nodesTable": {
- "headings": {
- "longName": "Long Name",
- "connection": "Connection",
- "lastHeard": "Last Heard",
- "encryption": "Encryption",
- "model": "Model",
- "macAddress": "MAC Address"
- },
- "connectionStatus": {
- "direct": "Doğrudan",
- "away": "away",
- "unknown": "-",
- "viaMqtt": ", via MQTT"
- },
- "lastHeardStatus": {
- "never": "Hiçbir zaman"
- }
- },
- "actions": {
- "added": "Eklendi",
- "removed": "Kaldırıldı",
- "ignoreNode": "Ignore Node",
- "unignoreNode": "Unignore Node",
- "requestPosition": "Request Position"
- }
+ "nodeDetail": {
+ "publicKeyEnabled": {
+ "label": "Public Key Enabled"
+ },
+ "noPublicKey": {
+ "label": "No Public Key"
+ },
+ "directMessage": {
+ "label": "Direk Mesaj {{shortName}}"
+ },
+ "favorite": {
+ "label": "Favori",
+ "tooltip": "Add or remove this node from your favorites"
+ },
+ "notFavorite": {
+ "label": "Not a Favorite"
+ },
+ "error": {
+ "label": "Hata",
+ "text": "An error occurred while fetching node details. Please try again later."
+ },
+ "status": {
+ "heard": "Heard",
+ "mqtt": "MQTT"
+ },
+ "elevation": {
+ "label": "Elevation"
+ },
+ "channelUtil": {
+ "label": "Channel Util"
+ },
+ "airtimeUtil": {
+ "label": "Airtime Util"
+ }
+ },
+ "nodesTable": {
+ "headings": {
+ "longName": "Long Name",
+ "connection": "Connection",
+ "lastHeard": "Last Heard",
+ "encryption": "Encryption",
+ "model": "Model",
+ "macAddress": "MAC Address"
+ },
+ "connectionStatus": {
+ "direct": "Doğrudan",
+ "away": "away",
+ "viaMqtt": ", via MQTT"
+ }
+ },
+ "actions": {
+ "added": "Eklendi",
+ "removed": "Kaldırıldı",
+ "ignoreNode": "Ignore Node",
+ "unignoreNode": "Unignore Node",
+ "requestPosition": "Request Position"
+ }
}
diff --git a/packages/web/public/i18n/locales/tr-TR/ui.json b/packages/web/public/i18n/locales/tr-TR/ui.json
index 5fefb77c..ef41b068 100644
--- a/packages/web/public/i18n/locales/tr-TR/ui.json
+++ b/packages/web/public/i18n/locales/tr-TR/ui.json
@@ -1,228 +1,229 @@
{
- "navigation": {
- "title": "Navigation",
- "messages": "Mesajlar",
- "map": "Harita",
- "config": "Config",
- "radioConfig": "Radio Config",
- "moduleConfig": "Module Config",
- "channels": "Kanallar",
- "nodes": "Düğümler"
- },
- "app": {
- "title": "Meshtastic",
- "logo": "Meshtastic Logo"
- },
- "sidebar": {
- "collapseToggle": {
- "button": {
- "open": "Open sidebar",
- "close": "Close sidebar"
- }
- },
- "deviceInfo": {
- "volts": "{{voltage}} volt",
- "firmware": {
- "title": "Yazılım",
- "version": "v{{version}}",
- "buildDate": "Build date: {{date}}"
- },
- "deviceName": {
- "title": "Device Name",
- "changeName": "Change Device Name",
- "placeholder": "Enter device name"
- },
- "editDeviceName": "Edit device name"
- }
- },
- "batteryStatus": {
- "charging": "{{level}}% charging",
- "pluggedIn": "Plugged in",
- "title": "Pil"
- },
- "search": {
- "nodes": "Search nodes...",
- "channels": "Search channels...",
- "commandPalette": "Search commands..."
- },
- "toast": {
- "positionRequestSent": {
- "title": "Position request sent."
- },
- "requestingPosition": {
- "title": "Requesting position, please wait..."
- },
- "sendingTraceroute": {
- "title": "Sending Traceroute, please wait..."
- },
- "tracerouteSent": {
- "title": "Traceroute sent."
- },
- "savedChannel": {
- "title": "Saved Channel: {{channelName}}"
- },
- "messages": {
- "pkiEncryption": {
- "title": "Chat is using PKI encryption."
- },
- "pskEncryption": {
- "title": "Chat is using PSK encryption."
- }
- },
- "configSaveError": {
- "title": "Error Saving Config",
- "description": "An error occurred while saving the configuration."
- },
- "validationError": {
- "title": "Config Errors Exist",
- "description": "Please fix the configuration errors before saving."
- },
- "saveSuccess": {
- "title": "Saving Config",
- "description": "The configuration change {{case}} has been saved."
- },
- "favoriteNode": {
- "title": "{{action}} {{nodeName}} {{direction}} favorites.",
- "action": {
- "added": "Added",
- "removed": "Removed",
- "to": "to",
- "from": "from"
- }
- },
- "ignoreNode": {
- "title": "{{action}} {{nodeName}} {{direction}} ignore list",
- "action": {
- "added": "Added",
- "removed": "Removed",
- "to": "to",
- "from": "from"
- }
- }
- },
- "notifications": {
- "copied": {
- "label": "Copied!"
- },
- "copyToClipboard": {
- "label": "Copy to clipboard"
- },
- "hidePassword": {
- "label": "Şifreyi gizle"
- },
- "showPassword": {
- "label": "Şifreyi göster"
- },
- "deliveryStatus": {
- "delivered": "Delivered",
- "failed": "Delivery Failed",
- "waiting": "Waiting",
- "unknown": "Unknown"
- }
- },
- "general": {
- "label": "General"
- },
- "hardware": {
- "label": "Donanım"
- },
- "metrics": {
- "label": "Metrics"
- },
- "role": {
- "label": "Rol"
- },
- "filter": {
- "label": "Filtre"
- },
- "advanced": {
- "label": "Advanced"
- },
- "clearInput": {
- "label": "Clear input"
- },
- "resetFilters": {
- "label": "Reset Filters"
- },
- "nodeName": {
- "label": "Node name/number",
- "placeholder": "Meshtastic 1234"
- },
- "airtimeUtilization": {
- "label": "Airtime Utilization (%)"
- },
- "batteryLevel": {
- "label": "Battery level (%)",
- "labelText": "Battery level (%): {{value}}"
- },
- "batteryVoltage": {
- "label": "Battery voltage (V)",
- "title": "Voltaj"
- },
- "channelUtilization": {
- "label": "Channel Utilization (%)"
- },
- "hops": {
- "direct": "Doğrudan",
- "label": "Number of hops",
- "text": "Number of hops: {{value}}"
- },
- "lastHeard": {
- "label": "Son duyulma",
- "labelText": "Last heard: {{value}}",
- "nowLabel": "Now"
- },
- "snr": {
- "label": "SNR (db)"
- },
- "favorites": {
- "label": "Favorites"
- },
- "hide": {
- "label": "Hide"
- },
- "showOnly": {
- "label": "Show Only"
- },
- "viaMqtt": {
- "label": "Connected via MQTT"
- },
- "hopsUnknown": {
- "label": "Unknown number of hops"
- },
- "showUnheard": {
- "label": "Never heard"
- },
- "language": {
- "label": "Dil",
- "changeLanguage": "Change Language"
- },
- "theme": {
- "dark": "Koyu",
- "light": "Açık",
- "system": "Automatic",
- "changeTheme": "Change Color Scheme"
- },
- "errorPage": {
- "title": "This is a little embarrassing...",
- "description1": "We are really sorry but an error occurred in the web client that caused it to crash.
This is not supposed to happen, and we are working hard to fix it.",
- "description2": "The best way to prevent this from happening again to you or anyone else is to report the issue to us.",
- "reportInstructions": "Please include the following information in your report:",
- "reportSteps": {
- "step1": "What you were doing when the error occurred",
- "step2": "What you expected to happen",
- "step3": "What actually happened",
- "step4": "Any other relevant information"
- },
- "reportLink": "You can report the issue to our <0>GitHub0>",
- "dashboardLink": "Return to the <0>dashboard0>",
- "detailsSummary": "Error Details",
- "errorMessageLabel": "Error message:",
- "stackTraceLabel": "Stack trace:",
- "fallbackError": "{{error}}"
- },
- "footer": {
- "text": "Powered by <0>▲ Vercel0> | Meshtastic® is a registered trademark of Meshtastic LLC. | <1>Legal Information1>",
- "commitSha": "Commit SHA: {{sha}}"
- }
+ "navigation": {
+ "title": "Navigation",
+ "messages": "Mesajlar",
+ "map": "Harita",
+ "settings": "Ayarlar",
+ "channels": "Kanallar",
+ "radioConfig": "Radio Config",
+ "deviceConfig": "Cihaz Ayarı",
+ "moduleConfig": "Module Config",
+ "nodes": "Düğümler"
+ },
+ "app": {
+ "title": "Meshtastic",
+ "logo": "Meshtastic Logo"
+ },
+ "sidebar": {
+ "collapseToggle": {
+ "button": {
+ "open": "Open sidebar",
+ "close": "Close sidebar"
+ }
+ },
+ "deviceInfo": {
+ "volts": "{{voltage}} volt",
+ "firmware": {
+ "title": "Yazılım",
+ "version": "v{{version}}",
+ "buildDate": "Build date: {{date}}"
+ }
+ }
+ },
+ "batteryStatus": {
+ "charging": "{{level}}% charging",
+ "pluggedIn": "Plugged in",
+ "title": "Pil"
+ },
+ "search": {
+ "nodes": "Search nodes...",
+ "channels": "Search channels...",
+ "commandPalette": "Search commands..."
+ },
+ "toast": {
+ "positionRequestSent": {
+ "title": "Position request sent."
+ },
+ "requestingPosition": {
+ "title": "Requesting position, please wait..."
+ },
+ "sendingTraceroute": {
+ "title": "Sending Traceroute, please wait..."
+ },
+ "tracerouteSent": {
+ "title": "Traceroute sent."
+ },
+ "savedChannel": {
+ "title": "Saved Channel: {{channelName}}"
+ },
+ "messages": {
+ "pkiEncryption": {
+ "title": "Chat is using PKI encryption."
+ },
+ "pskEncryption": {
+ "title": "Chat is using PSK encryption."
+ }
+ },
+ "configSaveError": {
+ "title": "Error Saving Config",
+ "description": "An error occurred while saving the configuration."
+ },
+ "validationError": {
+ "title": "Config Errors Exist",
+ "description": "Please fix the configuration errors before saving."
+ },
+ "saveSuccess": {
+ "title": "Saving Config",
+ "description": "The configuration change {{case}} has been saved."
+ },
+ "saveAllSuccess": {
+ "title": "Saved",
+ "description": "All configuration changes have been saved."
+ },
+ "favoriteNode": {
+ "title": "{{action}} {{nodeName}} {{direction}} favorites.",
+ "action": {
+ "added": "Added",
+ "removed": "Removed",
+ "to": "to",
+ "from": "from"
+ }
+ },
+ "ignoreNode": {
+ "title": "{{action}} {{nodeName}} {{direction}} ignore list",
+ "action": {
+ "added": "Added",
+ "removed": "Removed",
+ "to": "to",
+ "from": "from"
+ }
+ }
+ },
+ "notifications": {
+ "copied": {
+ "label": "Copied!"
+ },
+ "copyToClipboard": {
+ "label": "Copy to clipboard"
+ },
+ "hidePassword": {
+ "label": "Şifreyi gizle"
+ },
+ "showPassword": {
+ "label": "Şifreyi göster"
+ },
+ "deliveryStatus": {
+ "delivered": "Delivered",
+ "failed": "Delivery Failed",
+ "waiting": "Waiting",
+ "unknown": "Unknown"
+ }
+ },
+ "general": {
+ "label": "General"
+ },
+ "hardware": {
+ "label": "Donanım"
+ },
+ "metrics": {
+ "label": "Metrics"
+ },
+ "role": {
+ "label": "Rol"
+ },
+ "filter": {
+ "label": "Filtre"
+ },
+ "advanced": {
+ "label": "Advanced"
+ },
+ "clearInput": {
+ "label": "Clear input"
+ },
+ "resetFilters": {
+ "label": "Reset Filters"
+ },
+ "nodeName": {
+ "label": "Node name/number",
+ "placeholder": "Meshtastic 1234"
+ },
+ "airtimeUtilization": {
+ "label": "Airtime Utilization (%)",
+ "short": "Airtime Util. (%)"
+ },
+ "batteryLevel": {
+ "label": "Battery level (%)",
+ "labelText": "Battery level (%): {{value}}"
+ },
+ "batteryVoltage": {
+ "label": "Battery voltage (V)",
+ "title": "Voltaj"
+ },
+ "channelUtilization": {
+ "label": "Channel Utilization (%)",
+ "short": "Channel Util. (%)"
+ },
+ "hops": {
+ "direct": "Doğrudan",
+ "label": "Number of hops",
+ "text": "Number of hops: {{value}}"
+ },
+ "lastHeard": {
+ "label": "Son duyulma",
+ "labelText": "Last heard: {{value}}",
+ "nowLabel": "Now"
+ },
+ "snr": {
+ "label": "SNR (db)"
+ },
+ "favorites": {
+ "label": "Favorites"
+ },
+ "hide": {
+ "label": "Hide"
+ },
+ "showOnly": {
+ "label": "Show Only"
+ },
+ "viaMqtt": {
+ "label": "Connected via MQTT"
+ },
+ "hopsUnknown": {
+ "label": "Unknown number of hops"
+ },
+ "showUnheard": {
+ "label": "Never heard"
+ },
+ "language": {
+ "label": "Dil",
+ "changeLanguage": "Change Language"
+ },
+ "theme": {
+ "dark": "Koyu",
+ "light": "Açık",
+ "system": "Automatic",
+ "changeTheme": "Change Color Scheme"
+ },
+ "errorPage": {
+ "title": "This is a little embarrassing...",
+ "description1": "We are really sorry but an error occurred in the web client that caused it to crash.
This is not supposed to happen, and we are working hard to fix it.",
+ "description2": "The best way to prevent this from happening again to you or anyone else is to report the issue to us.",
+ "reportInstructions": "Please include the following information in your report:",
+ "reportSteps": {
+ "step1": "What you were doing when the error occurred",
+ "step2": "What you expected to happen",
+ "step3": "What actually happened",
+ "step4": "Any other relevant information"
+ },
+ "reportLink": "You can report the issue to our <0>GitHub0>",
+ "dashboardLink": "Return to the <0>dashboard0>",
+ "detailsSummary": "Error Details",
+ "errorMessageLabel": "Error message:",
+ "stackTraceLabel": "Stack trace:",
+ "fallbackError": "{{error}}"
+ },
+ "footer": {
+ "text": "Powered by <0>▲ Vercel0> | Meshtastic® is a registered trademark of Meshtastic LLC. | <1>Legal Information1>",
+ "commitSha": "Commit SHA: {{sha}}"
+ }
}
diff --git a/packages/web/public/i18n/locales/uk-UA/channels.json b/packages/web/public/i18n/locales/uk-UA/channels.json
index 3e871201..11389487 100644
--- a/packages/web/public/i18n/locales/uk-UA/channels.json
+++ b/packages/web/public/i18n/locales/uk-UA/channels.json
@@ -1,69 +1,71 @@
{
- "page": {
- "sectionLabel": "Канали",
- "channelName": "Канал: {{channelName}}",
- "broadcastLabel": "Основний",
- "channelIndex": "Кн {{index}}"
- },
- "validation": {
- "pskInvalid": "Please enter a valid {{bits}} bit PSK."
- },
- "settings": {
- "label": "Channel Settings",
- "description": "Crypto, MQTT & misc settings"
- },
- "role": {
- "label": "Роль",
- "description": "Device telemetry is sent over PRIMARY. Only one PRIMARY allowed",
- "options": {
- "primary": "PRIMARY",
- "disabled": "DISABLED",
- "secondary": "SECONDARY"
- }
- },
- "psk": {
- "label": "Pre-Shared Key",
- "description": "Supported PSK lengths: 256-bit, 128-bit, 8-bit, Empty (0-bit)",
- "generate": "Згенерувати"
- },
- "name": {
- "label": "Ім'я",
- "description": "A unique name for the channel <12 bytes, leave blank for default"
- },
- "uplinkEnabled": {
- "label": "Uplink Enabled",
- "description": "Send messages from the local mesh to MQTT"
- },
- "downlinkEnabled": {
- "label": "Downlink Enabled",
- "description": "Send messages from MQTT to the local mesh"
- },
- "positionPrecision": {
- "label": "Місце розташування",
- "description": "The precision of the location to share with the channel. Can be disabled.",
- "options": {
- "none": "Не повідомляти місце знаходження",
- "precise": "Точне місце розташування",
- "metric_km23": "У межах 23 км",
- "metric_km12": "У межах 12 км",
- "metric_km5_8": "У межах 5,8 км",
- "metric_km2_9": "У межах 2,9 км",
- "metric_km1_5": "У межах 1,5 км",
- "metric_m700": "У межах 700 м",
- "metric_m350": "У межах 350 м",
- "metric_m200": "У межах 200 м",
- "metric_m90": "У межах 90 м",
- "metric_m50": "У межах 50 м",
- "imperial_mi15": "У межах 15 миль",
- "imperial_mi7_3": "У межах 7,3 милі",
- "imperial_mi3_6": "У межах 3,6 милі",
- "imperial_mi1_8": "У межах 1,8 милі",
- "imperial_mi0_9": "У межах 0,9 милі",
- "imperial_mi0_5": "У межах 0,5 милі",
- "imperial_mi0_2": "У межах 0,2 милі",
- "imperial_ft600": "У межах 600 фт",
- "imperial_ft300": "У межах 300 фт",
- "imperial_ft150": "У межах 150 фт"
- }
- }
+ "page": {
+ "sectionLabel": "Канали",
+ "channelName": "Канал: {{channelName}}",
+ "broadcastLabel": "Основний",
+ "channelIndex": "Кн {{index}}",
+ "import": "Імпортувати",
+ "export": "Export"
+ },
+ "validation": {
+ "pskInvalid": "Please enter a valid {{bits}} bit PSK."
+ },
+ "settings": {
+ "label": "Channel Settings",
+ "description": "Crypto, MQTT & misc settings"
+ },
+ "role": {
+ "label": "Роль",
+ "description": "Device telemetry is sent over PRIMARY. Only one PRIMARY allowed",
+ "options": {
+ "primary": "PRIMARY",
+ "disabled": "DISABLED",
+ "secondary": "SECONDARY"
+ }
+ },
+ "psk": {
+ "label": "Pre-Shared Key",
+ "description": "Supported PSK lengths: 256-bit, 128-bit, 8-bit, Empty (0-bit)",
+ "generate": "Згенерувати"
+ },
+ "name": {
+ "label": "Ім'я",
+ "description": "A unique name for the channel <12 bytes, leave blank for default"
+ },
+ "uplinkEnabled": {
+ "label": "Uplink Enabled",
+ "description": "Send messages from the local mesh to MQTT"
+ },
+ "downlinkEnabled": {
+ "label": "Downlink Enabled",
+ "description": "Send messages from MQTT to the local mesh"
+ },
+ "positionPrecision": {
+ "label": "Місце розташування",
+ "description": "The precision of the location to share with the channel. Can be disabled.",
+ "options": {
+ "none": "Не повідомляти місце знаходження",
+ "precise": "Точне місце розташування",
+ "metric_km23": "У межах 23 км",
+ "metric_km12": "У межах 12 км",
+ "metric_km5_8": "У межах 5,8 км",
+ "metric_km2_9": "У межах 2,9 км",
+ "metric_km1_5": "У межах 1,5 км",
+ "metric_m700": "У межах 700 м",
+ "metric_m350": "У межах 350 м",
+ "metric_m200": "У межах 200 м",
+ "metric_m90": "У межах 90 м",
+ "metric_m50": "У межах 50 м",
+ "imperial_mi15": "У межах 15 миль",
+ "imperial_mi7_3": "У межах 7,3 милі",
+ "imperial_mi3_6": "У межах 3,6 милі",
+ "imperial_mi1_8": "У межах 1,8 милі",
+ "imperial_mi0_9": "У межах 0,9 милі",
+ "imperial_mi0_5": "У межах 0,5 милі",
+ "imperial_mi0_2": "У межах 0,2 милі",
+ "imperial_ft600": "У межах 600 фт",
+ "imperial_ft300": "У межах 300 фт",
+ "imperial_ft150": "У межах 150 фт"
+ }
+ }
}
diff --git a/packages/web/public/i18n/locales/uk-UA/commandPalette.json b/packages/web/public/i18n/locales/uk-UA/commandPalette.json
index b0245288..e8df07ce 100644
--- a/packages/web/public/i18n/locales/uk-UA/commandPalette.json
+++ b/packages/web/public/i18n/locales/uk-UA/commandPalette.json
@@ -15,7 +15,6 @@
"messages": "Повідомлення",
"map": "Мапа",
"config": "Config",
- "channels": "Канали",
"nodes": "Вузли"
}
},
@@ -45,7 +44,8 @@
"label": "Debug",
"command": {
"reconfigure": "Reconfigure",
- "clearAllStoredMessages": "Clear All Stored Message"
+ "clearAllStoredMessages": "Clear All Stored Message",
+ "clearAllStores": "Clear All Local Storage"
}
}
}
diff --git a/packages/web/public/i18n/locales/uk-UA/common.json b/packages/web/public/i18n/locales/uk-UA/common.json
index c6541320..5a663451 100644
--- a/packages/web/public/i18n/locales/uk-UA/common.json
+++ b/packages/web/public/i18n/locales/uk-UA/common.json
@@ -1,142 +1,157 @@
{
- "button": {
- "apply": "Застосувати",
- "backupKey": "Backup Key",
- "cancel": "Скасувати",
- "clearMessages": "Clear Messages",
- "close": "Закрити",
- "confirm": "Confirm",
- "delete": "Видалити",
- "dismiss": "Dismiss",
- "download": "Download",
- "export": "Export",
- "generate": "Згенерувати",
- "regenerate": "Перегенерувати",
- "import": "Імпортувати",
- "message": "Повідомлення",
- "now": "Зараз",
- "ok": "Гаразд",
- "print": "Print",
- "remove": "Видалити",
- "requestNewKeys": "Request New Keys",
- "requestPosition": "Запитати позицію",
- "reset": "Скинути",
- "save": "Зберегти",
- "scanQr": "Сканувати QR-код",
- "traceRoute": "Trace Route",
- "submit": "Submit"
- },
- "app": {
- "title": "Meshtastic",
- "fullTitle": "Meshtastic Web Client"
- },
- "loading": "Завантаження...",
- "unit": {
- "cps": "CPS",
- "dbm": "дБм",
- "hertz": "Гц",
- "hop": {
- "one": "Hop",
- "plural": "Hops"
- },
- "hopsAway": {
- "one": "{{count}} hop away",
- "plural": "{{count}} hops away",
- "unknown": "Unknown hops away"
- },
- "megahertz": "МГц",
- "raw": "raw",
- "meter": {
- "one": "Метр",
- "plural": "Meters",
- "suffix": "м"
- },
- "minute": {
- "one": "Minute",
- "plural": "Хвилин"
- },
- "hour": {
- "one": "Година",
- "plural": "Годин"
- },
- "millisecond": {
- "one": "Мілісекунда",
- "plural": "Мілісекунди",
- "suffix": "мс"
- },
- "second": {
- "one": "Секунда",
- "plural": "Секунд"
- },
- "day": {
- "one": "День",
- "plural": "Днів"
- },
- "month": {
- "one": "Місяць",
- "plural": "Місяців"
- },
- "year": {
- "one": "Year",
- "plural": "Years"
- },
- "snr": "SNR",
- "volt": {
- "one": "Вольт",
- "plural": "Volts",
- "suffix": "V"
- },
- "record": {
- "one": "Records",
- "plural": "Records"
- }
- },
- "security": {
- "0bit": "Empty",
- "8bit": "8 bit",
- "128bit": "128 bit",
- "256bit": "256 bit"
- },
- "unknown": {
- "longName": "Unknown",
- "shortName": "UNK",
- "notAvailable": "N/A",
- "num": "??"
- },
- "nodeUnknownPrefix": "!",
- "unset": "UNSET",
- "fallbackName": "Meshtastic {{last4}}",
- "node": "Node",
- "formValidation": {
- "unsavedChanges": "Unsaved changes",
- "tooBig": {
- "string": "Too long, expected less than or equal to {{maximum}} characters.",
- "number": "Too big, expected a number smaller than or equal to {{maximum}}.",
- "bytes": "Too big, expected less than or equal to {{params.maximum}} bytes."
- },
- "tooSmall": {
- "string": "Too short, expected more than or equal to {{minimum}} characters.",
- "number": "Too small, expected a number larger than or equal to {{minimum}}."
- },
- "invalidFormat": {
- "ipv4": "Невірний формат, потрібна IPv4-адреса.",
- "key": "Invalid format, expected a Base64 encoded pre-shared key (PSK)."
- },
- "invalidType": {
- "number": "Invalid type, expected a number."
- },
- "pskLength": {
- "0bit": "Ключ повинен бути пустим.",
- "8bit": "Key is required to be an 8 bit pre-shared key (PSK).",
- "128bit": "Key is required to be a 128 bit pre-shared key (PSK).",
- "256bit": "Key is required to be a 256 bit pre-shared key (PSK)."
- },
- "required": {
- "generic": "Це поле є обов'язковим.",
- "managed": "At least one admin key is requred if the node is managed.",
- "key": "Key is required."
- }
- },
- "yes": "Yes",
- "no": "No"
+ "button": {
+ "apply": "Застосувати",
+ "backupKey": "Backup Key",
+ "cancel": "Скасувати",
+ "clearMessages": "Clear Messages",
+ "close": "Закрити",
+ "confirm": "Confirm",
+ "delete": "Видалити",
+ "dismiss": "Dismiss",
+ "download": "Download",
+ "export": "Export",
+ "generate": "Згенерувати",
+ "regenerate": "Перегенерувати",
+ "import": "Імпортувати",
+ "message": "Повідомлення",
+ "now": "Зараз",
+ "ok": "Гаразд",
+ "print": "Print",
+ "remove": "Видалити",
+ "requestNewKeys": "Request New Keys",
+ "requestPosition": "Запитати позицію",
+ "reset": "Скинути",
+ "save": "Зберегти",
+ "scanQr": "Сканувати QR-код",
+ "traceRoute": "Trace Route",
+ "submit": "Submit"
+ },
+ "app": {
+ "title": "Meshtastic",
+ "fullTitle": "Meshtastic Web Client"
+ },
+ "loading": "Завантаження...",
+ "unit": {
+ "cps": "CPS",
+ "dbm": "дБм",
+ "hertz": "Гц",
+ "hop": {
+ "one": "Hop",
+ "plural": "Hops"
+ },
+ "hopsAway": {
+ "one": "{{count}} hop away",
+ "plural": "{{count}} hops away",
+ "unknown": "Unknown hops away"
+ },
+ "megahertz": "МГц",
+ "raw": "raw",
+ "meter": {
+ "one": "Метр",
+ "plural": "Meters",
+ "suffix": "м"
+ },
+ "kilometer": {
+ "one": "Kilometer",
+ "plural": "Kilometers",
+ "suffix": "km"
+ },
+ "minute": {
+ "one": "Minute",
+ "plural": "Хвилин"
+ },
+ "hour": {
+ "one": "Година",
+ "plural": "Годин"
+ },
+ "millisecond": {
+ "one": "Мілісекунда",
+ "plural": "Мілісекунди",
+ "suffix": "мс"
+ },
+ "second": {
+ "one": "Секунда",
+ "plural": "Секунд"
+ },
+ "day": {
+ "one": "День",
+ "plural": "Днів",
+ "today": "Today",
+ "yesterday": "Yesterday"
+ },
+ "month": {
+ "one": "Місяць",
+ "plural": "Місяців"
+ },
+ "year": {
+ "one": "Year",
+ "plural": "Years"
+ },
+ "snr": "SNR",
+ "volt": {
+ "one": "Вольт",
+ "plural": "Volts",
+ "suffix": "V"
+ },
+ "record": {
+ "one": "Records",
+ "plural": "Records"
+ },
+ "degree": {
+ "one": "Degree",
+ "plural": "Degrees",
+ "suffix": "°"
+ }
+ },
+ "security": {
+ "0bit": "Empty",
+ "8bit": "8 bit",
+ "128bit": "128 bit",
+ "256bit": "256 bit"
+ },
+ "unknown": {
+ "longName": "Unknown",
+ "shortName": "UNK",
+ "notAvailable": "N/A",
+ "num": "??"
+ },
+ "nodeUnknownPrefix": "!",
+ "unset": "UNSET",
+ "fallbackName": "Meshtastic {{last4}}",
+ "node": "Node",
+ "formValidation": {
+ "unsavedChanges": "Unsaved changes",
+ "tooBig": {
+ "string": "Too long, expected less than or equal to {{maximum}} characters.",
+ "number": "Too big, expected a number smaller than or equal to {{maximum}}.",
+ "bytes": "Too big, expected less than or equal to {{params.maximum}} bytes."
+ },
+ "tooSmall": {
+ "string": "Too short, expected more than or equal to {{minimum}} characters.",
+ "number": "Too small, expected a number larger than or equal to {{minimum}}."
+ },
+ "invalidFormat": {
+ "ipv4": "Невірний формат, потрібна IPv4-адреса.",
+ "key": "Invalid format, expected a Base64 encoded pre-shared key (PSK)."
+ },
+ "invalidType": {
+ "number": "Invalid type, expected a number."
+ },
+ "pskLength": {
+ "0bit": "Ключ повинен бути пустим.",
+ "8bit": "Key is required to be an 8 bit pre-shared key (PSK).",
+ "128bit": "Key is required to be a 128 bit pre-shared key (PSK).",
+ "256bit": "Key is required to be a 256 bit pre-shared key (PSK)."
+ },
+ "required": {
+ "generic": "Це поле є обов'язковим.",
+ "managed": "At least one admin key is requred if the node is managed.",
+ "key": "Key is required."
+ },
+ "invalidOverrideFreq": {
+ "number": "Invalid format, expected a value in the range 410-930 MHz or 0 (use default)."
+ }
+ },
+ "yes": "Yes",
+ "no": "No"
}
diff --git a/packages/web/public/i18n/locales/uk-UA/config.json b/packages/web/public/i18n/locales/uk-UA/config.json
new file mode 100644
index 00000000..f8cdb04a
--- /dev/null
+++ b/packages/web/public/i18n/locales/uk-UA/config.json
@@ -0,0 +1,458 @@
+{
+ "page": {
+ "title": "Налаштування",
+ "tabUser": "Користувач",
+ "tabChannels": "Канали",
+ "tabBluetooth": "Bluetooth",
+ "tabDevice": "Пристрій",
+ "tabDisplay": "Дисплей",
+ "tabLora": "LoRa",
+ "tabNetwork": "Мережа",
+ "tabPosition": "Position",
+ "tabPower": "Живлення",
+ "tabSecurity": "Безпека"
+ },
+ "sidebar": {
+ "label": "Налаштування"
+ },
+ "device": {
+ "title": "Налаштування пристрою",
+ "description": "Settings for the device",
+ "buttonPin": {
+ "description": "Button pin override",
+ "label": "Button Pin"
+ },
+ "buzzerPin": {
+ "description": "Buzzer pin override",
+ "label": "Buzzer Pin"
+ },
+ "disableTripleClick": {
+ "description": "Disable triple click",
+ "label": "Disable Triple Click"
+ },
+ "doubleTapAsButtonPress": {
+ "description": "Treat double tap as button press",
+ "label": "Double Tap as Button Press"
+ },
+ "ledHeartbeatDisabled": {
+ "description": "Disable default blinking LED",
+ "label": "LED Heartbeat Disabled"
+ },
+ "nodeInfoBroadcastInterval": {
+ "description": "How often to broadcast node info",
+ "label": "Node Info Broadcast Interval"
+ },
+ "posixTimezone": {
+ "description": "The POSIX timezone string for the device",
+ "label": "Часова зона POSIX"
+ },
+ "rebroadcastMode": {
+ "description": "How to handle rebroadcasting",
+ "label": "Rebroadcast Mode"
+ },
+ "role": {
+ "description": "What role the device performs on the mesh",
+ "label": "Роль"
+ }
+ },
+ "bluetooth": {
+ "title": "Налаштування Bluetooth",
+ "description": "Settings for the Bluetooth module",
+ "note": "Note: Some devices (ESP32) cannot use both Bluetooth and WiFi at the same time.",
+ "enabled": {
+ "description": "Увімкнути або вимкнути Bluetooth",
+ "label": "Увімкнено"
+ },
+ "pairingMode": {
+ "description": "Pin selection behaviour.",
+ "label": "Pairing mode"
+ },
+ "pin": {
+ "description": "Pin to use when pairing",
+ "label": "Pin"
+ }
+ },
+ "display": {
+ "description": "Settings for the device display",
+ "title": "Display Settings",
+ "headingBold": {
+ "description": "Bolden the heading text",
+ "label": "Bold Heading"
+ },
+ "carouselDelay": {
+ "description": "How fast to cycle through windows",
+ "label": "Carousel Delay"
+ },
+ "compassNorthTop": {
+ "description": "Fix north to the top of compass",
+ "label": "Compass North Top"
+ },
+ "displayMode": {
+ "description": "Screen layout variant",
+ "label": "Display Mode"
+ },
+ "displayUnits": {
+ "description": "Display metric or imperial units",
+ "label": "Display Units"
+ },
+ "flipScreen": {
+ "description": "Flip display 180 degrees",
+ "label": "Flip Screen"
+ },
+ "gpsDisplayUnits": {
+ "description": "Coordinate display format",
+ "label": "GPS Display Units"
+ },
+ "oledType": {
+ "description": "Type of OLED screen attached to the device",
+ "label": "OLED Type"
+ },
+ "screenTimeout": {
+ "description": "Turn off the display after this long",
+ "label": "Screen Timeout"
+ },
+ "twelveHourClock": {
+ "description": "Use 12-hour clock format",
+ "label": "12-Hour Clock"
+ },
+ "wakeOnTapOrMotion": {
+ "description": "Wake the device on tap or motion",
+ "label": "Wake on Tap or Motion"
+ }
+ },
+ "lora": {
+ "title": "Mesh Settings",
+ "description": "Settings for the LoRa mesh",
+ "bandwidth": {
+ "description": "Channel bandwidth in MHz",
+ "label": "Bandwidth"
+ },
+ "boostedRxGain": {
+ "description": "Boosted RX gain",
+ "label": "Boosted RX Gain"
+ },
+ "codingRate": {
+ "description": "The denominator of the coding rate",
+ "label": "Coding Rate"
+ },
+ "frequencyOffset": {
+ "description": "Frequency offset to correct for crystal calibration errors",
+ "label": "Frequency Offset"
+ },
+ "frequencySlot": {
+ "description": "LoRa frequency channel number",
+ "label": "Frequency Slot"
+ },
+ "hopLimit": {
+ "description": "Maximum number of hops",
+ "label": "Hop Limit"
+ },
+ "ignoreMqtt": {
+ "description": "Don't forward MQTT messages over the mesh",
+ "label": "Ігнорувати MQTT"
+ },
+ "modemPreset": {
+ "description": "Modem preset to use",
+ "label": "Modem Preset"
+ },
+ "okToMqtt": {
+ "description": "When set to true, this configuration indicates that the user approves the packet to be uploaded to MQTT. If set to false, remote nodes are requested not to forward packets to MQTT",
+ "label": "OK to MQTT"
+ },
+ "overrideDutyCycle": {
+ "description": "Override Duty Cycle",
+ "label": "Override Duty Cycle"
+ },
+ "overrideFrequency": {
+ "description": "Override frequency",
+ "label": "Override Frequency"
+ },
+ "region": {
+ "description": "Sets the region for your node",
+ "label": "Регіон"
+ },
+ "spreadingFactor": {
+ "description": "Indicates the number of chirps per symbol",
+ "label": "Spreading Factor"
+ },
+ "transmitEnabled": {
+ "description": "Enable/Disable transmit (TX) from the LoRa radio",
+ "label": "Transmit Enabled"
+ },
+ "transmitPower": {
+ "description": "Max transmit power",
+ "label": "Transmit Power"
+ },
+ "usePreset": {
+ "description": "Use one of the predefined modem presets",
+ "label": "Use Preset"
+ },
+ "meshSettings": {
+ "description": "Settings for the LoRa mesh",
+ "label": "Mesh Settings"
+ },
+ "waveformSettings": {
+ "description": "Settings for the LoRa waveform",
+ "label": "Waveform Settings"
+ },
+ "radioSettings": {
+ "label": "Radio Settings",
+ "description": "Settings for the LoRa radio"
+ }
+ },
+ "network": {
+ "title": "Налаштування WiFi",
+ "description": "WiFi radio configuration",
+ "note": "Note: Some devices (ESP32) cannot use both Bluetooth and WiFi at the same time.",
+ "addressMode": {
+ "description": "Address assignment selection",
+ "label": "Address Mode"
+ },
+ "dns": {
+ "description": "DNS-сервер",
+ "label": "DNS"
+ },
+ "ethernetEnabled": {
+ "description": "Enable or disable the Ethernet port",
+ "label": "Увімкнено"
+ },
+ "gateway": {
+ "description": "Default Gateway",
+ "label": "Шлюз"
+ },
+ "ip": {
+ "description": "IP Address",
+ "label": "IP-адреса"
+ },
+ "psk": {
+ "description": "Network password",
+ "label": "PSK"
+ },
+ "ssid": {
+ "description": "Network name",
+ "label": "SSID"
+ },
+ "subnet": {
+ "description": "Маска підмережі",
+ "label": "Підмережа"
+ },
+ "wifiEnabled": {
+ "description": "Увімкнути або вимкнути WiFi радіо",
+ "label": "Увімкнено"
+ },
+ "meshViaUdp": {
+ "label": "Mesh via UDP"
+ },
+ "ntpServer": {
+ "label": "NTP-сервер"
+ },
+ "rsyslogServer": {
+ "label": "Rsyslog-сервер"
+ },
+ "ethernetConfigSettings": {
+ "description": "Ethernet port configuration",
+ "label": "Ethernet Config"
+ },
+ "ipConfigSettings": {
+ "description": "IP configuration",
+ "label": "IP Config"
+ },
+ "ntpConfigSettings": {
+ "description": "Налаштування NTP",
+ "label": "NTP Config"
+ },
+ "rsyslogConfigSettings": {
+ "description": "Rsyslog configuration",
+ "label": "Налаштування Rsyslog"
+ },
+ "udpConfigSettings": {
+ "description": "UDP over Mesh configuration",
+ "label": "Налаштування UDP"
+ }
+ },
+ "position": {
+ "title": "Position Settings",
+ "description": "Settings for the position module",
+ "broadcastInterval": {
+ "description": "How often your position is sent out over the mesh",
+ "label": "Broadcast Interval"
+ },
+ "enablePin": {
+ "description": "GPS module enable pin override",
+ "label": "Enable Pin"
+ },
+ "fixedPosition": {
+ "description": "Don't report GPS position, but a manually-specified one",
+ "label": "Fixed Position"
+ },
+ "gpsMode": {
+ "description": "Configure whether device GPS is Enabled, Disabled, or Not Present",
+ "label": "GPS Mode"
+ },
+ "gpsUpdateInterval": {
+ "description": "How often a GPS fix should be acquired",
+ "label": "GPS Update Interval"
+ },
+ "positionFlags": {
+ "description": "Optional fields to include when assembling position messages. The more fields are selected, the larger the message will be leading to longer airtime usage and a higher risk of packet loss.",
+ "label": "Position Flags"
+ },
+ "receivePin": {
+ "description": "GPS module RX pin override",
+ "label": "Receive Pin"
+ },
+ "smartPositionEnabled": {
+ "description": "Only send position when there has been a meaningful change in location",
+ "label": "Enable Smart Position"
+ },
+ "smartPositionMinDistance": {
+ "description": "Minimum distance (in meters) that must be traveled before a position update is sent",
+ "label": "Smart Position Minimum Distance"
+ },
+ "smartPositionMinInterval": {
+ "description": "Minimum interval (in seconds) that must pass before a position update is sent",
+ "label": "Smart Position Minimum Interval"
+ },
+ "transmitPin": {
+ "description": "GPS module TX pin override",
+ "label": "Transmit Pin"
+ },
+ "intervalsSettings": {
+ "description": "How often to send position updates",
+ "label": "Intervals"
+ },
+ "flags": {
+ "placeholder": "Select position flags...",
+ "altitude": "Висота",
+ "altitudeGeoidalSeparation": "Altitude Geoidal Separation",
+ "altitudeMsl": "Altitude is Mean Sea Level",
+ "dop": "Dilution of precision (DOP) PDOP used by default",
+ "hdopVdop": "If DOP is set, use HDOP / VDOP values instead of PDOP",
+ "numSatellites": "Number of satellites",
+ "sequenceNumber": "Sequence number",
+ "timestamp": "Мітка часу",
+ "unset": "Скинути",
+ "vehicleHeading": "Vehicle heading",
+ "vehicleSpeed": "Vehicle speed"
+ }
+ },
+ "power": {
+ "adcMultiplierOverride": {
+ "description": "Used for tweaking battery voltage reading",
+ "label": "ADC Multiplier Override ratio"
+ },
+ "ina219Address": {
+ "description": "Address of the INA219 battery monitor",
+ "label": "INA219 Address"
+ },
+ "lightSleepDuration": {
+ "description": "How long the device will be in light sleep for",
+ "label": "Light Sleep Duration"
+ },
+ "minimumWakeTime": {
+ "description": "Minimum amount of time the device will stay awake for after receiving a packet",
+ "label": "Minimum Wake Time"
+ },
+ "noConnectionBluetoothDisabled": {
+ "description": "If the device does not receive a Bluetooth connection, the BLE radio will be disabled after this long",
+ "label": "No Connection Bluetooth Disabled"
+ },
+ "powerSavingEnabled": {
+ "description": "Select if powered from a low-current source (i.e. solar), to minimize power consumption as much as possible.",
+ "label": "Увімкнути енергоощадний режим"
+ },
+ "shutdownOnBatteryDelay": {
+ "description": "Automatically shutdown node after this long when on battery, 0 for indefinite",
+ "label": "Shutdown on battery delay"
+ },
+ "superDeepSleepDuration": {
+ "description": "How long the device will be in super deep sleep for",
+ "label": "Super Deep Sleep Duration"
+ },
+ "powerConfigSettings": {
+ "description": "Settings for the power module",
+ "label": "Налаштування живлення"
+ },
+ "sleepSettings": {
+ "description": "Sleep settings for the power module",
+ "label": "Налаштування режиму сну"
+ }
+ },
+ "security": {
+ "description": "Settings for the Security configuration",
+ "title": "Налаштування безпеки",
+ "button_backupKey": "Backup Key",
+ "adminChannelEnabled": {
+ "description": "Allow incoming device control over the insecure legacy admin channel",
+ "label": "Allow Legacy Admin"
+ },
+ "enableDebugLogApi": {
+ "description": "Output live debug logging over serial, view and export position-redacted device logs over Bluetooth",
+ "label": "Enable Debug Log API"
+ },
+ "managed": {
+ "description": "If enabled, device configuration options are only able to be changed remotely by a Remote Admin node via admin messages. Do not enable this option unless at least one suitable Remote Admin node has been setup, and the public key is stored in one of the fields above.",
+ "label": "Managed"
+ },
+ "privateKey": {
+ "description": "Used to create a shared key with a remote device",
+ "label": "Private Key"
+ },
+ "publicKey": {
+ "description": "Sent out to other nodes on the mesh to allow them to compute a shared secret key",
+ "label": "Public Key"
+ },
+ "primaryAdminKey": {
+ "description": "The primary public key authorized to send admin messages to this node",
+ "label": "Primary Admin Key"
+ },
+ "secondaryAdminKey": {
+ "description": "The secondary public key authorized to send admin messages to this node",
+ "label": "Secondary Admin Key"
+ },
+ "serialOutputEnabled": {
+ "description": "Serial Console over the Stream API",
+ "label": "Serial Output Enabled"
+ },
+ "tertiaryAdminKey": {
+ "description": "The tertiary public key authorized to send admin messages to this node",
+ "label": "Tertiary Admin Key"
+ },
+ "adminSettings": {
+ "description": "Settings for Admin",
+ "label": "Admin Settings"
+ },
+ "loggingSettings": {
+ "description": "Settings for Logging",
+ "label": "Logging Settings"
+ }
+ },
+ "user": {
+ "title": "User Settings",
+ "description": "Configure your device name and identity settings",
+ "longName": {
+ "label": "Довга назва",
+ "description": "Your full display name (1-40 characters)",
+ "validation": {
+ "min": "Long name must be at least 1 character",
+ "max": "Long name must be at most 40 characters"
+ }
+ },
+ "shortName": {
+ "label": "Коротка назва",
+ "description": "Your abbreviated name (2-4 characters)",
+ "validation": {
+ "min": "Short name must be at least 2 characters",
+ "max": "Short name must be at most 4 characters"
+ }
+ },
+ "isUnmessageable": {
+ "label": "Unmessageable",
+ "description": "Used to identify unmonitored or infrastructure nodes so that messaging is not available to nodes that will never respond."
+ },
+ "isLicensed": {
+ "label": "Licensed amateur radio (HAM)",
+ "description": "Enable if you are a licensed amateur radio operator, enabling this option disables encryption and is not compatible with the default Meshtastic network."
+ }
+ }
+}
diff --git a/packages/web/public/i18n/locales/uk-UA/dashboard.json b/packages/web/public/i18n/locales/uk-UA/dashboard.json
index f356d31b..4fad3e69 100644
--- a/packages/web/public/i18n/locales/uk-UA/dashboard.json
+++ b/packages/web/public/i18n/locales/uk-UA/dashboard.json
@@ -1,12 +1,12 @@
{
- "dashboard": {
- "title": "Connected Devices",
- "description": "Manage your connected Meshtastic devices.",
- "connectionType_ble": "BLE",
- "connectionType_serial": "Серійний порт",
- "connectionType_network": "Мережа",
- "noDevicesTitle": "No devices connected",
- "noDevicesDescription": "Connect a new device to get started.",
- "button_newConnection": "New Connection"
- }
+ "dashboard": {
+ "title": "Connected Devices",
+ "description": "Manage your connected Meshtastic devices.",
+ "connectionType_ble": "BLE",
+ "connectionType_serial": "Серійний порт",
+ "connectionType_network": "Мережа",
+ "noDevicesTitle": "No devices connected",
+ "noDevicesDescription": "Connect a new device to get started.",
+ "button_newConnection": "New Connection"
+ }
}
diff --git a/packages/web/public/i18n/locales/uk-UA/dialog.json b/packages/web/public/i18n/locales/uk-UA/dialog.json
index a548135a..1585b69a 100644
--- a/packages/web/public/i18n/locales/uk-UA/dialog.json
+++ b/packages/web/public/i18n/locales/uk-UA/dialog.json
@@ -1,193 +1,221 @@
{
- "deleteMessages": {
- "description": "This action will clear all message history. This cannot be undone. Are you sure you want to continue?",
- "title": "Очистити всі повідомлення"
- },
- "deviceName": {
- "description": "The Device will restart once the config is saved.",
- "longName": "Довга назва",
- "shortName": "Коротка назва",
- "title": "Змінити назву пристрою",
- "validation": {
- "longNameMax": "Long name must not be more than 40 characters",
- "shortNameMax": "Short name must not be more than 4 characters",
- "longNameMin": "Long name must have at least 1 character",
- "shortNameMin": "Short name must have at least 1 character"
- }
- },
- "import": {
- "description": "The current LoRa configuration will be overridden.",
- "error": {
- "invalidUrl": "Invalid Meshtastic URL"
- },
- "channelPrefix": "Канал: ",
- "channelSetUrl": "Channel Set/QR Code URL",
- "channels": "Канали:",
- "usePreset": "Use Preset?",
- "title": "Import Channel Set"
- },
- "locationResponse": {
- "title": "Розташування: {{identifier}}",
- "altitude": "Висота: ",
- "coordinates": "Координати: ",
- "noCoordinates": "No Coordinates"
- },
- "pkiRegenerateDialog": {
- "title": "Regenerate Pre-Shared Key?",
- "description": "Are you sure you want to regenerate the pre-shared key?",
- "regenerate": "Перегенерувати"
- },
- "newDeviceDialog": {
- "title": "Connect New Device",
- "https": "https",
- "http": "http",
- "tabHttp": "HTTP",
- "tabBluetooth": "Bluetooth",
- "tabSerial": "Серійний порт",
- "useHttps": "Використовувати HTTPS",
- "connecting": "Підключення...",
- "connect": "Connect",
- "connectionFailedAlert": {
- "title": "Connection Failed",
- "descriptionPrefix": "Could not connect to the device. ",
- "httpsHint": "If using HTTPS, you may need to accept a self-signed certificate first. ",
- "openLinkPrefix": "Please open ",
- "openLinkSuffix": " in a new tab",
- "acceptTlsWarningSuffix": ", accept any TLS warnings if prompted, then try again",
- "learnMoreLink": "Learn more"
- },
- "httpConnection": {
- "label": "IP Address/Hostname",
- "placeholder": "000.000.000.000 / meshtastic.local"
- },
- "serialConnection": {
- "noDevicesPaired": "No devices paired yet.",
- "newDeviceButton": "Новий пристрій",
- "deviceIdentifier": "# {{index}} - {{vendorId}} - {{productId}}"
- },
- "bluetoothConnection": {
- "noDevicesPaired": "No devices paired yet.",
- "newDeviceButton": "Новий пристрій",
- "connectionFailed": "Connection failed",
- "deviceDisconnected": "Device disconnected",
- "unknownDevice": "Unknown Device",
- "errorLoadingDevices": "Error loading devices",
- "unknownErrorLoadingDevices": "Unknown error loading devices"
- },
- "validation": {
- "requiresWebBluetooth": "This connection type requires <0>Web Bluetooth0>. Please use a supported browser, like Chrome or Edge.",
- "requiresWebSerial": "This connection type requires <0>Web Serial0>. Please use a supported browser, like Chrome or Edge.",
- "requiresSecureContext": "This application requires a <0>secure context0>. Please connect using HTTPS or localhost.",
- "additionallyRequiresSecureContext": "Additionally, it requires a <0>secure context0>. Please connect using HTTPS or localhost."
- }
- },
- "nodeDetails": {
- "message": "Повідомлення",
- "requestPosition": "Запитати позицію",
- "traceRoute": "Trace Route",
- "airTxUtilization": "Air TX utilization",
- "allRawMetrics": "All Raw Metrics:",
- "batteryLevel": "Battery level",
- "channelUtilization": "Channel utilization",
- "details": "Details:",
- "deviceMetrics": "Device Metrics:",
- "hardware": "Hardware: ",
- "lastHeard": "Last Heard: ",
- "nodeHexPrefix": "Node Hex: ",
- "nodeNumber": "Node Number: ",
- "position": "Position:",
- "role": "Role: ",
- "uptime": "Uptime: ",
- "voltage": "Напруга",
- "title": "Node Details for {{identifier}}",
- "ignoreNode": "Ignore node",
- "removeNode": "Remove node",
- "unignoreNode": "Unignore node",
- "security": "Security:",
- "publicKey": "Public Key: ",
- "messageable": "Messageable: ",
- "KeyManuallyVerifiedTrue": "Public Key has been manually verified",
- "KeyManuallyVerifiedFalse": "Public Key is not manually verified"
- },
- "pkiBackup": {
- "loseKeysWarning": "If you lose your keys, you will need to reset your device.",
- "secureBackup": "Its important to backup your public and private keys and store your backup securely!",
- "footer": "=== END OF KEYS ===",
- "header": "=== MESHTASTIC KEYS FOR {{longName}} ({{shortName}}) ===",
- "privateKey": "Private Key:",
- "publicKey": "Public Key:",
- "fileName": "meshtastic_keys_{{longName}}_{{shortName}}.txt",
- "title": "Backup Keys"
- },
- "pkiBackupReminder": {
- "description": "We recommend backing up your key data regularly. Would you like to back up now?",
- "title": "Backup Reminder",
- "remindLaterPrefix": "Remind me in",
- "remindNever": "Never remind me",
- "backupNow": "Back up now"
- },
- "pkiRegenerate": {
- "description": "Are you sure you want to regenerate key pair?",
- "title": "Regenerate Key Pair"
- },
- "qr": {
- "addChannels": "Add Channels",
- "replaceChannels": "Replace Channels",
- "description": "The current LoRa configuration will also be shared.",
- "sharableUrl": "Sharable URL",
- "title": "Згенерувати QR-код"
- },
- "reboot": {
- "title": "Reboot device",
- "description": "Reboot now or schedule a reboot of the connected node. Optionally, you can choose to reboot into OTA (Over-the-Air) mode.",
- "ota": "Reboot into OTA mode",
- "enterDelay": "Enter delay",
- "scheduled": "Reboot has been scheduled",
- "schedule": "Schedule reboot",
- "now": "Reboot now",
- "cancel": "Cancel scheduled reboot"
- },
- "refreshKeys": {
- "description": {
- "acceptNewKeys": "This will remove the node from device and request new keys.",
- "keyMismatchReasonSuffix": ". This is due to the remote node's current public key does not match the previously stored key for this node.",
- "unableToSendDmPrefix": "Your node is unable to send a direct message to node: "
- },
- "acceptNewKeys": "Accept New Keys",
- "title": "Keys Mismatch - {{identifier}}"
- },
- "removeNode": {
- "description": "Are you sure you want to remove this Node?",
- "title": "Remove Node?"
- },
- "shutdown": {
- "title": "Розклад вимкнення",
- "description": "Turn off the connected node after x minutes."
- },
- "traceRoute": {
- "routeToDestination": "Route to destination:",
- "routeBack": "Route back:"
- },
- "tracerouteResponse": {
- "title": "Traceroute: {{identifier}}"
- },
- "unsafeRoles": {
- "confirmUnderstanding": "Я знаю, що роблю",
- "conjunction": " and the blog post about ",
- "postamble": " and understand the implications of changing the role.",
- "preamble": "I have read the ",
- "choosingRightDeviceRole": "Choosing The Right Device Role",
- "deviceRoleDocumentation": "Device Role Documentation",
- "title": "Ви впевнені?"
- },
- "managedMode": {
- "confirmUnderstanding": "Я знаю, що роблю",
- "title": "Ви впевнені?",
- "description": "Enabling Managed Mode blocks client applications (including the web client) from writing configurations to a radio. Once enabled, radio configurations can only be changed through Remote Admin messages. This setting is not required for remote node administration."
- },
- "clientNotification": {
- "title": "Client Notification",
- "TraceRoute can only be sent once every 30 seconds": "TraceRoute can only be sent once every 30 seconds",
- "Compromised keys were detected and regenerated.": "Compromised keys were detected and regenerated."
- }
+ "deleteMessages": {
+ "description": "This action will clear all message history. This cannot be undone. Are you sure you want to continue?",
+ "title": "Очистити всі повідомлення"
+ },
+ "deviceName": {
+ "description": "The Device will restart once the config is saved.",
+ "longName": "Довга назва",
+ "shortName": "Коротка назва",
+ "title": "Змінити назву пристрою",
+ "validation": {
+ "longNameMax": "Long name must not be more than 40 characters",
+ "shortNameMax": "Short name must not be more than 4 characters",
+ "longNameMin": "Long name must have at least 1 character",
+ "shortNameMin": "Short name must have at least 1 character"
+ }
+ },
+ "import": {
+ "description": "The current LoRa configuration will be overridden.",
+ "error": {
+ "invalidUrl": "Invalid Meshtastic URL"
+ },
+ "channelPrefix": "Канал: ",
+ "primary": "Primary ",
+ "doNotImport": "No not import",
+ "channelName": "Ім'я",
+ "channelSlot": "Slot",
+ "channelSetUrl": "Channel Set/QR Code URL",
+ "useLoraConfig": "Import LoRa Config",
+ "presetDescription": "The current LoRa Config will be replaced.",
+ "title": "Import Channel Set"
+ },
+ "locationResponse": {
+ "title": "Розташування: {{identifier}}",
+ "altitude": "Висота: ",
+ "coordinates": "Координати: ",
+ "noCoordinates": "No Coordinates"
+ },
+ "pkiRegenerateDialog": {
+ "title": "Regenerate Pre-Shared Key?",
+ "description": "Are you sure you want to regenerate the pre-shared key?",
+ "regenerate": "Перегенерувати"
+ },
+ "newDeviceDialog": {
+ "title": "Connect New Device",
+ "https": "https",
+ "http": "http",
+ "tabHttp": "HTTP",
+ "tabBluetooth": "Bluetooth",
+ "tabSerial": "Серійний порт",
+ "useHttps": "Використовувати HTTPS",
+ "connecting": "Підключення...",
+ "connect": "Connect",
+ "connectionFailedAlert": {
+ "title": "Connection Failed",
+ "descriptionPrefix": "Could not connect to the device. ",
+ "httpsHint": "If using HTTPS, you may need to accept a self-signed certificate first. ",
+ "openLinkPrefix": "Please open ",
+ "openLinkSuffix": " in a new tab",
+ "acceptTlsWarningSuffix": ", accept any TLS warnings if prompted, then try again",
+ "learnMoreLink": "Learn more"
+ },
+ "httpConnection": {
+ "label": "IP Address/Hostname",
+ "placeholder": "000.000.000.000 / meshtastic.local"
+ },
+ "serialConnection": {
+ "noDevicesPaired": "No devices paired yet.",
+ "newDeviceButton": "Новий пристрій",
+ "deviceIdentifier": "# {{index}} - {{vendorId}} - {{productId}}"
+ },
+ "bluetoothConnection": {
+ "noDevicesPaired": "No devices paired yet.",
+ "newDeviceButton": "Новий пристрій",
+ "connectionFailed": "Connection failed",
+ "deviceDisconnected": "Device disconnected",
+ "unknownDevice": "Unknown Device",
+ "errorLoadingDevices": "Error loading devices",
+ "unknownErrorLoadingDevices": "Unknown error loading devices"
+ },
+ "validation": {
+ "requiresWebBluetooth": "This connection type requires <0>Web Bluetooth0>. Please use a supported browser, like Chrome or Edge.",
+ "requiresWebSerial": "This connection type requires <0>Web Serial0>. Please use a supported browser, like Chrome or Edge.",
+ "requiresSecureContext": "This application requires a <0>secure context0>. Please connect using HTTPS or localhost.",
+ "additionallyRequiresSecureContext": "Additionally, it requires a <0>secure context0>. Please connect using HTTPS or localhost."
+ }
+ },
+ "nodeDetails": {
+ "message": "Повідомлення",
+ "requestPosition": "Запитати позицію",
+ "traceRoute": "Trace Route",
+ "airTxUtilization": "Air TX utilization",
+ "allRawMetrics": "All Raw Metrics:",
+ "batteryLevel": "Battery level",
+ "channelUtilization": "Channel utilization",
+ "details": "Details:",
+ "deviceMetrics": "Device Metrics:",
+ "hardware": "Hardware: ",
+ "lastHeard": "Last Heard: ",
+ "nodeHexPrefix": "Node Hex: ",
+ "nodeNumber": "Node Number: ",
+ "position": "Position:",
+ "role": "Role: ",
+ "uptime": "Uptime: ",
+ "voltage": "Напруга",
+ "title": "Node Details for {{identifier}}",
+ "ignoreNode": "Ignore node",
+ "removeNode": "Remove node",
+ "unignoreNode": "Unignore node",
+ "security": "Security:",
+ "publicKey": "Public Key: ",
+ "messageable": "Messageable: ",
+ "KeyManuallyVerifiedTrue": "Public Key has been manually verified",
+ "KeyManuallyVerifiedFalse": "Public Key is not manually verified"
+ },
+ "pkiBackup": {
+ "loseKeysWarning": "If you lose your keys, you will need to reset your device.",
+ "secureBackup": "Its important to backup your public and private keys and store your backup securely!",
+ "footer": "=== END OF KEYS ===",
+ "header": "=== MESHTASTIC KEYS FOR {{longName}} ({{shortName}}) ===",
+ "privateKey": "Private Key:",
+ "publicKey": "Public Key:",
+ "fileName": "meshtastic_keys_{{longName}}_{{shortName}}.txt",
+ "title": "Backup Keys"
+ },
+ "pkiBackupReminder": {
+ "description": "We recommend backing up your key data regularly. Would you like to back up now?",
+ "title": "Backup Reminder",
+ "remindLaterPrefix": "Remind me in",
+ "remindNever": "Never remind me",
+ "backupNow": "Back up now"
+ },
+ "pkiRegenerate": {
+ "description": "Are you sure you want to regenerate key pair?",
+ "title": "Regenerate Key Pair"
+ },
+ "qr": {
+ "addChannels": "Add Channels",
+ "replaceChannels": "Replace Channels",
+ "description": "The current LoRa configuration will also be shared.",
+ "sharableUrl": "Sharable URL",
+ "title": "Згенерувати QR-код"
+ },
+ "reboot": {
+ "title": "Reboot device",
+ "description": "Reboot now or schedule a reboot of the connected node. Optionally, you can choose to reboot into OTA (Over-the-Air) mode.",
+ "ota": "Reboot into OTA mode",
+ "enterDelay": "Enter delay",
+ "scheduled": "Reboot has been scheduled",
+ "schedule": "Schedule reboot",
+ "now": "Reboot now",
+ "cancel": "Cancel scheduled reboot"
+ },
+ "refreshKeys": {
+ "description": {
+ "acceptNewKeys": "This will remove the node from device and request new keys.",
+ "keyMismatchReasonSuffix": ". This is due to the remote node's current public key does not match the previously stored key for this node.",
+ "unableToSendDmPrefix": "Your node is unable to send a direct message to node: "
+ },
+ "acceptNewKeys": "Accept New Keys",
+ "title": "Keys Mismatch - {{identifier}}"
+ },
+ "removeNode": {
+ "description": "Are you sure you want to remove this Node?",
+ "title": "Remove Node?"
+ },
+ "shutdown": {
+ "title": "Розклад вимкнення",
+ "description": "Turn off the connected node after x minutes."
+ },
+ "traceRoute": {
+ "routeToDestination": "Route to destination:",
+ "routeBack": "Route back:"
+ },
+ "tracerouteResponse": {
+ "title": "Traceroute: {{identifier}}"
+ },
+ "unsafeRoles": {
+ "confirmUnderstanding": "Я знаю, що роблю",
+ "conjunction": " and the blog post about ",
+ "postamble": " and understand the implications of changing the role.",
+ "preamble": "I have read the ",
+ "choosingRightDeviceRole": "Choosing The Right Device Role",
+ "deviceRoleDocumentation": "Device Role Documentation",
+ "title": "Ви впевнені?"
+ },
+ "managedMode": {
+ "confirmUnderstanding": "Я знаю, що роблю",
+ "title": "Ви впевнені?",
+ "description": "Enabling Managed Mode blocks client applications (including the web client) from writing configurations to a radio. Once enabled, radio configurations can only be changed through Remote Admin messages. This setting is not required for remote node administration."
+ },
+ "clientNotification": {
+ "title": "Client Notification",
+ "TraceRoute can only be sent once every 30 seconds": "TraceRoute can only be sent once every 30 seconds",
+ "Compromised keys were detected and regenerated.": "Compromised keys were detected and regenerated."
+ },
+ "resetNodeDb": {
+ "title": "Reset Node Database",
+ "description": "This will clear all nodes from the connected device's node database and clear all message history in the client. This cannot be undone. Are you sure you want to continue?",
+ "confirm": "Reset Node Database",
+ "failedTitle": "There was an error resetting the Node DB. Please try again."
+ },
+ "clearAllStores": {
+ "title": "Clear All Local Storage",
+ "description": "This will clear all locally stored data, including message history and node databases for all previously connected devices. This will require you to reconnect to your node once complete and cannot be undone. Are you sure you want to continue?",
+ "confirm": "Clear all local storage",
+ "failedTitle": "There was an error clearing local storage. Please try again."
+ },
+ "factoryResetDevice": {
+ "title": "Factory Reset Device",
+ "description": "This will factory reset the connected device, erasing all configurations and data on the device as well as all nodes and messages saved in the client. This cannot be undone. Are you sure you want to continue?",
+ "confirm": "Factory Reset Device",
+ "failedTitle": "There was an error performing the factory reset. Please try again."
+ },
+ "factoryResetConfig": {
+ "title": "Factory Reset Config",
+ "description": "This will factory reset the configuration on the connected device, erasing all configurations on the device. This cannot be undone. Are you sure you want to continue?",
+ "confirm": "Factory Reset Config",
+ "failedTitle": "There was an error performing the factory reset. Please try again."
+ }
}
diff --git a/packages/web/public/i18n/locales/uk-UA/map.json b/packages/web/public/i18n/locales/uk-UA/map.json
new file mode 100644
index 00000000..bcfda0db
--- /dev/null
+++ b/packages/web/public/i18n/locales/uk-UA/map.json
@@ -0,0 +1,38 @@
+{
+ "maplibre": {
+ "GeolocateControl.FindMyLocation": "Find my location",
+ "NavigationControl.ZoomIn": "Zoom in",
+ "NavigationControl.ZoomOut": "Zoom out",
+ "CooperativeGesturesHandler.WindowsHelpText": "Use Ctrl + scroll to zoom the map",
+ "CooperativeGesturesHandler.MacHelpText": "Use ⌘ + scroll to zoom the map",
+ "CooperativeGesturesHandler.MobileHelpText": "Use two fingers to move the map"
+ },
+ "layerTool": {
+ "nodeMarkers": "Show nodes",
+ "directNeighbors": "Show direct connections",
+ "remoteNeighbors": "Show remote connections",
+ "positionPrecision": "Show position precision",
+ "traceroutes": "Show traceroutes",
+ "waypoints": "Show waypoints"
+ },
+ "mapMenu": {
+ "locateAria": "Locate my node",
+ "layersAria": "Change map style"
+ },
+ "waypointDetail": {
+ "edit": "Редагувати",
+ "description": "Description:",
+ "createdBy": "Edited by:",
+ "createdDate": "Created:",
+ "updated": "Updated:",
+ "expires": "Expires:",
+ "distance": "Distance:",
+ "bearing": "Absolute bearing:",
+ "lockedTo": "Locked by:",
+ "latitude": "Latitude:",
+ "longitude": "Longitude:"
+ },
+ "myNode": {
+ "tooltip": "This device"
+ }
+}
diff --git a/packages/web/public/i18n/locales/uk-UA/messages.json b/packages/web/public/i18n/locales/uk-UA/messages.json
index 57301fe4..0500adb8 100644
--- a/packages/web/public/i18n/locales/uk-UA/messages.json
+++ b/packages/web/public/i18n/locales/uk-UA/messages.json
@@ -1,39 +1,39 @@
{
- "page": {
- "title": "Повідомлення: {{chatName}}",
- "placeholder": "Введіть повідомлення"
- },
- "emptyState": {
- "title": "Оберіть чат",
- "text": "Поки немає повідомлень."
- },
- "selectChatPrompt": {
- "text": "Виберіть канал або вузол для початку обміну повідомленнями."
- },
- "sendMessage": {
- "placeholder": "Введіть ваше повідомлення тут...",
- "sendButton": "Надіслати"
- },
- "actionsMenu": {
- "addReactionLabel": "Додати реакцію",
- "replyLabel": "Відповісти"
- },
- "deliveryStatus": {
- "delivered": {
- "label": "Повідомлення доставлено",
- "displayText": "Повідомлення доставлено"
- },
- "failed": {
- "label": "Помилка доставлення повідомлення",
- "displayText": "Надсилання не відбулося"
- },
- "unknown": {
- "label": "Статус повідомлення невідомий",
- "displayText": "Невідомий стан"
- },
- "waiting": {
- "label": "Надсилання повідомлення",
- "displayText": "Очікування доставки"
- }
- }
+ "page": {
+ "title": "Повідомлення: {{chatName}}",
+ "placeholder": "Введіть повідомлення"
+ },
+ "emptyState": {
+ "title": "Оберіть чат",
+ "text": "Поки немає повідомлень."
+ },
+ "selectChatPrompt": {
+ "text": "Виберіть канал або вузол для початку обміну повідомленнями."
+ },
+ "sendMessage": {
+ "placeholder": "Введіть ваше повідомлення тут...",
+ "sendButton": "Надіслати"
+ },
+ "actionsMenu": {
+ "addReactionLabel": "Додати реакцію",
+ "replyLabel": "Відповісти"
+ },
+ "deliveryStatus": {
+ "delivered": {
+ "label": "Повідомлення доставлено",
+ "displayText": "Повідомлення доставлено"
+ },
+ "failed": {
+ "label": "Помилка доставлення повідомлення",
+ "displayText": "Надсилання не відбулося"
+ },
+ "unknown": {
+ "label": "Статус повідомлення невідомий",
+ "displayText": "Невідомий стан"
+ },
+ "waiting": {
+ "label": "Надсилання повідомлення",
+ "displayText": "Очікування доставки"
+ }
+ }
}
diff --git a/packages/web/public/i18n/locales/uk-UA/moduleConfig.json b/packages/web/public/i18n/locales/uk-UA/moduleConfig.json
index 6f272dc7..c86ae43f 100644
--- a/packages/web/public/i18n/locales/uk-UA/moduleConfig.json
+++ b/packages/web/public/i18n/locales/uk-UA/moduleConfig.json
@@ -1,448 +1,448 @@
{
- "page": {
- "tabAmbientLighting": "Ambient Lighting",
- "tabAudio": "Аудіо",
- "tabCannedMessage": "Canned",
- "tabDetectionSensor": "Detection Sensor",
- "tabExternalNotification": "Ext Notif",
- "tabMqtt": "MQTT",
- "tabNeighborInfo": "Neighbor Info",
- "tabPaxcounter": "Paxcounter",
- "tabRangeTest": "Тест дальності",
- "tabSerial": "Серійний порт",
- "tabStoreAndForward": "S&F",
- "tabTelemetry": "Телеметрія"
- },
- "ambientLighting": {
- "title": "Ambient Lighting Settings",
- "description": "Settings for the Ambient Lighting module",
- "ledState": {
- "label": "LED State",
- "description": "Sets LED to on or off"
- },
- "current": {
- "label": "Current",
- "description": "Sets the current for the LED output. Default is 10"
- },
- "red": {
- "label": "Червоний",
- "description": "Sets the red LED level. Values are 0-255"
- },
- "green": {
- "label": "Зелений",
- "description": "Sets the green LED level. Values are 0-255"
- },
- "blue": {
- "label": "Синій",
- "description": "Sets the blue LED level. Values are 0-255"
- }
- },
- "audio": {
- "title": "Audio Settings",
- "description": "Settings for the Audio module",
- "codec2Enabled": {
- "label": "Codec 2 Enabled",
- "description": "Enable Codec 2 audio encoding"
- },
- "pttPin": {
- "label": "PTT Pin",
- "description": "GPIO pin to use for PTT"
- },
- "bitrate": {
- "label": "Bitrate",
- "description": "Bitrate to use for audio encoding"
- },
- "i2sWs": {
- "label": "i2S WS",
- "description": "GPIO pin to use for i2S WS"
- },
- "i2sSd": {
- "label": "i2S SD",
- "description": "GPIO pin to use for i2S SD"
- },
- "i2sDin": {
- "label": "i2S DIN",
- "description": "GPIO pin to use for i2S DIN"
- },
- "i2sSck": {
- "label": "i2S SCK",
- "description": "GPIO pin to use for i2S SCK"
- }
- },
- "cannedMessage": {
- "title": "Canned Message Settings",
- "description": "Settings for the Canned Message module",
- "moduleEnabled": {
- "label": "Module Enabled",
- "description": "Enable Canned Message"
- },
- "rotary1Enabled": {
- "label": "Rotary Encoder #1 Enabled",
- "description": "Enable the rotary encoder"
- },
- "inputbrokerPinA": {
- "label": "Encoder Pin A",
- "description": "GPIO Pin Value (1-39) For encoder port A"
- },
- "inputbrokerPinB": {
- "label": "Encoder Pin B",
- "description": "GPIO Pin Value (1-39) For encoder port B"
- },
- "inputbrokerPinPress": {
- "label": "Encoder Pin Press",
- "description": "GPIO Pin Value (1-39) For encoder Press"
- },
- "inputbrokerEventCw": {
- "label": "Clockwise event",
- "description": "Select input event."
- },
- "inputbrokerEventCcw": {
- "label": "Counter Clockwise event",
- "description": "Select input event."
- },
- "inputbrokerEventPress": {
- "label": "Press event",
- "description": "Select input event"
- },
- "updown1Enabled": {
- "label": "Up Down enabled",
- "description": "Enable the up / down encoder"
- },
- "allowInputSource": {
- "label": "Allow Input Source",
- "description": "Select from: '_any', 'rotEnc1', 'upDownEnc1', 'cardkb'"
- },
- "sendBell": {
- "label": "Send Bell",
- "description": "Sends a bell character with each message"
- }
- },
- "detectionSensor": {
- "title": "Detection Sensor Settings",
- "description": "Settings for the Detection Sensor module",
- "enabled": {
- "label": "Увімкнено",
- "description": "Enable or disable Detection Sensor Module"
- },
- "minimumBroadcastSecs": {
- "label": "Minimum Broadcast Seconds",
- "description": "The interval in seconds of how often we can send a message to the mesh when a state change is detected"
- },
- "stateBroadcastSecs": {
- "label": "State Broadcast Seconds",
- "description": "The interval in seconds of how often we should send a message to the mesh with the current state regardless of changes"
- },
- "sendBell": {
- "label": "Send Bell",
- "description": "Send ASCII bell with alert message"
- },
- "name": {
- "label": "Friendly Name",
- "description": "Used to format the message sent to mesh, max 20 Characters"
- },
- "monitorPin": {
- "label": "Monitor Pin",
- "description": "The GPIO pin to monitor for state changes"
- },
- "detectionTriggerType": {
- "label": "Detection Triggered Type",
- "description": "The type of trigger event to be used"
- },
- "usePullup": {
- "label": "Use Pullup",
- "description": "Whether or not use INPUT_PULLUP mode for GPIO pin"
- }
- },
- "externalNotification": {
- "title": "External Notification Settings",
- "description": "Configure the external notification module",
- "enabled": {
- "label": "Module Enabled",
- "description": "Enable External Notification"
- },
- "outputMs": {
- "label": "Output MS",
- "description": "Output MS"
- },
- "output": {
- "label": "Output",
- "description": "Output"
- },
- "outputVibra": {
- "label": "Output Vibrate",
- "description": "Output Vibrate"
- },
- "outputBuzzer": {
- "label": "Output Buzzer",
- "description": "Output Buzzer"
- },
- "active": {
- "label": "Active",
- "description": "Active"
- },
- "alertMessage": {
- "label": "Alert Message",
- "description": "Alert Message"
- },
- "alertMessageVibra": {
- "label": "Alert Message Vibrate",
- "description": "Alert Message Vibrate"
- },
- "alertMessageBuzzer": {
- "label": "Alert Message Buzzer",
- "description": "Alert Message Buzzer"
- },
- "alertBell": {
- "label": "Alert Bell",
- "description": "Should an alert be triggered when receiving an incoming bell?"
- },
- "alertBellVibra": {
- "label": "Alert Bell Vibrate",
- "description": "Alert Bell Vibrate"
- },
- "alertBellBuzzer": {
- "label": "Alert Bell Buzzer",
- "description": "Alert Bell Buzzer"
- },
- "usePwm": {
- "label": "Use PWM",
- "description": "Use PWM"
- },
- "nagTimeout": {
- "label": "Nag Timeout",
- "description": "Nag Timeout"
- },
- "useI2sAsBuzzer": {
- "label": "Use I²S Pin as Buzzer",
- "description": "Designate I²S Pin as Buzzer Output"
- }
- },
- "mqtt": {
- "title": "Налаштування MQTT",
- "description": "Settings for the MQTT module",
- "enabled": {
- "label": "Увімкнено",
- "description": "Enable or disable MQTT"
- },
- "address": {
- "label": "MQTT Server Address",
- "description": "MQTT server address to use for default/custom servers"
- },
- "username": {
- "label": "Ім'я користувача MQTT",
- "description": "MQTT username to use for default/custom servers"
- },
- "password": {
- "label": "Пароль MQTT",
- "description": "MQTT password to use for default/custom servers"
- },
- "encryptionEnabled": {
- "label": "Encryption Enabled",
- "description": "Enable or disable MQTT encryption. Note: All messages are sent to the MQTT broker unencrypted if this option is not enabled, even when your uplink channels have encryption keys set. This includes position data."
- },
- "jsonEnabled": {
- "label": "JSON Enabled",
- "description": "Whether to send/consume JSON packets on MQTT"
- },
- "tlsEnabled": {
- "label": "TLS Enabled",
- "description": "Enable or disable TLS"
- },
- "root": {
- "label": "Root topic",
- "description": "MQTT root topic to use for default/custom servers"
- },
- "proxyToClientEnabled": {
- "label": "MQTT Client Proxy Enabled",
- "description": "Utilizes the network connection to proxy MQTT messages to the client."
- },
- "mapReportingEnabled": {
- "label": "Map Reporting Enabled",
- "description": "Your node will periodically send an unencrypted map report packet to the configured MQTT server, this includes id, short and long name, approximate location, hardware model, role, firmware version, LoRa region, modem preset and primary channel name."
- },
- "mapReportSettings": {
- "publishIntervalSecs": {
- "label": "Map Report Publish Interval (s)",
- "description": "Interval in seconds to publish map reports"
- },
- "positionPrecision": {
- "label": "Approximate Location",
- "description": "Position shared will be accurate within this distance",
- "options": {
- "metric_km23": "Within 23 km",
- "metric_km12": "Within 12 km",
- "metric_km5_8": "Within 5.8 km",
- "metric_km2_9": "Within 2.9 km",
- "metric_km1_5": "Within 1.5 km",
- "metric_m700": "Within 700 m",
- "metric_m350": "Within 350 m",
- "metric_m200": "Within 200 m",
- "metric_m90": "Within 90 m",
- "metric_m50": "Within 50 m",
- "imperial_mi15": "У межах 15 миль",
- "imperial_mi7_3": "У межах 7,3 милі",
- "imperial_mi3_6": "У межах 3,6 милі",
- "imperial_mi1_8": "У межах 1,8 милі",
- "imperial_mi0_9": "У межах 0,9 милі",
- "imperial_mi0_5": "У межах 0,5 милі",
- "imperial_mi0_2": "У межах 0,2 милі",
- "imperial_ft600": "У межах 600 фт",
- "imperial_ft300": "У межах 300 фт",
- "imperial_ft150": "У межах 150 фт"
- }
- }
- }
- },
- "neighborInfo": {
- "title": "Neighbor Info Settings",
- "description": "Settings for the Neighbor Info module",
- "enabled": {
- "label": "Увімкнено",
- "description": "Enable or disable Neighbor Info Module"
- },
- "updateInterval": {
- "label": "Update Interval",
- "description": "Interval in seconds of how often we should try to send our Neighbor Info to the mesh"
- }
- },
- "paxcounter": {
- "title": "Paxcounter Settings",
- "description": "Settings for the Paxcounter module",
- "enabled": {
- "label": "Module Enabled",
- "description": "Enable Paxcounter"
- },
- "paxcounterUpdateInterval": {
- "label": "Update Interval (seconds)",
- "description": "How long to wait between sending paxcounter packets"
- },
- "wifiThreshold": {
- "label": "WiFi RSSI Threshold",
- "description": "At what WiFi RSSI level should the counter increase. Defaults to -80."
- },
- "bleThreshold": {
- "label": "BLE RSSI Threshold",
- "description": "At what BLE RSSI level should the counter increase. Defaults to -80."
- }
- },
- "rangeTest": {
- "title": "Range Test Settings",
- "description": "Settings for the Range Test module",
- "enabled": {
- "label": "Module Enabled",
- "description": "Enable Range Test"
- },
- "sender": {
- "label": "Message Interval",
- "description": "How long to wait between sending test packets"
- },
- "save": {
- "label": "Save CSV to storage",
- "description": "ESP32 Only"
- }
- },
- "serial": {
- "title": "Serial Settings",
- "description": "Settings for the Serial module",
- "enabled": {
- "label": "Module Enabled",
- "description": "Enable Serial output"
- },
- "echo": {
- "label": "Echo",
- "description": "Any packets you send will be echoed back to your device"
- },
- "rxd": {
- "label": "Receive Pin",
- "description": "Set the GPIO pin to the RXD pin you have set up."
- },
- "txd": {
- "label": "Transmit Pin",
- "description": "Set the GPIO pin to the TXD pin you have set up."
- },
- "baud": {
- "label": "Baud Rate",
- "description": "The serial baud rate"
- },
- "timeout": {
- "label": "Таймаут",
- "description": "Seconds to wait before we consider your packet as 'done'"
- },
- "mode": {
- "label": "Mode",
- "description": "Select Mode"
- },
- "overrideConsoleSerialPort": {
- "label": "Override Console Serial Port",
- "description": "If you have a serial port connected to the console, this will override it."
- }
- },
- "storeForward": {
- "title": "Store & Forward Settings",
- "description": "Settings for the Store & Forward module",
- "enabled": {
- "label": "Module Enabled",
- "description": "Enable Store & Forward"
- },
- "heartbeat": {
- "label": "Heartbeat Enabled",
- "description": "Enable Store & Forward heartbeat"
- },
- "records": {
- "label": "Number of records",
- "description": "Number of records to store"
- },
- "historyReturnMax": {
- "label": "History return max",
- "description": "Max number of records to return"
- },
- "historyReturnWindow": {
- "label": "History return window",
- "description": "Return records from this time window (minutes)"
- }
- },
- "telemetry": {
- "title": "Telemetry Settings",
- "description": "Settings for the Telemetry module",
- "deviceUpdateInterval": {
- "label": "Device Metrics",
- "description": "Device metrics update interval (seconds)"
- },
- "environmentUpdateInterval": {
- "label": "Environment metrics update interval (seconds)",
- "description": ""
- },
- "environmentMeasurementEnabled": {
- "label": "Module Enabled",
- "description": "Enable the Environment Telemetry"
- },
- "environmentScreenEnabled": {
- "label": "Displayed on Screen",
- "description": "Show the Telemetry Module on the OLED"
- },
- "environmentDisplayFahrenheit": {
- "label": "Display Fahrenheit",
- "description": "Display temp in Fahrenheit"
- },
- "airQualityEnabled": {
- "label": "Air Quality Enabled",
- "description": "Enable the Air Quality Telemetry"
- },
- "airQualityInterval": {
- "label": "Air Quality Update Interval",
- "description": "How often to send Air Quality data over the mesh"
- },
- "powerMeasurementEnabled": {
- "label": "Power Measurement Enabled",
- "description": "Enable the Power Measurement Telemetry"
- },
- "powerUpdateInterval": {
- "label": "Power Update Interval",
- "description": "How often to send Power data over the mesh"
- },
- "powerScreenEnabled": {
- "label": "Power Screen Enabled",
- "description": "Enable the Power Telemetry Screen"
- }
- }
+ "page": {
+ "tabAmbientLighting": "Ambient Lighting",
+ "tabAudio": "Аудіо",
+ "tabCannedMessage": "Canned",
+ "tabDetectionSensor": "Detection Sensor",
+ "tabExternalNotification": "Ext Notif",
+ "tabMqtt": "MQTT",
+ "tabNeighborInfo": "Neighbor Info",
+ "tabPaxcounter": "Paxcounter",
+ "tabRangeTest": "Тест дальності",
+ "tabSerial": "Серійний порт",
+ "tabStoreAndForward": "S&F",
+ "tabTelemetry": "Телеметрія"
+ },
+ "ambientLighting": {
+ "title": "Ambient Lighting Settings",
+ "description": "Settings for the Ambient Lighting module",
+ "ledState": {
+ "label": "LED State",
+ "description": "Sets LED to on or off"
+ },
+ "current": {
+ "label": "Current",
+ "description": "Sets the current for the LED output. Default is 10"
+ },
+ "red": {
+ "label": "Червоний",
+ "description": "Sets the red LED level. Values are 0-255"
+ },
+ "green": {
+ "label": "Зелений",
+ "description": "Sets the green LED level. Values are 0-255"
+ },
+ "blue": {
+ "label": "Синій",
+ "description": "Sets the blue LED level. Values are 0-255"
+ }
+ },
+ "audio": {
+ "title": "Audio Settings",
+ "description": "Settings for the Audio module",
+ "codec2Enabled": {
+ "label": "Codec 2 Enabled",
+ "description": "Enable Codec 2 audio encoding"
+ },
+ "pttPin": {
+ "label": "PTT Pin",
+ "description": "GPIO pin to use for PTT"
+ },
+ "bitrate": {
+ "label": "Bitrate",
+ "description": "Bitrate to use for audio encoding"
+ },
+ "i2sWs": {
+ "label": "i2S WS",
+ "description": "GPIO pin to use for i2S WS"
+ },
+ "i2sSd": {
+ "label": "i2S SD",
+ "description": "GPIO pin to use for i2S SD"
+ },
+ "i2sDin": {
+ "label": "i2S DIN",
+ "description": "GPIO pin to use for i2S DIN"
+ },
+ "i2sSck": {
+ "label": "i2S SCK",
+ "description": "GPIO pin to use for i2S SCK"
+ }
+ },
+ "cannedMessage": {
+ "title": "Canned Message Settings",
+ "description": "Settings for the Canned Message module",
+ "moduleEnabled": {
+ "label": "Module Enabled",
+ "description": "Enable Canned Message"
+ },
+ "rotary1Enabled": {
+ "label": "Rotary Encoder #1 Enabled",
+ "description": "Enable the rotary encoder"
+ },
+ "inputbrokerPinA": {
+ "label": "Encoder Pin A",
+ "description": "GPIO Pin Value (1-39) For encoder port A"
+ },
+ "inputbrokerPinB": {
+ "label": "Encoder Pin B",
+ "description": "GPIO Pin Value (1-39) For encoder port B"
+ },
+ "inputbrokerPinPress": {
+ "label": "Encoder Pin Press",
+ "description": "GPIO Pin Value (1-39) For encoder Press"
+ },
+ "inputbrokerEventCw": {
+ "label": "Clockwise event",
+ "description": "Select input event."
+ },
+ "inputbrokerEventCcw": {
+ "label": "Counter Clockwise event",
+ "description": "Select input event."
+ },
+ "inputbrokerEventPress": {
+ "label": "Press event",
+ "description": "Select input event"
+ },
+ "updown1Enabled": {
+ "label": "Up Down enabled",
+ "description": "Enable the up / down encoder"
+ },
+ "allowInputSource": {
+ "label": "Allow Input Source",
+ "description": "Select from: '_any', 'rotEnc1', 'upDownEnc1', 'cardkb'"
+ },
+ "sendBell": {
+ "label": "Send Bell",
+ "description": "Sends a bell character with each message"
+ }
+ },
+ "detectionSensor": {
+ "title": "Detection Sensor Settings",
+ "description": "Settings for the Detection Sensor module",
+ "enabled": {
+ "label": "Увімкнено",
+ "description": "Enable or disable Detection Sensor Module"
+ },
+ "minimumBroadcastSecs": {
+ "label": "Minimum Broadcast Seconds",
+ "description": "The interval in seconds of how often we can send a message to the mesh when a state change is detected"
+ },
+ "stateBroadcastSecs": {
+ "label": "State Broadcast Seconds",
+ "description": "The interval in seconds of how often we should send a message to the mesh with the current state regardless of changes"
+ },
+ "sendBell": {
+ "label": "Send Bell",
+ "description": "Send ASCII bell with alert message"
+ },
+ "name": {
+ "label": "Friendly Name",
+ "description": "Used to format the message sent to mesh, max 20 Characters"
+ },
+ "monitorPin": {
+ "label": "Monitor Pin",
+ "description": "The GPIO pin to monitor for state changes"
+ },
+ "detectionTriggerType": {
+ "label": "Detection Triggered Type",
+ "description": "The type of trigger event to be used"
+ },
+ "usePullup": {
+ "label": "Use Pullup",
+ "description": "Whether or not use INPUT_PULLUP mode for GPIO pin"
+ }
+ },
+ "externalNotification": {
+ "title": "External Notification Settings",
+ "description": "Configure the external notification module",
+ "enabled": {
+ "label": "Module Enabled",
+ "description": "Enable External Notification"
+ },
+ "outputMs": {
+ "label": "Output MS",
+ "description": "Output MS"
+ },
+ "output": {
+ "label": "Output",
+ "description": "Output"
+ },
+ "outputVibra": {
+ "label": "Output Vibrate",
+ "description": "Output Vibrate"
+ },
+ "outputBuzzer": {
+ "label": "Output Buzzer",
+ "description": "Output Buzzer"
+ },
+ "active": {
+ "label": "Active",
+ "description": "Active"
+ },
+ "alertMessage": {
+ "label": "Alert Message",
+ "description": "Alert Message"
+ },
+ "alertMessageVibra": {
+ "label": "Alert Message Vibrate",
+ "description": "Alert Message Vibrate"
+ },
+ "alertMessageBuzzer": {
+ "label": "Alert Message Buzzer",
+ "description": "Alert Message Buzzer"
+ },
+ "alertBell": {
+ "label": "Alert Bell",
+ "description": "Should an alert be triggered when receiving an incoming bell?"
+ },
+ "alertBellVibra": {
+ "label": "Alert Bell Vibrate",
+ "description": "Alert Bell Vibrate"
+ },
+ "alertBellBuzzer": {
+ "label": "Alert Bell Buzzer",
+ "description": "Alert Bell Buzzer"
+ },
+ "usePwm": {
+ "label": "Use PWM",
+ "description": "Use PWM"
+ },
+ "nagTimeout": {
+ "label": "Nag Timeout",
+ "description": "Nag Timeout"
+ },
+ "useI2sAsBuzzer": {
+ "label": "Use I²S Pin as Buzzer",
+ "description": "Designate I²S Pin as Buzzer Output"
+ }
+ },
+ "mqtt": {
+ "title": "Налаштування MQTT",
+ "description": "Settings for the MQTT module",
+ "enabled": {
+ "label": "Увімкнено",
+ "description": "Enable or disable MQTT"
+ },
+ "address": {
+ "label": "MQTT Server Address",
+ "description": "MQTT server address to use for default/custom servers"
+ },
+ "username": {
+ "label": "Ім'я користувача MQTT",
+ "description": "MQTT username to use for default/custom servers"
+ },
+ "password": {
+ "label": "Пароль MQTT",
+ "description": "MQTT password to use for default/custom servers"
+ },
+ "encryptionEnabled": {
+ "label": "Encryption Enabled",
+ "description": "Enable or disable MQTT encryption. Note: All messages are sent to the MQTT broker unencrypted if this option is not enabled, even when your uplink channels have encryption keys set. This includes position data."
+ },
+ "jsonEnabled": {
+ "label": "JSON Enabled",
+ "description": "Whether to send/consume JSON packets on MQTT"
+ },
+ "tlsEnabled": {
+ "label": "TLS Enabled",
+ "description": "Enable or disable TLS"
+ },
+ "root": {
+ "label": "Root topic",
+ "description": "MQTT root topic to use for default/custom servers"
+ },
+ "proxyToClientEnabled": {
+ "label": "MQTT Client Proxy Enabled",
+ "description": "Utilizes the network connection to proxy MQTT messages to the client."
+ },
+ "mapReportingEnabled": {
+ "label": "Map Reporting Enabled",
+ "description": "Your node will periodically send an unencrypted map report packet to the configured MQTT server, this includes id, short and long name, approximate location, hardware model, role, firmware version, LoRa region, modem preset and primary channel name."
+ },
+ "mapReportSettings": {
+ "publishIntervalSecs": {
+ "label": "Map Report Publish Interval (s)",
+ "description": "Interval in seconds to publish map reports"
+ },
+ "positionPrecision": {
+ "label": "Approximate Location",
+ "description": "Position shared will be accurate within this distance",
+ "options": {
+ "metric_km23": "Within 23 km",
+ "metric_km12": "Within 12 km",
+ "metric_km5_8": "Within 5.8 km",
+ "metric_km2_9": "Within 2.9 km",
+ "metric_km1_5": "Within 1.5 km",
+ "metric_m700": "Within 700 m",
+ "metric_m350": "Within 350 m",
+ "metric_m200": "Within 200 m",
+ "metric_m90": "Within 90 m",
+ "metric_m50": "Within 50 m",
+ "imperial_mi15": "У межах 15 миль",
+ "imperial_mi7_3": "У межах 7,3 милі",
+ "imperial_mi3_6": "У межах 3,6 милі",
+ "imperial_mi1_8": "У межах 1,8 милі",
+ "imperial_mi0_9": "У межах 0,9 милі",
+ "imperial_mi0_5": "У межах 0,5 милі",
+ "imperial_mi0_2": "У межах 0,2 милі",
+ "imperial_ft600": "У межах 600 фт",
+ "imperial_ft300": "У межах 300 фт",
+ "imperial_ft150": "У межах 150 фт"
+ }
+ }
+ }
+ },
+ "neighborInfo": {
+ "title": "Neighbor Info Settings",
+ "description": "Settings for the Neighbor Info module",
+ "enabled": {
+ "label": "Увімкнено",
+ "description": "Enable or disable Neighbor Info Module"
+ },
+ "updateInterval": {
+ "label": "Update Interval",
+ "description": "Interval in seconds of how often we should try to send our Neighbor Info to the mesh"
+ }
+ },
+ "paxcounter": {
+ "title": "Paxcounter Settings",
+ "description": "Settings for the Paxcounter module",
+ "enabled": {
+ "label": "Module Enabled",
+ "description": "Enable Paxcounter"
+ },
+ "paxcounterUpdateInterval": {
+ "label": "Update Interval (seconds)",
+ "description": "How long to wait between sending paxcounter packets"
+ },
+ "wifiThreshold": {
+ "label": "WiFi RSSI Threshold",
+ "description": "At what WiFi RSSI level should the counter increase. Defaults to -80."
+ },
+ "bleThreshold": {
+ "label": "BLE RSSI Threshold",
+ "description": "At what BLE RSSI level should the counter increase. Defaults to -80."
+ }
+ },
+ "rangeTest": {
+ "title": "Range Test Settings",
+ "description": "Settings for the Range Test module",
+ "enabled": {
+ "label": "Module Enabled",
+ "description": "Enable Range Test"
+ },
+ "sender": {
+ "label": "Message Interval",
+ "description": "How long to wait between sending test packets"
+ },
+ "save": {
+ "label": "Save CSV to storage",
+ "description": "ESP32 Only"
+ }
+ },
+ "serial": {
+ "title": "Serial Settings",
+ "description": "Settings for the Serial module",
+ "enabled": {
+ "label": "Module Enabled",
+ "description": "Enable Serial output"
+ },
+ "echo": {
+ "label": "Echo",
+ "description": "Any packets you send will be echoed back to your device"
+ },
+ "rxd": {
+ "label": "Receive Pin",
+ "description": "Set the GPIO pin to the RXD pin you have set up."
+ },
+ "txd": {
+ "label": "Transmit Pin",
+ "description": "Set the GPIO pin to the TXD pin you have set up."
+ },
+ "baud": {
+ "label": "Baud Rate",
+ "description": "The serial baud rate"
+ },
+ "timeout": {
+ "label": "Таймаут",
+ "description": "Seconds to wait before we consider your packet as 'done'"
+ },
+ "mode": {
+ "label": "Mode",
+ "description": "Select Mode"
+ },
+ "overrideConsoleSerialPort": {
+ "label": "Override Console Serial Port",
+ "description": "If you have a serial port connected to the console, this will override it."
+ }
+ },
+ "storeForward": {
+ "title": "Store & Forward Settings",
+ "description": "Settings for the Store & Forward module",
+ "enabled": {
+ "label": "Module Enabled",
+ "description": "Enable Store & Forward"
+ },
+ "heartbeat": {
+ "label": "Heartbeat Enabled",
+ "description": "Enable Store & Forward heartbeat"
+ },
+ "records": {
+ "label": "Number of records",
+ "description": "Number of records to store"
+ },
+ "historyReturnMax": {
+ "label": "History return max",
+ "description": "Max number of records to return"
+ },
+ "historyReturnWindow": {
+ "label": "History return window",
+ "description": "Return records from this time window (minutes)"
+ }
+ },
+ "telemetry": {
+ "title": "Telemetry Settings",
+ "description": "Settings for the Telemetry module",
+ "deviceUpdateInterval": {
+ "label": "Device Metrics",
+ "description": "Device metrics update interval (seconds)"
+ },
+ "environmentUpdateInterval": {
+ "label": "Environment metrics update interval (seconds)",
+ "description": ""
+ },
+ "environmentMeasurementEnabled": {
+ "label": "Module Enabled",
+ "description": "Enable the Environment Telemetry"
+ },
+ "environmentScreenEnabled": {
+ "label": "Displayed on Screen",
+ "description": "Show the Telemetry Module on the OLED"
+ },
+ "environmentDisplayFahrenheit": {
+ "label": "Display Fahrenheit",
+ "description": "Display temp in Fahrenheit"
+ },
+ "airQualityEnabled": {
+ "label": "Air Quality Enabled",
+ "description": "Enable the Air Quality Telemetry"
+ },
+ "airQualityInterval": {
+ "label": "Air Quality Update Interval",
+ "description": "How often to send Air Quality data over the mesh"
+ },
+ "powerMeasurementEnabled": {
+ "label": "Power Measurement Enabled",
+ "description": "Enable the Power Measurement Telemetry"
+ },
+ "powerUpdateInterval": {
+ "label": "Power Update Interval",
+ "description": "How often to send Power data over the mesh"
+ },
+ "powerScreenEnabled": {
+ "label": "Power Screen Enabled",
+ "description": "Enable the Power Telemetry Screen"
+ }
+ }
}
diff --git a/packages/web/public/i18n/locales/uk-UA/nodes.json b/packages/web/public/i18n/locales/uk-UA/nodes.json
index e5f2c553..5ce3fb3f 100644
--- a/packages/web/public/i18n/locales/uk-UA/nodes.json
+++ b/packages/web/public/i18n/locales/uk-UA/nodes.json
@@ -1,63 +1,59 @@
{
- "nodeDetail": {
- "publicKeyEnabled": {
- "label": "Public Key Enabled"
- },
- "noPublicKey": {
- "label": "No Public Key"
- },
- "directMessage": {
- "label": "Direct Message {{shortName}}"
- },
- "favorite": {
- "label": "Обране",
- "tooltip": "Add or remove this node from your favorites"
- },
- "notFavorite": {
- "label": "Not a Favorite"
- },
- "error": {
- "label": "Помилка",
- "text": "An error occurred while fetching node details. Please try again later."
- },
- "status": {
- "heard": "Heard",
- "mqtt": "MQTT"
- },
- "elevation": {
- "label": "Elevation"
- },
- "channelUtil": {
- "label": "Channel Util"
- },
- "airtimeUtil": {
- "label": "Airtime Util"
- }
- },
- "nodesTable": {
- "headings": {
- "longName": "Довга назва",
- "connection": "Connection",
- "lastHeard": "Last Heard",
- "encryption": "Шифрування",
- "model": "Model",
- "macAddress": "MAC-адреса"
- },
- "connectionStatus": {
- "direct": "Direct",
- "away": "away",
- "unknown": "-",
- "viaMqtt": ", через MQTT"
- },
- "lastHeardStatus": {
- "never": "Ніколи"
- }
- },
- "actions": {
- "added": "Додано",
- "removed": "Видалено",
- "ignoreNode": "Ігнорувати вузол",
- "unignoreNode": "Unignore Node",
- "requestPosition": "Запитати позицію"
- }
+ "nodeDetail": {
+ "publicKeyEnabled": {
+ "label": "Public Key Enabled"
+ },
+ "noPublicKey": {
+ "label": "No Public Key"
+ },
+ "directMessage": {
+ "label": "Direct Message {{shortName}}"
+ },
+ "favorite": {
+ "label": "Обране",
+ "tooltip": "Add or remove this node from your favorites"
+ },
+ "notFavorite": {
+ "label": "Not a Favorite"
+ },
+ "error": {
+ "label": "Помилка",
+ "text": "An error occurred while fetching node details. Please try again later."
+ },
+ "status": {
+ "heard": "Heard",
+ "mqtt": "MQTT"
+ },
+ "elevation": {
+ "label": "Elevation"
+ },
+ "channelUtil": {
+ "label": "Channel Util"
+ },
+ "airtimeUtil": {
+ "label": "Airtime Util"
+ }
+ },
+ "nodesTable": {
+ "headings": {
+ "longName": "Довга назва",
+ "connection": "Connection",
+ "lastHeard": "Last Heard",
+ "encryption": "Шифрування",
+ "model": "Model",
+ "macAddress": "MAC-адреса"
+ },
+ "connectionStatus": {
+ "direct": "Direct",
+ "away": "away",
+ "viaMqtt": ", через MQTT"
+ }
+ },
+ "actions": {
+ "added": "Додано",
+ "removed": "Видалено",
+ "ignoreNode": "Ігнорувати вузол",
+ "unignoreNode": "Unignore Node",
+ "requestPosition": "Запитати позицію"
+ }
}
diff --git a/packages/web/public/i18n/locales/uk-UA/ui.json b/packages/web/public/i18n/locales/uk-UA/ui.json
index ac3d679d..fc6348e8 100644
--- a/packages/web/public/i18n/locales/uk-UA/ui.json
+++ b/packages/web/public/i18n/locales/uk-UA/ui.json
@@ -1,228 +1,229 @@
{
- "navigation": {
- "title": "Навігація",
- "messages": "Повідомлення",
- "map": "Мапа",
- "config": "Config",
- "radioConfig": "Налаштування радіо",
- "moduleConfig": "Module Config",
- "channels": "Канали",
- "nodes": "Вузли"
- },
- "app": {
- "title": "Meshtastic",
- "logo": "Логотип Meshtastic"
- },
- "sidebar": {
- "collapseToggle": {
- "button": {
- "open": "Відкрити бічну панель",
- "close": "Закрити бічну панель"
- }
- },
- "deviceInfo": {
- "volts": "{{voltage}} Вольт",
- "firmware": {
- "title": "Прошивка",
- "version": "v{{version}}",
- "buildDate": "Дата збірки: {{date}}"
- },
- "deviceName": {
- "title": "Назва пристрою",
- "changeName": "Змінити назву пристрою",
- "placeholder": "Уведіть назву пристрою"
- },
- "editDeviceName": "Змінити назву пристрою"
- }
- },
- "batteryStatus": {
- "charging": "{{level}}% charging",
- "pluggedIn": "Plugged in",
- "title": "Батарея"
- },
- "search": {
- "nodes": "Пошук вузлів...",
- "channels": "Пошук каналів...",
- "commandPalette": "Пошук команд..."
- },
- "toast": {
- "positionRequestSent": {
- "title": "Запит на позицію надіслано."
- },
- "requestingPosition": {
- "title": "Requesting position, please wait..."
- },
- "sendingTraceroute": {
- "title": "Sending Traceroute, please wait..."
- },
- "tracerouteSent": {
- "title": "Traceroute sent."
- },
- "savedChannel": {
- "title": "Saved Channel: {{channelName}}"
- },
- "messages": {
- "pkiEncryption": {
- "title": "Чат використовує шифрування PKI."
- },
- "pskEncryption": {
- "title": "Чат використовує PSK шифрування."
- }
- },
- "configSaveError": {
- "title": "Помилка збереження налаштувань",
- "description": "An error occurred while saving the configuration."
- },
- "validationError": {
- "title": "Config Errors Exist",
- "description": "Please fix the configuration errors before saving."
- },
- "saveSuccess": {
- "title": "Saving Config",
- "description": "The configuration change {{case}} has been saved."
- },
- "favoriteNode": {
- "title": "{{action}} {{nodeName}} {{direction}} favorites.",
- "action": {
- "added": "Додано",
- "removed": "Видалено",
- "to": "до",
- "from": "від"
- }
- },
- "ignoreNode": {
- "title": "{{action}} {{nodeName}} {{direction}} ignore list",
- "action": {
- "added": "Додано",
- "removed": "Видалено",
- "to": "до",
- "from": "від"
- }
- }
- },
- "notifications": {
- "copied": {
- "label": "Скопійовано!"
- },
- "copyToClipboard": {
- "label": "Копіювати до буфера обміну"
- },
- "hidePassword": {
- "label": "Приховати пароль"
- },
- "showPassword": {
- "label": "Показати пароль"
- },
- "deliveryStatus": {
- "delivered": "Доставлено",
- "failed": "Delivery Failed",
- "waiting": "Очікування",
- "unknown": "Unknown"
- }
- },
- "general": {
- "label": "General"
- },
- "hardware": {
- "label": "Hardware"
- },
- "metrics": {
- "label": "Метрики"
- },
- "role": {
- "label": "Роль"
- },
- "filter": {
- "label": "Фільтри"
- },
- "advanced": {
- "label": "Розширені"
- },
- "clearInput": {
- "label": "Clear input"
- },
- "resetFilters": {
- "label": "Скинути фільтри"
- },
- "nodeName": {
- "label": "Node name/number",
- "placeholder": "Meshtastic 1234"
- },
- "airtimeUtilization": {
- "label": "Airtime Utilization (%)"
- },
- "batteryLevel": {
- "label": "Рівень заряду батареї (%)",
- "labelText": "Рівень заряду батареї (%): {{value}}"
- },
- "batteryVoltage": {
- "label": "Напруга батареї (В)",
- "title": "Напруга"
- },
- "channelUtilization": {
- "label": "Channel Utilization (%)"
- },
- "hops": {
- "direct": "Direct",
- "label": "Number of hops",
- "text": "Number of hops: {{value}}"
- },
- "lastHeard": {
- "label": "Last heard",
- "labelText": "Last heard: {{value}}",
- "nowLabel": "Зараз"
- },
- "snr": {
- "label": "SNR (дБ)"
- },
- "favorites": {
- "label": "Обране"
- },
- "hide": {
- "label": "Сховати"
- },
- "showOnly": {
- "label": "Show Only"
- },
- "viaMqtt": {
- "label": "Під'єднано за допомогою MQTT"
- },
- "hopsUnknown": {
- "label": "Unknown number of hops"
- },
- "showUnheard": {
- "label": "Never heard"
- },
- "language": {
- "label": "Мова",
- "changeLanguage": "Змінити мову"
- },
- "theme": {
- "dark": "Темна",
- "light": "Світла",
- "system": "Automatic",
- "changeTheme": "Змінити схему кольорів"
- },
- "errorPage": {
- "title": "This is a little embarrassing...",
- "description1": "We are really sorry but an error occurred in the web client that caused it to crash.
This is not supposed to happen, and we are working hard to fix it.",
- "description2": "The best way to prevent this from happening again to you or anyone else is to report the issue to us.",
- "reportInstructions": "Please include the following information in your report:",
- "reportSteps": {
- "step1": "What you were doing when the error occurred",
- "step2": "What you expected to happen",
- "step3": "What actually happened",
- "step4": "Any other relevant information"
- },
- "reportLink": "Ви можете повідомити про проблему на нашому <0>GitHub0>",
- "dashboardLink": "Поверніться до <0>панелі0>",
- "detailsSummary": "Інформація про помилку",
- "errorMessageLabel": "Помилка:",
- "stackTraceLabel": "Stack trace:",
- "fallbackError": "{{error}}"
- },
- "footer": {
- "text": "Powered by <0>▲ Vercel0> | Meshtastic® is a registered trademark of Meshtastic LLC. | <1>Legal Information1>",
- "commitSha": "SHA коміту: {{sha}}"
- }
+ "navigation": {
+ "title": "Навігація",
+ "messages": "Повідомлення",
+ "map": "Мапа",
+ "settings": "Налаштування",
+ "channels": "Канали",
+ "radioConfig": "Налаштування радіо",
+ "deviceConfig": "Налаштування пристрою",
+ "moduleConfig": "Module Config",
+ "nodes": "Вузли"
+ },
+ "app": {
+ "title": "Meshtastic",
+ "logo": "Логотип Meshtastic"
+ },
+ "sidebar": {
+ "collapseToggle": {
+ "button": {
+ "open": "Відкрити бічну панель",
+ "close": "Закрити бічну панель"
+ }
+ },
+ "deviceInfo": {
+ "volts": "{{voltage}} Вольт",
+ "firmware": {
+ "title": "Прошивка",
+ "version": "v{{version}}",
+ "buildDate": "Дата збірки: {{date}}"
+ }
+ }
+ },
+ "batteryStatus": {
+ "charging": "{{level}}% charging",
+ "pluggedIn": "Plugged in",
+ "title": "Батарея"
+ },
+ "search": {
+ "nodes": "Пошук вузлів...",
+ "channels": "Пошук каналів...",
+ "commandPalette": "Пошук команд..."
+ },
+ "toast": {
+ "positionRequestSent": {
+ "title": "Запит на позицію надіслано."
+ },
+ "requestingPosition": {
+ "title": "Requesting position, please wait..."
+ },
+ "sendingTraceroute": {
+ "title": "Sending Traceroute, please wait..."
+ },
+ "tracerouteSent": {
+ "title": "Traceroute sent."
+ },
+ "savedChannel": {
+ "title": "Saved Channel: {{channelName}}"
+ },
+ "messages": {
+ "pkiEncryption": {
+ "title": "Чат використовує шифрування PKI."
+ },
+ "pskEncryption": {
+ "title": "Чат використовує PSK шифрування."
+ }
+ },
+ "configSaveError": {
+ "title": "Помилка збереження налаштувань",
+ "description": "An error occurred while saving the configuration."
+ },
+ "validationError": {
+ "title": "Config Errors Exist",
+ "description": "Please fix the configuration errors before saving."
+ },
+ "saveSuccess": {
+ "title": "Saving Config",
+ "description": "The configuration change {{case}} has been saved."
+ },
+ "saveAllSuccess": {
+ "title": "Saved",
+ "description": "All configuration changes have been saved."
+ },
+ "favoriteNode": {
+ "title": "{{action}} {{nodeName}} {{direction}} favorites.",
+ "action": {
+ "added": "Додано",
+ "removed": "Видалено",
+ "to": "до",
+ "from": "від"
+ }
+ },
+ "ignoreNode": {
+ "title": "{{action}} {{nodeName}} {{direction}} ignore list",
+ "action": {
+ "added": "Додано",
+ "removed": "Видалено",
+ "to": "до",
+ "from": "від"
+ }
+ }
+ },
+ "notifications": {
+ "copied": {
+ "label": "Скопійовано!"
+ },
+ "copyToClipboard": {
+ "label": "Копіювати до буфера обміну"
+ },
+ "hidePassword": {
+ "label": "Приховати пароль"
+ },
+ "showPassword": {
+ "label": "Показати пароль"
+ },
+ "deliveryStatus": {
+ "delivered": "Доставлено",
+ "failed": "Delivery Failed",
+ "waiting": "Очікування",
+ "unknown": "Unknown"
+ }
+ },
+ "general": {
+ "label": "General"
+ },
+ "hardware": {
+ "label": "Hardware"
+ },
+ "metrics": {
+ "label": "Метрики"
+ },
+ "role": {
+ "label": "Роль"
+ },
+ "filter": {
+ "label": "Фільтри"
+ },
+ "advanced": {
+ "label": "Розширені"
+ },
+ "clearInput": {
+ "label": "Clear input"
+ },
+ "resetFilters": {
+ "label": "Скинути фільтри"
+ },
+ "nodeName": {
+ "label": "Node name/number",
+ "placeholder": "Meshtastic 1234"
+ },
+ "airtimeUtilization": {
+ "label": "Airtime Utilization (%)",
+ "short": "Airtime Util. (%)"
+ },
+ "batteryLevel": {
+ "label": "Рівень заряду батареї (%)",
+ "labelText": "Рівень заряду батареї (%): {{value}}"
+ },
+ "batteryVoltage": {
+ "label": "Напруга батареї (В)",
+ "title": "Напруга"
+ },
+ "channelUtilization": {
+ "label": "Channel Utilization (%)",
+ "short": "Channel Util. (%)"
+ },
+ "hops": {
+ "direct": "Direct",
+ "label": "Number of hops",
+ "text": "Number of hops: {{value}}"
+ },
+ "lastHeard": {
+ "label": "Last heard",
+ "labelText": "Last heard: {{value}}",
+ "nowLabel": "Зараз"
+ },
+ "snr": {
+ "label": "SNR (дБ)"
+ },
+ "favorites": {
+ "label": "Обране"
+ },
+ "hide": {
+ "label": "Сховати"
+ },
+ "showOnly": {
+ "label": "Show Only"
+ },
+ "viaMqtt": {
+ "label": "Під'єднано за допомогою MQTT"
+ },
+ "hopsUnknown": {
+ "label": "Unknown number of hops"
+ },
+ "showUnheard": {
+ "label": "Never heard"
+ },
+ "language": {
+ "label": "Мова",
+ "changeLanguage": "Змінити мову"
+ },
+ "theme": {
+ "dark": "Темна",
+ "light": "Світла",
+ "system": "Automatic",
+ "changeTheme": "Змінити схему кольорів"
+ },
+ "errorPage": {
+ "title": "This is a little embarrassing...",
+ "description1": "We are really sorry but an error occurred in the web client that caused it to crash.
This is not supposed to happen, and we are working hard to fix it.",
+ "description2": "The best way to prevent this from happening again to you or anyone else is to report the issue to us.",
+ "reportInstructions": "Please include the following information in your report:",
+ "reportSteps": {
+ "step1": "What you were doing when the error occurred",
+ "step2": "What you expected to happen",
+ "step3": "What actually happened",
+ "step4": "Any other relevant information"
+ },
+ "reportLink": "Ви можете повідомити про проблему на нашому <0>GitHub0>",
+ "dashboardLink": "Поверніться до <0>панелі0>",
+ "detailsSummary": "Інформація про помилку",
+ "errorMessageLabel": "Помилка:",
+ "stackTraceLabel": "Stack trace:",
+ "fallbackError": "{{error}}"
+ },
+ "footer": {
+ "text": "Powered by <0>▲ Vercel0> | Meshtastic® is a registered trademark of Meshtastic LLC. | <1>Legal Information1>",
+ "commitSha": "SHA коміту: {{sha}}"
+ }
}
diff --git a/packages/web/public/i18n/locales/zh-CN/channels.json b/packages/web/public/i18n/locales/zh-CN/channels.json
index c1ba3ed5..81436cbc 100644
--- a/packages/web/public/i18n/locales/zh-CN/channels.json
+++ b/packages/web/public/i18n/locales/zh-CN/channels.json
@@ -1,69 +1,71 @@
{
- "page": {
- "sectionLabel": "频道",
- "channelName": "Channel: {{channelName}}",
- "broadcastLabel": "主要",
- "channelIndex": "Ch {{index}}"
- },
- "validation": {
- "pskInvalid": "Please enter a valid {{bits}} bit PSK."
- },
- "settings": {
- "label": "频道设置",
- "description": "Crypto, MQTT & misc settings"
- },
- "role": {
- "label": "角色",
- "description": "Device telemetry is sent over PRIMARY. Only one PRIMARY allowed",
- "options": {
- "primary": "PRIMARY",
- "disabled": "DISABLED",
- "secondary": "SECONDARY"
- }
- },
- "psk": {
- "label": "Pre-Shared Key",
- "description": "Supported PSK lengths: 256-bit, 128-bit, 8-bit, Empty (0-bit)",
- "generate": "Generate"
- },
- "name": {
- "label": "名称",
- "description": "A unique name for the channel <12 bytes, leave blank for default"
- },
- "uplinkEnabled": {
- "label": "启用上传",
- "description": "Send messages from the local mesh to MQTT"
- },
- "downlinkEnabled": {
- "label": "启用下载",
- "description": "Send messages from MQTT to the local mesh"
- },
- "positionPrecision": {
- "label": "位置",
- "description": "The precision of the location to share with the channel. Can be disabled.",
- "options": {
- "none": "Do not share location",
- "precise": "Precise Location",
- "metric_km23": "Within 23 kilometers",
- "metric_km12": "Within 12 kilometers",
- "metric_km5_8": "Within 5.8 kilometers",
- "metric_km2_9": "Within 2.9 kilometers",
- "metric_km1_5": "Within 1.5 kilometers",
- "metric_m700": "Within 700 meters",
- "metric_m350": "Within 350 meters",
- "metric_m200": "Within 200 meters",
- "metric_m90": "Within 90 meters",
- "metric_m50": "Within 50 meters",
- "imperial_mi15": "Within 15 miles",
- "imperial_mi7_3": "Within 7.3 miles",
- "imperial_mi3_6": "Within 3.6 miles",
- "imperial_mi1_8": "Within 1.8 miles",
- "imperial_mi0_9": "Within 0.9 miles",
- "imperial_mi0_5": "Within 0.5 miles",
- "imperial_mi0_2": "Within 0.2 miles",
- "imperial_ft600": "Within 600 feet",
- "imperial_ft300": "Within 300 feet",
- "imperial_ft150": "Within 150 feet"
- }
- }
+ "page": {
+ "sectionLabel": "频道",
+ "channelName": "Channel: {{channelName}}",
+ "broadcastLabel": "主要",
+ "channelIndex": "Ch {{index}}",
+ "import": "导入",
+ "export": "Export"
+ },
+ "validation": {
+ "pskInvalid": "Please enter a valid {{bits}} bit PSK."
+ },
+ "settings": {
+ "label": "频道设置",
+ "description": "Crypto, MQTT & misc settings"
+ },
+ "role": {
+ "label": "角色",
+ "description": "Device telemetry is sent over PRIMARY. Only one PRIMARY allowed",
+ "options": {
+ "primary": "PRIMARY",
+ "disabled": "DISABLED",
+ "secondary": "SECONDARY"
+ }
+ },
+ "psk": {
+ "label": "Pre-Shared Key",
+ "description": "Supported PSK lengths: 256-bit, 128-bit, 8-bit, Empty (0-bit)",
+ "generate": "Generate"
+ },
+ "name": {
+ "label": "名称",
+ "description": "A unique name for the channel <12 bytes, leave blank for default"
+ },
+ "uplinkEnabled": {
+ "label": "启用上传",
+ "description": "Send messages from the local mesh to MQTT"
+ },
+ "downlinkEnabled": {
+ "label": "启用下载",
+ "description": "Send messages from MQTT to the local mesh"
+ },
+ "positionPrecision": {
+ "label": "位置",
+ "description": "The precision of the location to share with the channel. Can be disabled.",
+ "options": {
+ "none": "Do not share location",
+ "precise": "Precise Location",
+ "metric_km23": "Within 23 kilometers",
+ "metric_km12": "Within 12 kilometers",
+ "metric_km5_8": "Within 5.8 kilometers",
+ "metric_km2_9": "Within 2.9 kilometers",
+ "metric_km1_5": "Within 1.5 kilometers",
+ "metric_m700": "Within 700 meters",
+ "metric_m350": "Within 350 meters",
+ "metric_m200": "Within 200 meters",
+ "metric_m90": "Within 90 meters",
+ "metric_m50": "Within 50 meters",
+ "imperial_mi15": "Within 15 miles",
+ "imperial_mi7_3": "Within 7.3 miles",
+ "imperial_mi3_6": "Within 3.6 miles",
+ "imperial_mi1_8": "Within 1.8 miles",
+ "imperial_mi0_9": "Within 0.9 miles",
+ "imperial_mi0_5": "Within 0.5 miles",
+ "imperial_mi0_2": "Within 0.2 miles",
+ "imperial_ft600": "Within 600 feet",
+ "imperial_ft300": "Within 300 feet",
+ "imperial_ft150": "Within 150 feet"
+ }
+ }
}
diff --git a/packages/web/public/i18n/locales/zh-CN/commandPalette.json b/packages/web/public/i18n/locales/zh-CN/commandPalette.json
index 5d1e494c..476f0512 100644
--- a/packages/web/public/i18n/locales/zh-CN/commandPalette.json
+++ b/packages/web/public/i18n/locales/zh-CN/commandPalette.json
@@ -15,7 +15,6 @@
"messages": "消息",
"map": "地图",
"config": "配置",
- "channels": "频道",
"nodes": "节点"
}
},
@@ -45,7 +44,8 @@
"label": "调试",
"command": {
"reconfigure": "Reconfigure",
- "clearAllStoredMessages": "Clear All Stored Message"
+ "clearAllStoredMessages": "Clear All Stored Message",
+ "clearAllStores": "Clear All Local Storage"
}
}
}
diff --git a/packages/web/public/i18n/locales/zh-CN/common.json b/packages/web/public/i18n/locales/zh-CN/common.json
index 9d3e0e65..49e57172 100644
--- a/packages/web/public/i18n/locales/zh-CN/common.json
+++ b/packages/web/public/i18n/locales/zh-CN/common.json
@@ -1,142 +1,157 @@
{
- "button": {
- "apply": "申请",
- "backupKey": "Backup Key",
- "cancel": "取消",
- "clearMessages": "Clear Messages",
- "close": "关闭",
- "confirm": "Confirm",
- "delete": "删除",
- "dismiss": "收起键盘",
- "download": "下载",
- "export": "Export",
- "generate": "Generate",
- "regenerate": "Regenerate",
- "import": "导入",
- "message": "信息",
- "now": "Now",
- "ok": "确定",
- "print": "Print",
- "remove": "移除",
- "requestNewKeys": "Request New Keys",
- "requestPosition": "Request Position",
- "reset": "重置",
- "save": "保存",
- "scanQr": "扫描二维码",
- "traceRoute": "Trace Route",
- "submit": "Submit"
- },
- "app": {
- "title": "Meshtastic",
- "fullTitle": "Meshtastic Web Client"
- },
- "loading": "Loading...",
- "unit": {
- "cps": "CPS",
- "dbm": "dBm",
- "hertz": "Hz",
- "hop": {
- "one": "Hop",
- "plural": "Hops"
- },
- "hopsAway": {
- "one": "{{count}} hop away",
- "plural": "{{count}} hops away",
- "unknown": "Unknown hops away"
- },
- "megahertz": "MHz",
- "raw": "raw",
- "meter": {
- "one": "Meter",
- "plural": "Meters",
- "suffix": "m"
- },
- "minute": {
- "one": "Minute",
- "plural": "Minutes"
- },
- "hour": {
- "one": "小时",
- "plural": "Hours"
- },
- "millisecond": {
- "one": "Millisecond",
- "plural": "Milliseconds",
- "suffix": "ms"
- },
- "second": {
- "one": "Second",
- "plural": "Seconds"
- },
- "day": {
- "one": "Day",
- "plural": "Days"
- },
- "month": {
- "one": "Month",
- "plural": "Months"
- },
- "year": {
- "one": "Year",
- "plural": "Years"
- },
- "snr": "SNR",
- "volt": {
- "one": "Volt",
- "plural": "Volts",
- "suffix": "V"
- },
- "record": {
- "one": "Records",
- "plural": "Records"
- }
- },
- "security": {
- "0bit": "空",
- "8bit": "8 bit",
- "128bit": "128 bit",
- "256bit": "256 bit"
- },
- "unknown": {
- "longName": "未知",
- "shortName": "UNK",
- "notAvailable": "N/A",
- "num": "??"
- },
- "nodeUnknownPrefix": "!",
- "unset": "UNSET",
- "fallbackName": "Meshtastic {{last4}}",
- "node": "Node",
- "formValidation": {
- "unsavedChanges": "Unsaved changes",
- "tooBig": {
- "string": "Too long, expected less than or equal to {{maximum}} characters.",
- "number": "Too big, expected a number smaller than or equal to {{maximum}}.",
- "bytes": "Too big, expected less than or equal to {{params.maximum}} bytes."
- },
- "tooSmall": {
- "string": "Too short, expected more than or equal to {{minimum}} characters.",
- "number": "Too small, expected a number larger than or equal to {{minimum}}."
- },
- "invalidFormat": {
- "ipv4": "Invalid format, expected an IPv4 address.",
- "key": "Invalid format, expected a Base64 encoded pre-shared key (PSK)."
- },
- "invalidType": {
- "number": "Invalid type, expected a number."
- },
- "pskLength": {
- "0bit": "Key is required to be empty.",
- "8bit": "Key is required to be an 8 bit pre-shared key (PSK).",
- "128bit": "Key is required to be a 128 bit pre-shared key (PSK).",
- "256bit": "Key is required to be a 256 bit pre-shared key (PSK)."
- },
- "required": {
- "generic": "This field is required.",
- "managed": "At least one admin key is requred if the node is managed.",
- "key": "Key is required."
- }
- },
- "yes": "Yes",
- "no": "No"
+ "button": {
+ "apply": "申请",
+ "backupKey": "Backup Key",
+ "cancel": "取消",
+ "clearMessages": "Clear Messages",
+ "close": "关闭",
+ "confirm": "Confirm",
+ "delete": "删除",
+ "dismiss": "收起键盘",
+ "download": "下载",
+ "export": "Export",
+ "generate": "Generate",
+ "regenerate": "Regenerate",
+ "import": "导入",
+ "message": "信息",
+ "now": "Now",
+ "ok": "确定",
+ "print": "Print",
+ "remove": "移除",
+ "requestNewKeys": "Request New Keys",
+ "requestPosition": "Request Position",
+ "reset": "重置",
+ "save": "保存",
+ "scanQr": "扫描二维码",
+ "traceRoute": "Trace Route",
+ "submit": "Submit"
+ },
+ "app": {
+ "title": "Meshtastic",
+ "fullTitle": "Meshtastic Web Client"
+ },
+ "loading": "Loading...",
+ "unit": {
+ "cps": "CPS",
+ "dbm": "dBm",
+ "hertz": "Hz",
+ "hop": {
+ "one": "Hop",
+ "plural": "Hops"
+ },
+ "hopsAway": {
+ "one": "{{count}} hop away",
+ "plural": "{{count}} hops away",
+ "unknown": "Unknown hops away"
+ },
+ "megahertz": "MHz",
+ "raw": "raw",
+ "meter": {
+ "one": "Meter",
+ "plural": "Meters",
+ "suffix": "m"
+ },
+ "kilometer": {
+ "one": "Kilometer",
+ "plural": "Kilometers",
+ "suffix": "km"
+ },
+ "minute": {
+ "one": "Minute",
+ "plural": "Minutes"
+ },
+ "hour": {
+ "one": "小时",
+ "plural": "Hours"
+ },
+ "millisecond": {
+ "one": "Millisecond",
+ "plural": "Milliseconds",
+ "suffix": "ms"
+ },
+ "second": {
+ "one": "Second",
+ "plural": "Seconds"
+ },
+ "day": {
+ "one": "Day",
+ "plural": "Days",
+ "today": "Today",
+ "yesterday": "Yesterday"
+ },
+ "month": {
+ "one": "Month",
+ "plural": "Months"
+ },
+ "year": {
+ "one": "Year",
+ "plural": "Years"
+ },
+ "snr": "SNR",
+ "volt": {
+ "one": "Volt",
+ "plural": "Volts",
+ "suffix": "V"
+ },
+ "record": {
+ "one": "Records",
+ "plural": "Records"
+ },
+ "degree": {
+ "one": "Degree",
+ "plural": "Degrees",
+ "suffix": "°"
+ }
+ },
+ "security": {
+ "0bit": "空",
+ "8bit": "8 bit",
+ "128bit": "128 bit",
+ "256bit": "256 bit"
+ },
+ "unknown": {
+ "longName": "未知",
+ "shortName": "UNK",
+ "notAvailable": "N/A",
+ "num": "??"
+ },
+ "nodeUnknownPrefix": "!",
+ "unset": "UNSET",
+ "fallbackName": "Meshtastic {{last4}}",
+ "node": "Node",
+ "formValidation": {
+ "unsavedChanges": "Unsaved changes",
+ "tooBig": {
+ "string": "Too long, expected less than or equal to {{maximum}} characters.",
+ "number": "Too big, expected a number smaller than or equal to {{maximum}}.",
+ "bytes": "Too big, expected less than or equal to {{params.maximum}} bytes."
+ },
+ "tooSmall": {
+ "string": "Too short, expected more than or equal to {{minimum}} characters.",
+ "number": "Too small, expected a number larger than or equal to {{minimum}}."
+ },
+ "invalidFormat": {
+ "ipv4": "Invalid format, expected an IPv4 address.",
+ "key": "Invalid format, expected a Base64 encoded pre-shared key (PSK)."
+ },
+ "invalidType": {
+ "number": "Invalid type, expected a number."
+ },
+ "pskLength": {
+ "0bit": "Key is required to be empty.",
+ "8bit": "Key is required to be an 8 bit pre-shared key (PSK).",
+ "128bit": "Key is required to be a 128 bit pre-shared key (PSK).",
+ "256bit": "Key is required to be a 256 bit pre-shared key (PSK)."
+ },
+ "required": {
+ "generic": "This field is required.",
+ "managed": "At least one admin key is requred if the node is managed.",
+ "key": "Key is required."
+ },
+ "invalidOverrideFreq": {
+ "number": "Invalid format, expected a value in the range 410-930 MHz or 0 (use default)."
+ }
+ },
+ "yes": "Yes",
+ "no": "No"
}
diff --git a/packages/web/public/i18n/locales/zh-CN/config.json b/packages/web/public/i18n/locales/zh-CN/config.json
new file mode 100644
index 00000000..81c8fdb2
--- /dev/null
+++ b/packages/web/public/i18n/locales/zh-CN/config.json
@@ -0,0 +1,458 @@
+{
+ "page": {
+ "title": "设置",
+ "tabUser": "用户",
+ "tabChannels": "频道",
+ "tabBluetooth": "蓝牙",
+ "tabDevice": "设备",
+ "tabDisplay": "显示",
+ "tabLora": "LoRa",
+ "tabNetwork": "网络",
+ "tabPosition": "定位",
+ "tabPower": "电源",
+ "tabSecurity": "安全"
+ },
+ "sidebar": {
+ "label": "Configuration"
+ },
+ "device": {
+ "title": "Device Settings",
+ "description": "Settings for the device",
+ "buttonPin": {
+ "description": "Button pin override",
+ "label": "Button Pin"
+ },
+ "buzzerPin": {
+ "description": "Buzzer pin override",
+ "label": "Buzzer Pin"
+ },
+ "disableTripleClick": {
+ "description": "Disable triple click",
+ "label": "Disable Triple Click"
+ },
+ "doubleTapAsButtonPress": {
+ "description": "Treat double tap as button press",
+ "label": "Double Tap as Button Press"
+ },
+ "ledHeartbeatDisabled": {
+ "description": "Disable default blinking LED",
+ "label": "LED Heartbeat Disabled"
+ },
+ "nodeInfoBroadcastInterval": {
+ "description": "How often to broadcast node info",
+ "label": "Node Info Broadcast Interval"
+ },
+ "posixTimezone": {
+ "description": "The POSIX timezone string for the device",
+ "label": "POSIX 时区"
+ },
+ "rebroadcastMode": {
+ "description": "How to handle rebroadcasting",
+ "label": "转播模式"
+ },
+ "role": {
+ "description": "What role the device performs on the mesh",
+ "label": "角色"
+ }
+ },
+ "bluetooth": {
+ "title": "Bluetooth Settings",
+ "description": "Settings for the Bluetooth module",
+ "note": "Note: Some devices (ESP32) cannot use both Bluetooth and WiFi at the same time.",
+ "enabled": {
+ "description": "Enable or disable Bluetooth",
+ "label": "启用"
+ },
+ "pairingMode": {
+ "description": "Pin selection behaviour.",
+ "label": "配对模式"
+ },
+ "pin": {
+ "description": "Pin to use when pairing",
+ "label": "Pin"
+ }
+ },
+ "display": {
+ "description": "Settings for the device display",
+ "title": "Display Settings",
+ "headingBold": {
+ "description": "Bolden the heading text",
+ "label": "Bold Heading"
+ },
+ "carouselDelay": {
+ "description": "How fast to cycle through windows",
+ "label": "Carousel Delay"
+ },
+ "compassNorthTop": {
+ "description": "Fix north to the top of compass",
+ "label": "Compass North Top"
+ },
+ "displayMode": {
+ "description": "Screen layout variant",
+ "label": "显示模式"
+ },
+ "displayUnits": {
+ "description": "Display metric or imperial units",
+ "label": "显示单位"
+ },
+ "flipScreen": {
+ "description": "Flip display 180 degrees",
+ "label": "Flip Screen"
+ },
+ "gpsDisplayUnits": {
+ "description": "Coordinate display format",
+ "label": "GPS Display Units"
+ },
+ "oledType": {
+ "description": "Type of OLED screen attached to the device",
+ "label": "OLED 类型"
+ },
+ "screenTimeout": {
+ "description": "Turn off the display after this long",
+ "label": "Screen Timeout"
+ },
+ "twelveHourClock": {
+ "description": "Use 12-hour clock format",
+ "label": "12-Hour Clock"
+ },
+ "wakeOnTapOrMotion": {
+ "description": "Wake the device on tap or motion",
+ "label": "Wake on Tap or Motion"
+ }
+ },
+ "lora": {
+ "title": "Mesh Settings",
+ "description": "Settings for the LoRa mesh",
+ "bandwidth": {
+ "description": "Channel bandwidth in MHz",
+ "label": "带宽"
+ },
+ "boostedRxGain": {
+ "description": "Boosted RX gain",
+ "label": "Boosted RX Gain"
+ },
+ "codingRate": {
+ "description": "The denominator of the coding rate",
+ "label": "编码率"
+ },
+ "frequencyOffset": {
+ "description": "Frequency offset to correct for crystal calibration errors",
+ "label": "Frequency Offset"
+ },
+ "frequencySlot": {
+ "description": "LoRa frequency channel number",
+ "label": "Frequency Slot"
+ },
+ "hopLimit": {
+ "description": "Maximum number of hops",
+ "label": "Hop Limit"
+ },
+ "ignoreMqtt": {
+ "description": "Don't forward MQTT messages over the mesh",
+ "label": "忽略 MQTT"
+ },
+ "modemPreset": {
+ "description": "Modem preset to use",
+ "label": "调制解调器预设"
+ },
+ "okToMqtt": {
+ "description": "When set to true, this configuration indicates that the user approves the packet to be uploaded to MQTT. If set to false, remote nodes are requested not to forward packets to MQTT",
+ "label": "使用MQTT"
+ },
+ "overrideDutyCycle": {
+ "description": "覆盖占空比",
+ "label": "覆盖占空比"
+ },
+ "overrideFrequency": {
+ "description": "Override frequency",
+ "label": "Override Frequency"
+ },
+ "region": {
+ "description": "Sets the region for your node",
+ "label": "区域"
+ },
+ "spreadingFactor": {
+ "description": "Indicates the number of chirps per symbol",
+ "label": "Spreading Factor"
+ },
+ "transmitEnabled": {
+ "description": "Enable/Disable transmit (TX) from the LoRa radio",
+ "label": "启用传输"
+ },
+ "transmitPower": {
+ "description": "Max transmit power",
+ "label": "Transmit Power"
+ },
+ "usePreset": {
+ "description": "Use one of the predefined modem presets",
+ "label": "使用预设"
+ },
+ "meshSettings": {
+ "description": "Settings for the LoRa mesh",
+ "label": "Mesh Settings"
+ },
+ "waveformSettings": {
+ "description": "Settings for the LoRa waveform",
+ "label": "Waveform Settings"
+ },
+ "radioSettings": {
+ "label": "Radio Settings",
+ "description": "Settings for the LoRa radio"
+ }
+ },
+ "network": {
+ "title": "WiFi Config",
+ "description": "WiFi radio configuration",
+ "note": "Note: Some devices (ESP32) cannot use both Bluetooth and WiFi at the same time.",
+ "addressMode": {
+ "description": "Address assignment selection",
+ "label": "Address Mode"
+ },
+ "dns": {
+ "description": "DNS Server",
+ "label": "DNS"
+ },
+ "ethernetEnabled": {
+ "description": "Enable or disable the Ethernet port",
+ "label": "启用"
+ },
+ "gateway": {
+ "description": "Default Gateway",
+ "label": "网关"
+ },
+ "ip": {
+ "description": "IP Address",
+ "label": "IP"
+ },
+ "psk": {
+ "description": "Network password",
+ "label": "共享密钥/PSK"
+ },
+ "ssid": {
+ "description": "Network name",
+ "label": "SSID"
+ },
+ "subnet": {
+ "description": "Subnet Mask",
+ "label": "子网"
+ },
+ "wifiEnabled": {
+ "description": "Enable or disable the WiFi radio",
+ "label": "启用"
+ },
+ "meshViaUdp": {
+ "label": "Mesh via UDP"
+ },
+ "ntpServer": {
+ "label": "NTP Server"
+ },
+ "rsyslogServer": {
+ "label": "Rsyslog Server"
+ },
+ "ethernetConfigSettings": {
+ "description": "Ethernet port configuration",
+ "label": "Ethernet Config"
+ },
+ "ipConfigSettings": {
+ "description": "IP configuration",
+ "label": "IP Config"
+ },
+ "ntpConfigSettings": {
+ "description": "NTP configuration",
+ "label": "NTP Config"
+ },
+ "rsyslogConfigSettings": {
+ "description": "Rsyslog configuration",
+ "label": "Rsyslog Config"
+ },
+ "udpConfigSettings": {
+ "description": "UDP over Mesh configuration",
+ "label": "UDP 设置"
+ }
+ },
+ "position": {
+ "title": "Position Settings",
+ "description": "Settings for the position module",
+ "broadcastInterval": {
+ "description": "How often your position is sent out over the mesh",
+ "label": "广播间隔"
+ },
+ "enablePin": {
+ "description": "GPS module enable pin override",
+ "label": "Enable Pin"
+ },
+ "fixedPosition": {
+ "description": "Don't report GPS position, but a manually-specified one",
+ "label": "Fixed Position"
+ },
+ "gpsMode": {
+ "description": "Configure whether device GPS is Enabled, Disabled, or Not Present",
+ "label": "GPS Mode"
+ },
+ "gpsUpdateInterval": {
+ "description": "How often a GPS fix should be acquired",
+ "label": "GPS Update Interval"
+ },
+ "positionFlags": {
+ "description": "Optional fields to include when assembling position messages. The more fields are selected, the larger the message will be leading to longer airtime usage and a higher risk of packet loss.",
+ "label": "Position Flags"
+ },
+ "receivePin": {
+ "description": "GPS module RX pin override",
+ "label": "Receive Pin"
+ },
+ "smartPositionEnabled": {
+ "description": "Only send position when there has been a meaningful change in location",
+ "label": "Enable Smart Position"
+ },
+ "smartPositionMinDistance": {
+ "description": "Minimum distance (in meters) that must be traveled before a position update is sent",
+ "label": "Smart Position Minimum Distance"
+ },
+ "smartPositionMinInterval": {
+ "description": "Minimum interval (in seconds) that must pass before a position update is sent",
+ "label": "Smart Position Minimum Interval"
+ },
+ "transmitPin": {
+ "description": "GPS module TX pin override",
+ "label": "Transmit Pin"
+ },
+ "intervalsSettings": {
+ "description": "How often to send position updates",
+ "label": "Intervals"
+ },
+ "flags": {
+ "placeholder": "Select position flags...",
+ "altitude": "Altitude",
+ "altitudeGeoidalSeparation": "Altitude Geoidal Separation",
+ "altitudeMsl": "Altitude is Mean Sea Level",
+ "dop": "Dilution of precision (DOP) PDOP used by default",
+ "hdopVdop": "如果设置了 DOP,则使用 HDOP / VDOP 值而不是 PDOP",
+ "numSatellites": "Number of satellites",
+ "sequenceNumber": "Sequence number",
+ "timestamp": "时间戳",
+ "unset": "未设置",
+ "vehicleHeading": "Vehicle heading",
+ "vehicleSpeed": "Vehicle speed"
+ }
+ },
+ "power": {
+ "adcMultiplierOverride": {
+ "description": "Used for tweaking battery voltage reading",
+ "label": "ADC Multiplier Override ratio"
+ },
+ "ina219Address": {
+ "description": "Address of the INA219 battery monitor",
+ "label": "INA219 Address"
+ },
+ "lightSleepDuration": {
+ "description": "How long the device will be in light sleep for",
+ "label": "Light Sleep Duration"
+ },
+ "minimumWakeTime": {
+ "description": "Minimum amount of time the device will stay awake for after receiving a packet",
+ "label": "Minimum Wake Time"
+ },
+ "noConnectionBluetoothDisabled": {
+ "description": "If the device does not receive a Bluetooth connection, the BLE radio will be disabled after this long",
+ "label": "No Connection Bluetooth Disabled"
+ },
+ "powerSavingEnabled": {
+ "description": "Select if powered from a low-current source (i.e. solar), to minimize power consumption as much as possible.",
+ "label": "启用节能模式"
+ },
+ "shutdownOnBatteryDelay": {
+ "description": "Automatically shutdown node after this long when on battery, 0 for indefinite",
+ "label": "Shutdown on battery delay"
+ },
+ "superDeepSleepDuration": {
+ "description": "How long the device will be in super deep sleep for",
+ "label": "Super Deep Sleep Duration"
+ },
+ "powerConfigSettings": {
+ "description": "Settings for the power module",
+ "label": "电源配置"
+ },
+ "sleepSettings": {
+ "description": "Sleep settings for the power module",
+ "label": "Sleep Settings"
+ }
+ },
+ "security": {
+ "description": "Settings for the Security configuration",
+ "title": "Security Settings",
+ "button_backupKey": "Backup Key",
+ "adminChannelEnabled": {
+ "description": "Allow incoming device control over the insecure legacy admin channel",
+ "label": "Allow Legacy Admin"
+ },
+ "enableDebugLogApi": {
+ "description": "Output live debug logging over serial, view and export position-redacted device logs over Bluetooth",
+ "label": "Enable Debug Log API"
+ },
+ "managed": {
+ "description": "If enabled, device configuration options are only able to be changed remotely by a Remote Admin node via admin messages. Do not enable this option unless at least one suitable Remote Admin node has been setup, and the public key is stored in one of the fields above.",
+ "label": "Managed"
+ },
+ "privateKey": {
+ "description": "Used to create a shared key with a remote device",
+ "label": "私钥"
+ },
+ "publicKey": {
+ "description": "Sent out to other nodes on the mesh to allow them to compute a shared secret key",
+ "label": "公钥"
+ },
+ "primaryAdminKey": {
+ "description": "The primary public key authorized to send admin messages to this node",
+ "label": "一级管理员密钥"
+ },
+ "secondaryAdminKey": {
+ "description": "The secondary public key authorized to send admin messages to this node",
+ "label": "二级管理员密钥"
+ },
+ "serialOutputEnabled": {
+ "description": "Serial Console over the Stream API",
+ "label": "Serial Output Enabled"
+ },
+ "tertiaryAdminKey": {
+ "description": "The tertiary public key authorized to send admin messages to this node",
+ "label": "三级管理员密钥"
+ },
+ "adminSettings": {
+ "description": "Settings for Admin",
+ "label": "Admin Settings"
+ },
+ "loggingSettings": {
+ "description": "Settings for Logging",
+ "label": "Logging Settings"
+ }
+ },
+ "user": {
+ "title": "User Settings",
+ "description": "Configure your device name and identity settings",
+ "longName": {
+ "label": "长名称",
+ "description": "Your full display name (1-40 characters)",
+ "validation": {
+ "min": "Long name must be at least 1 character",
+ "max": "Long name must be at most 40 characters"
+ }
+ },
+ "shortName": {
+ "label": "短名称",
+ "description": "Your abbreviated name (2-4 characters)",
+ "validation": {
+ "min": "Short name must be at least 2 characters",
+ "max": "Short name must be at most 4 characters"
+ }
+ },
+ "isUnmessageable": {
+ "label": "无法发送消息",
+ "description": "Used to identify unmonitored or infrastructure nodes so that messaging is not available to nodes that will never respond."
+ },
+ "isLicensed": {
+ "label": "业余无线电模式(HAM)",
+ "description": "Enable if you are a licensed amateur radio operator, enabling this option disables encryption and is not compatible with the default Meshtastic network."
+ }
+ }
+}
diff --git a/packages/web/public/i18n/locales/zh-CN/dashboard.json b/packages/web/public/i18n/locales/zh-CN/dashboard.json
index 0dd5f46c..a7b78399 100644
--- a/packages/web/public/i18n/locales/zh-CN/dashboard.json
+++ b/packages/web/public/i18n/locales/zh-CN/dashboard.json
@@ -1,12 +1,12 @@
{
- "dashboard": {
- "title": "Connected Devices",
- "description": "Manage your connected Meshtastic devices.",
- "connectionType_ble": "BLE",
- "connectionType_serial": "串口",
- "connectionType_network": "网络",
- "noDevicesTitle": "No devices connected",
- "noDevicesDescription": "Connect a new device to get started.",
- "button_newConnection": "New Connection"
- }
+ "dashboard": {
+ "title": "Connected Devices",
+ "description": "Manage your connected Meshtastic devices.",
+ "connectionType_ble": "BLE",
+ "connectionType_serial": "串口",
+ "connectionType_network": "网络",
+ "noDevicesTitle": "No devices connected",
+ "noDevicesDescription": "Connect a new device to get started.",
+ "button_newConnection": "New Connection"
+ }
}
diff --git a/packages/web/public/i18n/locales/zh-CN/dialog.json b/packages/web/public/i18n/locales/zh-CN/dialog.json
index 9e6f48cf..4d5a4577 100644
--- a/packages/web/public/i18n/locales/zh-CN/dialog.json
+++ b/packages/web/public/i18n/locales/zh-CN/dialog.json
@@ -1,193 +1,221 @@
{
- "deleteMessages": {
- "description": "This action will clear all message history. This cannot be undone. Are you sure you want to continue?",
- "title": "Clear All Messages"
- },
- "deviceName": {
- "description": "The Device will restart once the config is saved.",
- "longName": "长名称",
- "shortName": "短名称",
- "title": "Change Device Name",
- "validation": {
- "longNameMax": "Long name must not be more than 40 characters",
- "shortNameMax": "Short name must not be more than 4 characters",
- "longNameMin": "Long name must have at least 1 character",
- "shortNameMin": "Short name must have at least 1 character"
- }
- },
- "import": {
- "description": "The current LoRa configuration will be overridden.",
- "error": {
- "invalidUrl": "Invalid Meshtastic URL"
- },
- "channelPrefix": "Channel: ",
- "channelSetUrl": "Channel Set/QR Code URL",
- "channels": "Channels:",
- "usePreset": "Use Preset?",
- "title": "Import Channel Set"
- },
- "locationResponse": {
- "title": "Location: {{identifier}}",
- "altitude": "Altitude: ",
- "coordinates": "Coordinates: ",
- "noCoordinates": "No Coordinates"
- },
- "pkiRegenerateDialog": {
- "title": "Regenerate Pre-Shared Key?",
- "description": "Are you sure you want to regenerate the pre-shared key?",
- "regenerate": "Regenerate"
- },
- "newDeviceDialog": {
- "title": "Connect New Device",
- "https": "https",
- "http": "http",
- "tabHttp": "HTTP",
- "tabBluetooth": "蓝牙",
- "tabSerial": "串口",
- "useHttps": "Use HTTPS",
- "connecting": "Connecting...",
- "connect": "连接",
- "connectionFailedAlert": {
- "title": "Connection Failed",
- "descriptionPrefix": "Could not connect to the device. ",
- "httpsHint": "If using HTTPS, you may need to accept a self-signed certificate first. ",
- "openLinkPrefix": "Please open ",
- "openLinkSuffix": " in a new tab",
- "acceptTlsWarningSuffix": ", accept any TLS warnings if prompted, then try again",
- "learnMoreLink": "Learn more"
- },
- "httpConnection": {
- "label": "IP Address/Hostname",
- "placeholder": "000.000.000.000 / meshtastic.local"
- },
- "serialConnection": {
- "noDevicesPaired": "No devices paired yet.",
- "newDeviceButton": "New device",
- "deviceIdentifier": "# {{index}} - {{vendorId}} - {{productId}}"
- },
- "bluetoothConnection": {
- "noDevicesPaired": "No devices paired yet.",
- "newDeviceButton": "New device",
- "connectionFailed": "Connection failed",
- "deviceDisconnected": "Device disconnected",
- "unknownDevice": "Unknown Device",
- "errorLoadingDevices": "Error loading devices",
- "unknownErrorLoadingDevices": "Unknown error loading devices"
- },
- "validation": {
- "requiresWebBluetooth": "This connection type requires <0>Web Bluetooth0>. Please use a supported browser, like Chrome or Edge.",
- "requiresWebSerial": "This connection type requires <0>Web Serial0>. Please use a supported browser, like Chrome or Edge.",
- "requiresSecureContext": "This application requires a <0>secure context0>. Please connect using HTTPS or localhost.",
- "additionallyRequiresSecureContext": "Additionally, it requires a <0>secure context0>. Please connect using HTTPS or localhost."
- }
- },
- "nodeDetails": {
- "message": "信息",
- "requestPosition": "Request Position",
- "traceRoute": "Trace Route",
- "airTxUtilization": "Air TX utilization",
- "allRawMetrics": "All Raw Metrics:",
- "batteryLevel": "Battery level",
- "channelUtilization": "Channel utilization",
- "details": "Details:",
- "deviceMetrics": "Device Metrics:",
- "hardware": "Hardware: ",
- "lastHeard": "Last Heard: ",
- "nodeHexPrefix": "Node Hex: ",
- "nodeNumber": "Node Number: ",
- "position": "Position:",
- "role": "Role: ",
- "uptime": "Uptime: ",
- "voltage": "电压",
- "title": "Node Details for {{identifier}}",
- "ignoreNode": "Ignore node",
- "removeNode": "Remove node",
- "unignoreNode": "Unignore node",
- "security": "Security:",
- "publicKey": "Public Key: ",
- "messageable": "Messageable: ",
- "KeyManuallyVerifiedTrue": "Public Key has been manually verified",
- "KeyManuallyVerifiedFalse": "Public Key is not manually verified"
- },
- "pkiBackup": {
- "loseKeysWarning": "If you lose your keys, you will need to reset your device.",
- "secureBackup": "Its important to backup your public and private keys and store your backup securely!",
- "footer": "=== END OF KEYS ===",
- "header": "=== MESHTASTIC KEYS FOR {{longName}} ({{shortName}}) ===",
- "privateKey": "Private Key:",
- "publicKey": "Public Key:",
- "fileName": "meshtastic_keys_{{longName}}_{{shortName}}.txt",
- "title": "Backup Keys"
- },
- "pkiBackupReminder": {
- "description": "We recommend backing up your key data regularly. Would you like to back up now?",
- "title": "Backup Reminder",
- "remindLaterPrefix": "Remind me in",
- "remindNever": "Never remind me",
- "backupNow": "Back up now"
- },
- "pkiRegenerate": {
- "description": "Are you sure you want to regenerate key pair?",
- "title": "Regenerate Key Pair"
- },
- "qr": {
- "addChannels": "Add Channels",
- "replaceChannels": "Replace Channels",
- "description": "The current LoRa configuration will also be shared.",
- "sharableUrl": "Sharable URL",
- "title": "生成二维码"
- },
- "reboot": {
- "title": "Reboot device",
- "description": "Reboot now or schedule a reboot of the connected node. Optionally, you can choose to reboot into OTA (Over-the-Air) mode.",
- "ota": "Reboot into OTA mode",
- "enterDelay": "Enter delay",
- "scheduled": "Reboot has been scheduled",
- "schedule": "Schedule reboot",
- "now": "Reboot now",
- "cancel": "Cancel scheduled reboot"
- },
- "refreshKeys": {
- "description": {
- "acceptNewKeys": "This will remove the node from device and request new keys.",
- "keyMismatchReasonSuffix": ". This is due to the remote node's current public key does not match the previously stored key for this node.",
- "unableToSendDmPrefix": "Your node is unable to send a direct message to node: "
- },
- "acceptNewKeys": "Accept New Keys",
- "title": "Keys Mismatch - {{identifier}}"
- },
- "removeNode": {
- "description": "Are you sure you want to remove this Node?",
- "title": "Remove Node?"
- },
- "shutdown": {
- "title": "Schedule Shutdown",
- "description": "Turn off the connected node after x minutes."
- },
- "traceRoute": {
- "routeToDestination": "Route to destination:",
- "routeBack": "Route back:"
- },
- "tracerouteResponse": {
- "title": "Traceroute: {{identifier}}"
- },
- "unsafeRoles": {
- "confirmUnderstanding": "Yes, I know what I'm doing",
- "conjunction": " and the blog post about ",
- "postamble": " and understand the implications of changing the role.",
- "preamble": "I have read the ",
- "choosingRightDeviceRole": "Choosing The Right Device Role",
- "deviceRoleDocumentation": "Device Role Documentation",
- "title": "是否确认?"
- },
- "managedMode": {
- "confirmUnderstanding": "Yes, I know what I'm doing",
- "title": "是否确认?",
- "description": "Enabling Managed Mode blocks client applications (including the web client) from writing configurations to a radio. Once enabled, radio configurations can only be changed through Remote Admin messages. This setting is not required for remote node administration."
- },
- "clientNotification": {
- "title": "客户端通知",
- "TraceRoute can only be sent once every 30 seconds": "TraceRoute can only be sent once every 30 seconds",
- "Compromised keys were detected and regenerated.": "Compromised keys were detected and regenerated."
- }
+ "deleteMessages": {
+ "description": "This action will clear all message history. This cannot be undone. Are you sure you want to continue?",
+ "title": "Clear All Messages"
+ },
+ "deviceName": {
+ "description": "The Device will restart once the config is saved.",
+ "longName": "长名称",
+ "shortName": "短名称",
+ "title": "Change Device Name",
+ "validation": {
+ "longNameMax": "Long name must not be more than 40 characters",
+ "shortNameMax": "Short name must not be more than 4 characters",
+ "longNameMin": "Long name must have at least 1 character",
+ "shortNameMin": "Short name must have at least 1 character"
+ }
+ },
+ "import": {
+ "description": "The current LoRa configuration will be overridden.",
+ "error": {
+ "invalidUrl": "Invalid Meshtastic URL"
+ },
+ "channelPrefix": "Channel: ",
+ "primary": "Primary ",
+ "doNotImport": "No not import",
+ "channelName": "名称",
+ "channelSlot": "槽位",
+ "channelSetUrl": "Channel Set/QR Code URL",
+ "useLoraConfig": "Import LoRa Config",
+ "presetDescription": "The current LoRa Config will be replaced.",
+ "title": "Import Channel Set"
+ },
+ "locationResponse": {
+ "title": "Location: {{identifier}}",
+ "altitude": "Altitude: ",
+ "coordinates": "Coordinates: ",
+ "noCoordinates": "No Coordinates"
+ },
+ "pkiRegenerateDialog": {
+ "title": "Regenerate Pre-Shared Key?",
+ "description": "Are you sure you want to regenerate the pre-shared key?",
+ "regenerate": "Regenerate"
+ },
+ "newDeviceDialog": {
+ "title": "Connect New Device",
+ "https": "https",
+ "http": "http",
+ "tabHttp": "HTTP",
+ "tabBluetooth": "蓝牙",
+ "tabSerial": "串口",
+ "useHttps": "Use HTTPS",
+ "connecting": "Connecting...",
+ "connect": "连接",
+ "connectionFailedAlert": {
+ "title": "Connection Failed",
+ "descriptionPrefix": "Could not connect to the device. ",
+ "httpsHint": "If using HTTPS, you may need to accept a self-signed certificate first. ",
+ "openLinkPrefix": "Please open ",
+ "openLinkSuffix": " in a new tab",
+ "acceptTlsWarningSuffix": ", accept any TLS warnings if prompted, then try again",
+ "learnMoreLink": "Learn more"
+ },
+ "httpConnection": {
+ "label": "IP Address/Hostname",
+ "placeholder": "000.000.000.000 / meshtastic.local"
+ },
+ "serialConnection": {
+ "noDevicesPaired": "No devices paired yet.",
+ "newDeviceButton": "New device",
+ "deviceIdentifier": "# {{index}} - {{vendorId}} - {{productId}}"
+ },
+ "bluetoothConnection": {
+ "noDevicesPaired": "No devices paired yet.",
+ "newDeviceButton": "New device",
+ "connectionFailed": "Connection failed",
+ "deviceDisconnected": "Device disconnected",
+ "unknownDevice": "Unknown Device",
+ "errorLoadingDevices": "Error loading devices",
+ "unknownErrorLoadingDevices": "Unknown error loading devices"
+ },
+ "validation": {
+ "requiresWebBluetooth": "This connection type requires <0>Web Bluetooth0>. Please use a supported browser, like Chrome or Edge.",
+ "requiresWebSerial": "This connection type requires <0>Web Serial0>. Please use a supported browser, like Chrome or Edge.",
+ "requiresSecureContext": "This application requires a <0>secure context0>. Please connect using HTTPS or localhost.",
+ "additionallyRequiresSecureContext": "Additionally, it requires a <0>secure context0>. Please connect using HTTPS or localhost."
+ }
+ },
+ "nodeDetails": {
+ "message": "信息",
+ "requestPosition": "Request Position",
+ "traceRoute": "Trace Route",
+ "airTxUtilization": "Air TX utilization",
+ "allRawMetrics": "All Raw Metrics:",
+ "batteryLevel": "Battery level",
+ "channelUtilization": "Channel utilization",
+ "details": "Details:",
+ "deviceMetrics": "Device Metrics:",
+ "hardware": "Hardware: ",
+ "lastHeard": "Last Heard: ",
+ "nodeHexPrefix": "Node Hex: ",
+ "nodeNumber": "Node Number: ",
+ "position": "Position:",
+ "role": "Role: ",
+ "uptime": "Uptime: ",
+ "voltage": "电压",
+ "title": "Node Details for {{identifier}}",
+ "ignoreNode": "Ignore node",
+ "removeNode": "Remove node",
+ "unignoreNode": "Unignore node",
+ "security": "Security:",
+ "publicKey": "Public Key: ",
+ "messageable": "Messageable: ",
+ "KeyManuallyVerifiedTrue": "Public Key has been manually verified",
+ "KeyManuallyVerifiedFalse": "Public Key is not manually verified"
+ },
+ "pkiBackup": {
+ "loseKeysWarning": "If you lose your keys, you will need to reset your device.",
+ "secureBackup": "Its important to backup your public and private keys and store your backup securely!",
+ "footer": "=== END OF KEYS ===",
+ "header": "=== MESHTASTIC KEYS FOR {{longName}} ({{shortName}}) ===",
+ "privateKey": "Private Key:",
+ "publicKey": "Public Key:",
+ "fileName": "meshtastic_keys_{{longName}}_{{shortName}}.txt",
+ "title": "Backup Keys"
+ },
+ "pkiBackupReminder": {
+ "description": "We recommend backing up your key data regularly. Would you like to back up now?",
+ "title": "Backup Reminder",
+ "remindLaterPrefix": "Remind me in",
+ "remindNever": "Never remind me",
+ "backupNow": "Back up now"
+ },
+ "pkiRegenerate": {
+ "description": "Are you sure you want to regenerate key pair?",
+ "title": "Regenerate Key Pair"
+ },
+ "qr": {
+ "addChannels": "Add Channels",
+ "replaceChannels": "Replace Channels",
+ "description": "The current LoRa configuration will also be shared.",
+ "sharableUrl": "Sharable URL",
+ "title": "生成二维码"
+ },
+ "reboot": {
+ "title": "Reboot device",
+ "description": "Reboot now or schedule a reboot of the connected node. Optionally, you can choose to reboot into OTA (Over-the-Air) mode.",
+ "ota": "Reboot into OTA mode",
+ "enterDelay": "Enter delay",
+ "scheduled": "Reboot has been scheduled",
+ "schedule": "Schedule reboot",
+ "now": "Reboot now",
+ "cancel": "Cancel scheduled reboot"
+ },
+ "refreshKeys": {
+ "description": {
+ "acceptNewKeys": "This will remove the node from device and request new keys.",
+ "keyMismatchReasonSuffix": ". This is due to the remote node's current public key does not match the previously stored key for this node.",
+ "unableToSendDmPrefix": "Your node is unable to send a direct message to node: "
+ },
+ "acceptNewKeys": "Accept New Keys",
+ "title": "Keys Mismatch - {{identifier}}"
+ },
+ "removeNode": {
+ "description": "Are you sure you want to remove this Node?",
+ "title": "Remove Node?"
+ },
+ "shutdown": {
+ "title": "Schedule Shutdown",
+ "description": "Turn off the connected node after x minutes."
+ },
+ "traceRoute": {
+ "routeToDestination": "Route to destination:",
+ "routeBack": "Route back:"
+ },
+ "tracerouteResponse": {
+ "title": "Traceroute: {{identifier}}"
+ },
+ "unsafeRoles": {
+ "confirmUnderstanding": "Yes, I know what I'm doing",
+ "conjunction": " and the blog post about ",
+ "postamble": " and understand the implications of changing the role.",
+ "preamble": "I have read the ",
+ "choosingRightDeviceRole": "Choosing The Right Device Role",
+ "deviceRoleDocumentation": "Device Role Documentation",
+ "title": "是否确认?"
+ },
+ "managedMode": {
+ "confirmUnderstanding": "Yes, I know what I'm doing",
+ "title": "是否确认?",
+ "description": "Enabling Managed Mode blocks client applications (including the web client) from writing configurations to a radio. Once enabled, radio configurations can only be changed through Remote Admin messages. This setting is not required for remote node administration."
+ },
+ "clientNotification": {
+ "title": "客户端通知",
+ "TraceRoute can only be sent once every 30 seconds": "TraceRoute can only be sent once every 30 seconds",
+ "Compromised keys were detected and regenerated.": "Compromised keys were detected and regenerated."
+ },
+ "resetNodeDb": {
+ "title": "Reset Node Database",
+ "description": "This will clear all nodes from the connected device's node database and clear all message history in the client. This cannot be undone. Are you sure you want to continue?",
+ "confirm": "Reset Node Database",
+ "failedTitle": "There was an error resetting the Node DB. Please try again."
+ },
+ "clearAllStores": {
+ "title": "Clear All Local Storage",
+ "description": "This will clear all locally stored data, including message history and node databases for all previously connected devices. This will require you to reconnect to your node once complete and cannot be undone. Are you sure you want to continue?",
+ "confirm": "Clear all local storage",
+ "failedTitle": "There was an error clearing local storage. Please try again."
+ },
+ "factoryResetDevice": {
+ "title": "Factory Reset Device",
+ "description": "This will factory reset the connected device, erasing all configurations and data on the device as well as all nodes and messages saved in the client. This cannot be undone. Are you sure you want to continue?",
+ "confirm": "Factory Reset Device",
+ "failedTitle": "There was an error performing the factory reset. Please try again."
+ },
+ "factoryResetConfig": {
+ "title": "Factory Reset Config",
+ "description": "This will factory reset the configuration on the connected device, erasing all configurations on the device. This cannot be undone. Are you sure you want to continue?",
+ "confirm": "Factory Reset Config",
+ "failedTitle": "There was an error performing the factory reset. Please try again."
+ }
}
diff --git a/packages/web/public/i18n/locales/zh-CN/map.json b/packages/web/public/i18n/locales/zh-CN/map.json
new file mode 100644
index 00000000..bd5472ae
--- /dev/null
+++ b/packages/web/public/i18n/locales/zh-CN/map.json
@@ -0,0 +1,38 @@
+{
+ "maplibre": {
+ "GeolocateControl.FindMyLocation": "Find my location",
+ "NavigationControl.ZoomIn": "Zoom in",
+ "NavigationControl.ZoomOut": "Zoom out",
+ "CooperativeGesturesHandler.WindowsHelpText": "Use Ctrl + scroll to zoom the map",
+ "CooperativeGesturesHandler.MacHelpText": "Use ⌘ + scroll to zoom the map",
+ "CooperativeGesturesHandler.MobileHelpText": "Use two fingers to move the map"
+ },
+ "layerTool": {
+ "nodeMarkers": "Show nodes",
+ "directNeighbors": "Show direct connections",
+ "remoteNeighbors": "Show remote connections",
+ "positionPrecision": "Show position precision",
+ "traceroutes": "Show traceroutes",
+ "waypoints": "Show waypoints"
+ },
+ "mapMenu": {
+ "locateAria": "Locate my node",
+ "layersAria": "Change map style"
+ },
+ "waypointDetail": {
+ "edit": "编辑",
+ "description": "Description:",
+ "createdBy": "Edited by:",
+ "createdDate": "Created:",
+ "updated": "Updated:",
+ "expires": "Expires:",
+ "distance": "Distance:",
+ "bearing": "Absolute bearing:",
+ "lockedTo": "Locked by:",
+ "latitude": "Latitude:",
+ "longitude": "Longitude:"
+ },
+ "myNode": {
+ "tooltip": "This device"
+ }
+}
diff --git a/packages/web/public/i18n/locales/zh-CN/messages.json b/packages/web/public/i18n/locales/zh-CN/messages.json
index 790b61b8..35f3380b 100644
--- a/packages/web/public/i18n/locales/zh-CN/messages.json
+++ b/packages/web/public/i18n/locales/zh-CN/messages.json
@@ -1,39 +1,39 @@
{
- "page": {
- "title": "Messages: {{chatName}}",
- "placeholder": "Enter Message"
- },
- "emptyState": {
- "title": "Select a Chat",
- "text": "No messages yet."
- },
- "selectChatPrompt": {
- "text": "Select a channel or node to start messaging."
- },
- "sendMessage": {
- "placeholder": "Enter your message here...",
- "sendButton": "传送"
- },
- "actionsMenu": {
- "addReactionLabel": "Add Reaction",
- "replyLabel": "回复"
- },
- "deliveryStatus": {
- "delivered": {
- "label": "Message delivered",
- "displayText": "Message delivered"
- },
- "failed": {
- "label": "Message delivery failed",
- "displayText": "Delivery failed"
- },
- "unknown": {
- "label": "Message status unknown",
- "displayText": "Unknown state"
- },
- "waiting": {
- "label": "Sending message",
- "displayText": "Waiting for delivery"
- }
- }
+ "page": {
+ "title": "Messages: {{chatName}}",
+ "placeholder": "Enter Message"
+ },
+ "emptyState": {
+ "title": "Select a Chat",
+ "text": "No messages yet."
+ },
+ "selectChatPrompt": {
+ "text": "Select a channel or node to start messaging."
+ },
+ "sendMessage": {
+ "placeholder": "Enter your message here...",
+ "sendButton": "传送"
+ },
+ "actionsMenu": {
+ "addReactionLabel": "Add Reaction",
+ "replyLabel": "回复"
+ },
+ "deliveryStatus": {
+ "delivered": {
+ "label": "Message delivered",
+ "displayText": "Message delivered"
+ },
+ "failed": {
+ "label": "Message delivery failed",
+ "displayText": "Delivery failed"
+ },
+ "unknown": {
+ "label": "Message status unknown",
+ "displayText": "Unknown state"
+ },
+ "waiting": {
+ "label": "Sending message",
+ "displayText": "Waiting for delivery"
+ }
+ }
}
diff --git a/packages/web/public/i18n/locales/zh-CN/moduleConfig.json b/packages/web/public/i18n/locales/zh-CN/moduleConfig.json
index 0cd367a7..1efed1b2 100644
--- a/packages/web/public/i18n/locales/zh-CN/moduleConfig.json
+++ b/packages/web/public/i18n/locales/zh-CN/moduleConfig.json
@@ -1,448 +1,448 @@
{
- "page": {
- "tabAmbientLighting": "氛围灯",
- "tabAudio": "音频",
- "tabCannedMessage": "Canned",
- "tabDetectionSensor": "检测传感器",
- "tabExternalNotification": "Ext Notif",
- "tabMqtt": "MQTT",
- "tabNeighborInfo": "邻居信息",
- "tabPaxcounter": "客流计数",
- "tabRangeTest": "拉距测试",
- "tabSerial": "串口",
- "tabStoreAndForward": "S&F",
- "tabTelemetry": "遥测(传感器)"
- },
- "ambientLighting": {
- "title": "Ambient Lighting Settings",
- "description": "Settings for the Ambient Lighting module",
- "ledState": {
- "label": "LED 状态",
- "description": "Sets LED to on or off"
- },
- "current": {
- "label": "电流",
- "description": "Sets the current for the LED output. Default is 10"
- },
- "red": {
- "label": "红",
- "description": "Sets the red LED level. Values are 0-255"
- },
- "green": {
- "label": "绿",
- "description": "Sets the green LED level. Values are 0-255"
- },
- "blue": {
- "label": "蓝",
- "description": "Sets the blue LED level. Values are 0-255"
- }
- },
- "audio": {
- "title": "Audio Settings",
- "description": "Settings for the Audio module",
- "codec2Enabled": {
- "label": "Codec 2 Enabled",
- "description": "Enable Codec 2 audio encoding"
- },
- "pttPin": {
- "label": "PTT Pin",
- "description": "GPIO pin to use for PTT"
- },
- "bitrate": {
- "label": "Bitrate",
- "description": "Bitrate to use for audio encoding"
- },
- "i2sWs": {
- "label": "i2S WS",
- "description": "GPIO pin to use for i2S WS"
- },
- "i2sSd": {
- "label": "i2S SD",
- "description": "GPIO pin to use for i2S SD"
- },
- "i2sDin": {
- "label": "i2S DIN",
- "description": "GPIO pin to use for i2S DIN"
- },
- "i2sSck": {
- "label": "i2S SCK",
- "description": "GPIO pin to use for i2S SCK"
- }
- },
- "cannedMessage": {
- "title": "Canned Message Settings",
- "description": "Settings for the Canned Message module",
- "moduleEnabled": {
- "label": "Module Enabled",
- "description": "Enable Canned Message"
- },
- "rotary1Enabled": {
- "label": "Rotary Encoder #1 Enabled",
- "description": "Enable the rotary encoder"
- },
- "inputbrokerPinA": {
- "label": "Encoder Pin A",
- "description": "GPIO Pin Value (1-39) For encoder port A"
- },
- "inputbrokerPinB": {
- "label": "Encoder Pin B",
- "description": "GPIO Pin Value (1-39) For encoder port B"
- },
- "inputbrokerPinPress": {
- "label": "Encoder Pin Press",
- "description": "GPIO Pin Value (1-39) For encoder Press"
- },
- "inputbrokerEventCw": {
- "label": "Clockwise event",
- "description": "Select input event."
- },
- "inputbrokerEventCcw": {
- "label": "Counter Clockwise event",
- "description": "Select input event."
- },
- "inputbrokerEventPress": {
- "label": "Press event",
- "description": "Select input event"
- },
- "updown1Enabled": {
- "label": "Up Down enabled",
- "description": "Enable the up / down encoder"
- },
- "allowInputSource": {
- "label": "Allow Input Source",
- "description": "Select from: '_any', 'rotEnc1', 'upDownEnc1', 'cardkb'"
- },
- "sendBell": {
- "label": "发送铃声",
- "description": "Sends a bell character with each message"
- }
- },
- "detectionSensor": {
- "title": "Detection Sensor Settings",
- "description": "Settings for the Detection Sensor module",
- "enabled": {
- "label": "启用",
- "description": "Enable or disable Detection Sensor Module"
- },
- "minimumBroadcastSecs": {
- "label": "Minimum Broadcast Seconds",
- "description": "The interval in seconds of how often we can send a message to the mesh when a state change is detected"
- },
- "stateBroadcastSecs": {
- "label": "State Broadcast Seconds",
- "description": "The interval in seconds of how often we should send a message to the mesh with the current state regardless of changes"
- },
- "sendBell": {
- "label": "发送铃声",
- "description": "Send ASCII bell with alert message"
- },
- "name": {
- "label": "Friendly Name",
- "description": "Used to format the message sent to mesh, max 20 Characters"
- },
- "monitorPin": {
- "label": "Monitor Pin",
- "description": "The GPIO pin to monitor for state changes"
- },
- "detectionTriggerType": {
- "label": "Detection Triggered Type",
- "description": "The type of trigger event to be used"
- },
- "usePullup": {
- "label": "Use Pullup",
- "description": "Whether or not use INPUT_PULLUP mode for GPIO pin"
- }
- },
- "externalNotification": {
- "title": "External Notification Settings",
- "description": "Configure the external notification module",
- "enabled": {
- "label": "Module Enabled",
- "description": "Enable External Notification"
- },
- "outputMs": {
- "label": "Output MS",
- "description": "Output MS"
- },
- "output": {
- "label": "Output",
- "description": "Output"
- },
- "outputVibra": {
- "label": "Output Vibrate",
- "description": "Output Vibrate"
- },
- "outputBuzzer": {
- "label": "Output Buzzer",
- "description": "Output Buzzer"
- },
- "active": {
- "label": "Active",
- "description": "Active"
- },
- "alertMessage": {
- "label": "Alert Message",
- "description": "Alert Message"
- },
- "alertMessageVibra": {
- "label": "Alert Message Vibrate",
- "description": "Alert Message Vibrate"
- },
- "alertMessageBuzzer": {
- "label": "Alert Message Buzzer",
- "description": "Alert Message Buzzer"
- },
- "alertBell": {
- "label": "Alert Bell",
- "description": "Should an alert be triggered when receiving an incoming bell?"
- },
- "alertBellVibra": {
- "label": "Alert Bell Vibrate",
- "description": "Alert Bell Vibrate"
- },
- "alertBellBuzzer": {
- "label": "Alert Bell Buzzer",
- "description": "Alert Bell Buzzer"
- },
- "usePwm": {
- "label": "Use PWM",
- "description": "Use PWM"
- },
- "nagTimeout": {
- "label": "Nag Timeout",
- "description": "Nag Timeout"
- },
- "useI2sAsBuzzer": {
- "label": "Use I²S Pin as Buzzer",
- "description": "Designate I²S Pin as Buzzer Output"
- }
- },
- "mqtt": {
- "title": "MQTT Settings",
- "description": "Settings for the MQTT module",
- "enabled": {
- "label": "启用",
- "description": "Enable or disable MQTT"
- },
- "address": {
- "label": "MQTT Server Address",
- "description": "MQTT server address to use for default/custom servers"
- },
- "username": {
- "label": "MQTT Username",
- "description": "MQTT username to use for default/custom servers"
- },
- "password": {
- "label": "MQTT Password",
- "description": "MQTT password to use for default/custom servers"
- },
- "encryptionEnabled": {
- "label": "启用加密",
- "description": "Enable or disable MQTT encryption. Note: All messages are sent to the MQTT broker unencrypted if this option is not enabled, even when your uplink channels have encryption keys set. This includes position data."
- },
- "jsonEnabled": {
- "label": "启用 JSON",
- "description": "Whether to send/consume JSON packets on MQTT"
- },
- "tlsEnabled": {
- "label": "启用 TLS",
- "description": "Enable or disable TLS"
- },
- "root": {
- "label": "根主题",
- "description": "MQTT root topic to use for default/custom servers"
- },
- "proxyToClientEnabled": {
- "label": "MQTT Client Proxy Enabled",
- "description": "Utilizes the network connection to proxy MQTT messages to the client."
- },
- "mapReportingEnabled": {
- "label": "Map Reporting Enabled",
- "description": "Your node will periodically send an unencrypted map report packet to the configured MQTT server, this includes id, short and long name, approximate location, hardware model, role, firmware version, LoRa region, modem preset and primary channel name."
- },
- "mapReportSettings": {
- "publishIntervalSecs": {
- "label": "Map Report Publish Interval (s)",
- "description": "Interval in seconds to publish map reports"
- },
- "positionPrecision": {
- "label": "Approximate Location",
- "description": "Position shared will be accurate within this distance",
- "options": {
- "metric_km23": "Within 23 km",
- "metric_km12": "Within 12 km",
- "metric_km5_8": "Within 5.8 km",
- "metric_km2_9": "Within 2.9 km",
- "metric_km1_5": "Within 1.5 km",
- "metric_m700": "Within 700 m",
- "metric_m350": "Within 350 m",
- "metric_m200": "Within 200 m",
- "metric_m90": "Within 90 m",
- "metric_m50": "Within 50 m",
- "imperial_mi15": "Within 15 miles",
- "imperial_mi7_3": "Within 7.3 miles",
- "imperial_mi3_6": "Within 3.6 miles",
- "imperial_mi1_8": "Within 1.8 miles",
- "imperial_mi0_9": "Within 0.9 miles",
- "imperial_mi0_5": "Within 0.5 miles",
- "imperial_mi0_2": "Within 0.2 miles",
- "imperial_ft600": "Within 600 feet",
- "imperial_ft300": "Within 300 feet",
- "imperial_ft150": "Within 150 feet"
- }
- }
- }
- },
- "neighborInfo": {
- "title": "Neighbor Info Settings",
- "description": "Settings for the Neighbor Info module",
- "enabled": {
- "label": "启用",
- "description": "Enable or disable Neighbor Info Module"
- },
- "updateInterval": {
- "label": "Update Interval",
- "description": "Interval in seconds of how often we should try to send our Neighbor Info to the mesh"
- }
- },
- "paxcounter": {
- "title": "Paxcounter Settings",
- "description": "Settings for the Paxcounter module",
- "enabled": {
- "label": "Module Enabled",
- "description": "Enable Paxcounter"
- },
- "paxcounterUpdateInterval": {
- "label": "Update Interval (seconds)",
- "description": "How long to wait between sending paxcounter packets"
- },
- "wifiThreshold": {
- "label": "WiFi RSSI Threshold",
- "description": "At what WiFi RSSI level should the counter increase. Defaults to -80."
- },
- "bleThreshold": {
- "label": "BLE RSSI Threshold",
- "description": "At what BLE RSSI level should the counter increase. Defaults to -80."
- }
- },
- "rangeTest": {
- "title": "Range Test Settings",
- "description": "Settings for the Range Test module",
- "enabled": {
- "label": "Module Enabled",
- "description": "Enable Range Test"
- },
- "sender": {
- "label": "Message Interval",
- "description": "How long to wait between sending test packets"
- },
- "save": {
- "label": "Save CSV to storage",
- "description": "ESP32 Only"
- }
- },
- "serial": {
- "title": "Serial Settings",
- "description": "Settings for the Serial module",
- "enabled": {
- "label": "Module Enabled",
- "description": "Enable Serial output"
- },
- "echo": {
- "label": "回声",
- "description": "Any packets you send will be echoed back to your device"
- },
- "rxd": {
- "label": "Receive Pin",
- "description": "Set the GPIO pin to the RXD pin you have set up."
- },
- "txd": {
- "label": "Transmit Pin",
- "description": "Set the GPIO pin to the TXD pin you have set up."
- },
- "baud": {
- "label": "Baud Rate",
- "description": "The serial baud rate"
- },
- "timeout": {
- "label": "超时",
- "description": "Seconds to wait before we consider your packet as 'done'"
- },
- "mode": {
- "label": "模式",
- "description": "Select Mode"
- },
- "overrideConsoleSerialPort": {
- "label": "Override Console Serial Port",
- "description": "If you have a serial port connected to the console, this will override it."
- }
- },
- "storeForward": {
- "title": "Store & Forward Settings",
- "description": "Settings for the Store & Forward module",
- "enabled": {
- "label": "Module Enabled",
- "description": "Enable Store & Forward"
- },
- "heartbeat": {
- "label": "Heartbeat Enabled",
- "description": "Enable Store & Forward heartbeat"
- },
- "records": {
- "label": "记录数",
- "description": "Number of records to store"
- },
- "historyReturnMax": {
- "label": "历史记录最大返回值",
- "description": "Max number of records to return"
- },
- "historyReturnWindow": {
- "label": "历史记录返回窗口",
- "description": "返回此时间窗口内的记录(分钟)"
- }
- },
- "telemetry": {
- "title": "Telemetry Settings",
- "description": "Settings for the Telemetry module",
- "deviceUpdateInterval": {
- "label": "设备指标",
- "description": "设备计量更新间隔 (秒)"
- },
- "environmentUpdateInterval": {
- "label": "环境计量更新间隔 (秒)",
- "description": ""
- },
- "environmentMeasurementEnabled": {
- "label": "Module Enabled",
- "description": "Enable the Environment Telemetry"
- },
- "environmentScreenEnabled": {
- "label": "Displayed on Screen",
- "description": "Show the Telemetry Module on the OLED"
- },
- "environmentDisplayFahrenheit": {
- "label": "展示华氏度",
- "description": "Display temp in Fahrenheit"
- },
- "airQualityEnabled": {
- "label": "Air Quality Enabled",
- "description": "Enable the Air Quality Telemetry"
- },
- "airQualityInterval": {
- "label": "Air Quality Update Interval",
- "description": "How often to send Air Quality data over the mesh"
- },
- "powerMeasurementEnabled": {
- "label": "Power Measurement Enabled",
- "description": "Enable the Power Measurement Telemetry"
- },
- "powerUpdateInterval": {
- "label": "Power Update Interval",
- "description": "How often to send Power data over the mesh"
- },
- "powerScreenEnabled": {
- "label": "Power Screen Enabled",
- "description": "Enable the Power Telemetry Screen"
- }
- }
+ "page": {
+ "tabAmbientLighting": "氛围灯",
+ "tabAudio": "音频",
+ "tabCannedMessage": "Canned",
+ "tabDetectionSensor": "检测传感器",
+ "tabExternalNotification": "Ext Notif",
+ "tabMqtt": "MQTT",
+ "tabNeighborInfo": "邻居信息",
+ "tabPaxcounter": "客流计数",
+ "tabRangeTest": "拉距测试",
+ "tabSerial": "串口",
+ "tabStoreAndForward": "S&F",
+ "tabTelemetry": "遥测(传感器)"
+ },
+ "ambientLighting": {
+ "title": "Ambient Lighting Settings",
+ "description": "Settings for the Ambient Lighting module",
+ "ledState": {
+ "label": "LED 状态",
+ "description": "Sets LED to on or off"
+ },
+ "current": {
+ "label": "电流",
+ "description": "Sets the current for the LED output. Default is 10"
+ },
+ "red": {
+ "label": "红",
+ "description": "Sets the red LED level. Values are 0-255"
+ },
+ "green": {
+ "label": "绿",
+ "description": "Sets the green LED level. Values are 0-255"
+ },
+ "blue": {
+ "label": "蓝",
+ "description": "Sets the blue LED level. Values are 0-255"
+ }
+ },
+ "audio": {
+ "title": "Audio Settings",
+ "description": "Settings for the Audio module",
+ "codec2Enabled": {
+ "label": "Codec 2 Enabled",
+ "description": "Enable Codec 2 audio encoding"
+ },
+ "pttPin": {
+ "label": "PTT Pin",
+ "description": "GPIO pin to use for PTT"
+ },
+ "bitrate": {
+ "label": "Bitrate",
+ "description": "Bitrate to use for audio encoding"
+ },
+ "i2sWs": {
+ "label": "i2S WS",
+ "description": "GPIO pin to use for i2S WS"
+ },
+ "i2sSd": {
+ "label": "i2S SD",
+ "description": "GPIO pin to use for i2S SD"
+ },
+ "i2sDin": {
+ "label": "i2S DIN",
+ "description": "GPIO pin to use for i2S DIN"
+ },
+ "i2sSck": {
+ "label": "i2S SCK",
+ "description": "GPIO pin to use for i2S SCK"
+ }
+ },
+ "cannedMessage": {
+ "title": "Canned Message Settings",
+ "description": "Settings for the Canned Message module",
+ "moduleEnabled": {
+ "label": "Module Enabled",
+ "description": "Enable Canned Message"
+ },
+ "rotary1Enabled": {
+ "label": "Rotary Encoder #1 Enabled",
+ "description": "Enable the rotary encoder"
+ },
+ "inputbrokerPinA": {
+ "label": "Encoder Pin A",
+ "description": "GPIO Pin Value (1-39) For encoder port A"
+ },
+ "inputbrokerPinB": {
+ "label": "Encoder Pin B",
+ "description": "GPIO Pin Value (1-39) For encoder port B"
+ },
+ "inputbrokerPinPress": {
+ "label": "Encoder Pin Press",
+ "description": "GPIO Pin Value (1-39) For encoder Press"
+ },
+ "inputbrokerEventCw": {
+ "label": "Clockwise event",
+ "description": "Select input event."
+ },
+ "inputbrokerEventCcw": {
+ "label": "Counter Clockwise event",
+ "description": "Select input event."
+ },
+ "inputbrokerEventPress": {
+ "label": "Press event",
+ "description": "Select input event"
+ },
+ "updown1Enabled": {
+ "label": "Up Down enabled",
+ "description": "Enable the up / down encoder"
+ },
+ "allowInputSource": {
+ "label": "Allow Input Source",
+ "description": "Select from: '_any', 'rotEnc1', 'upDownEnc1', 'cardkb'"
+ },
+ "sendBell": {
+ "label": "发送铃声",
+ "description": "Sends a bell character with each message"
+ }
+ },
+ "detectionSensor": {
+ "title": "Detection Sensor Settings",
+ "description": "Settings for the Detection Sensor module",
+ "enabled": {
+ "label": "启用",
+ "description": "Enable or disable Detection Sensor Module"
+ },
+ "minimumBroadcastSecs": {
+ "label": "Minimum Broadcast Seconds",
+ "description": "The interval in seconds of how often we can send a message to the mesh when a state change is detected"
+ },
+ "stateBroadcastSecs": {
+ "label": "State Broadcast Seconds",
+ "description": "The interval in seconds of how often we should send a message to the mesh with the current state regardless of changes"
+ },
+ "sendBell": {
+ "label": "发送铃声",
+ "description": "Send ASCII bell with alert message"
+ },
+ "name": {
+ "label": "Friendly Name",
+ "description": "Used to format the message sent to mesh, max 20 Characters"
+ },
+ "monitorPin": {
+ "label": "Monitor Pin",
+ "description": "The GPIO pin to monitor for state changes"
+ },
+ "detectionTriggerType": {
+ "label": "Detection Triggered Type",
+ "description": "The type of trigger event to be used"
+ },
+ "usePullup": {
+ "label": "Use Pullup",
+ "description": "Whether or not use INPUT_PULLUP mode for GPIO pin"
+ }
+ },
+ "externalNotification": {
+ "title": "External Notification Settings",
+ "description": "Configure the external notification module",
+ "enabled": {
+ "label": "Module Enabled",
+ "description": "Enable External Notification"
+ },
+ "outputMs": {
+ "label": "Output MS",
+ "description": "Output MS"
+ },
+ "output": {
+ "label": "Output",
+ "description": "Output"
+ },
+ "outputVibra": {
+ "label": "Output Vibrate",
+ "description": "Output Vibrate"
+ },
+ "outputBuzzer": {
+ "label": "Output Buzzer",
+ "description": "Output Buzzer"
+ },
+ "active": {
+ "label": "Active",
+ "description": "Active"
+ },
+ "alertMessage": {
+ "label": "Alert Message",
+ "description": "Alert Message"
+ },
+ "alertMessageVibra": {
+ "label": "Alert Message Vibrate",
+ "description": "Alert Message Vibrate"
+ },
+ "alertMessageBuzzer": {
+ "label": "Alert Message Buzzer",
+ "description": "Alert Message Buzzer"
+ },
+ "alertBell": {
+ "label": "Alert Bell",
+ "description": "Should an alert be triggered when receiving an incoming bell?"
+ },
+ "alertBellVibra": {
+ "label": "Alert Bell Vibrate",
+ "description": "Alert Bell Vibrate"
+ },
+ "alertBellBuzzer": {
+ "label": "Alert Bell Buzzer",
+ "description": "Alert Bell Buzzer"
+ },
+ "usePwm": {
+ "label": "Use PWM",
+ "description": "Use PWM"
+ },
+ "nagTimeout": {
+ "label": "Nag Timeout",
+ "description": "Nag Timeout"
+ },
+ "useI2sAsBuzzer": {
+ "label": "Use I²S Pin as Buzzer",
+ "description": "Designate I²S Pin as Buzzer Output"
+ }
+ },
+ "mqtt": {
+ "title": "MQTT Settings",
+ "description": "Settings for the MQTT module",
+ "enabled": {
+ "label": "启用",
+ "description": "Enable or disable MQTT"
+ },
+ "address": {
+ "label": "MQTT Server Address",
+ "description": "MQTT server address to use for default/custom servers"
+ },
+ "username": {
+ "label": "MQTT Username",
+ "description": "MQTT username to use for default/custom servers"
+ },
+ "password": {
+ "label": "MQTT Password",
+ "description": "MQTT password to use for default/custom servers"
+ },
+ "encryptionEnabled": {
+ "label": "启用加密",
+ "description": "Enable or disable MQTT encryption. Note: All messages are sent to the MQTT broker unencrypted if this option is not enabled, even when your uplink channels have encryption keys set. This includes position data."
+ },
+ "jsonEnabled": {
+ "label": "启用 JSON",
+ "description": "Whether to send/consume JSON packets on MQTT"
+ },
+ "tlsEnabled": {
+ "label": "启用 TLS",
+ "description": "Enable or disable TLS"
+ },
+ "root": {
+ "label": "根主题",
+ "description": "MQTT root topic to use for default/custom servers"
+ },
+ "proxyToClientEnabled": {
+ "label": "MQTT Client Proxy Enabled",
+ "description": "Utilizes the network connection to proxy MQTT messages to the client."
+ },
+ "mapReportingEnabled": {
+ "label": "Map Reporting Enabled",
+ "description": "Your node will periodically send an unencrypted map report packet to the configured MQTT server, this includes id, short and long name, approximate location, hardware model, role, firmware version, LoRa region, modem preset and primary channel name."
+ },
+ "mapReportSettings": {
+ "publishIntervalSecs": {
+ "label": "Map Report Publish Interval (s)",
+ "description": "Interval in seconds to publish map reports"
+ },
+ "positionPrecision": {
+ "label": "Approximate Location",
+ "description": "Position shared will be accurate within this distance",
+ "options": {
+ "metric_km23": "Within 23 km",
+ "metric_km12": "Within 12 km",
+ "metric_km5_8": "Within 5.8 km",
+ "metric_km2_9": "Within 2.9 km",
+ "metric_km1_5": "Within 1.5 km",
+ "metric_m700": "Within 700 m",
+ "metric_m350": "Within 350 m",
+ "metric_m200": "Within 200 m",
+ "metric_m90": "Within 90 m",
+ "metric_m50": "Within 50 m",
+ "imperial_mi15": "Within 15 miles",
+ "imperial_mi7_3": "Within 7.3 miles",
+ "imperial_mi3_6": "Within 3.6 miles",
+ "imperial_mi1_8": "Within 1.8 miles",
+ "imperial_mi0_9": "Within 0.9 miles",
+ "imperial_mi0_5": "Within 0.5 miles",
+ "imperial_mi0_2": "Within 0.2 miles",
+ "imperial_ft600": "Within 600 feet",
+ "imperial_ft300": "Within 300 feet",
+ "imperial_ft150": "Within 150 feet"
+ }
+ }
+ }
+ },
+ "neighborInfo": {
+ "title": "Neighbor Info Settings",
+ "description": "Settings for the Neighbor Info module",
+ "enabled": {
+ "label": "启用",
+ "description": "Enable or disable Neighbor Info Module"
+ },
+ "updateInterval": {
+ "label": "Update Interval",
+ "description": "Interval in seconds of how often we should try to send our Neighbor Info to the mesh"
+ }
+ },
+ "paxcounter": {
+ "title": "Paxcounter Settings",
+ "description": "Settings for the Paxcounter module",
+ "enabled": {
+ "label": "Module Enabled",
+ "description": "Enable Paxcounter"
+ },
+ "paxcounterUpdateInterval": {
+ "label": "Update Interval (seconds)",
+ "description": "How long to wait between sending paxcounter packets"
+ },
+ "wifiThreshold": {
+ "label": "WiFi RSSI Threshold",
+ "description": "At what WiFi RSSI level should the counter increase. Defaults to -80."
+ },
+ "bleThreshold": {
+ "label": "BLE RSSI Threshold",
+ "description": "At what BLE RSSI level should the counter increase. Defaults to -80."
+ }
+ },
+ "rangeTest": {
+ "title": "Range Test Settings",
+ "description": "Settings for the Range Test module",
+ "enabled": {
+ "label": "Module Enabled",
+ "description": "Enable Range Test"
+ },
+ "sender": {
+ "label": "Message Interval",
+ "description": "How long to wait between sending test packets"
+ },
+ "save": {
+ "label": "Save CSV to storage",
+ "description": "ESP32 Only"
+ }
+ },
+ "serial": {
+ "title": "Serial Settings",
+ "description": "Settings for the Serial module",
+ "enabled": {
+ "label": "Module Enabled",
+ "description": "Enable Serial output"
+ },
+ "echo": {
+ "label": "回声",
+ "description": "Any packets you send will be echoed back to your device"
+ },
+ "rxd": {
+ "label": "Receive Pin",
+ "description": "Set the GPIO pin to the RXD pin you have set up."
+ },
+ "txd": {
+ "label": "Transmit Pin",
+ "description": "Set the GPIO pin to the TXD pin you have set up."
+ },
+ "baud": {
+ "label": "Baud Rate",
+ "description": "The serial baud rate"
+ },
+ "timeout": {
+ "label": "超时",
+ "description": "Seconds to wait before we consider your packet as 'done'"
+ },
+ "mode": {
+ "label": "模式",
+ "description": "Select Mode"
+ },
+ "overrideConsoleSerialPort": {
+ "label": "Override Console Serial Port",
+ "description": "If you have a serial port connected to the console, this will override it."
+ }
+ },
+ "storeForward": {
+ "title": "Store & Forward Settings",
+ "description": "Settings for the Store & Forward module",
+ "enabled": {
+ "label": "Module Enabled",
+ "description": "Enable Store & Forward"
+ },
+ "heartbeat": {
+ "label": "Heartbeat Enabled",
+ "description": "Enable Store & Forward heartbeat"
+ },
+ "records": {
+ "label": "记录数",
+ "description": "Number of records to store"
+ },
+ "historyReturnMax": {
+ "label": "历史记录最大返回值",
+ "description": "Max number of records to return"
+ },
+ "historyReturnWindow": {
+ "label": "历史记录返回窗口",
+ "description": "返回此时间窗口内的记录(分钟)"
+ }
+ },
+ "telemetry": {
+ "title": "Telemetry Settings",
+ "description": "Settings for the Telemetry module",
+ "deviceUpdateInterval": {
+ "label": "设备指标",
+ "description": "设备计量更新间隔 (秒)"
+ },
+ "environmentUpdateInterval": {
+ "label": "环境计量更新间隔 (秒)",
+ "description": ""
+ },
+ "environmentMeasurementEnabled": {
+ "label": "Module Enabled",
+ "description": "Enable the Environment Telemetry"
+ },
+ "environmentScreenEnabled": {
+ "label": "Displayed on Screen",
+ "description": "Show the Telemetry Module on the OLED"
+ },
+ "environmentDisplayFahrenheit": {
+ "label": "展示华氏度",
+ "description": "Display temp in Fahrenheit"
+ },
+ "airQualityEnabled": {
+ "label": "Air Quality Enabled",
+ "description": "Enable the Air Quality Telemetry"
+ },
+ "airQualityInterval": {
+ "label": "Air Quality Update Interval",
+ "description": "How often to send Air Quality data over the mesh"
+ },
+ "powerMeasurementEnabled": {
+ "label": "Power Measurement Enabled",
+ "description": "Enable the Power Measurement Telemetry"
+ },
+ "powerUpdateInterval": {
+ "label": "Power Update Interval",
+ "description": "How often to send Power data over the mesh"
+ },
+ "powerScreenEnabled": {
+ "label": "Power Screen Enabled",
+ "description": "Enable the Power Telemetry Screen"
+ }
+ }
}
diff --git a/packages/web/public/i18n/locales/zh-CN/nodes.json b/packages/web/public/i18n/locales/zh-CN/nodes.json
index 85674f90..fa3f29fd 100644
--- a/packages/web/public/i18n/locales/zh-CN/nodes.json
+++ b/packages/web/public/i18n/locales/zh-CN/nodes.json
@@ -1,63 +1,59 @@
{
- "nodeDetail": {
- "publicKeyEnabled": {
- "label": "Public Key Enabled"
- },
- "noPublicKey": {
- "label": "No Public Key"
- },
- "directMessage": {
- "label": "Direct Message {{shortName}}"
- },
- "favorite": {
- "label": "收藏",
- "tooltip": "Add or remove this node from your favorites"
- },
- "notFavorite": {
- "label": "Not a Favorite"
- },
- "error": {
- "label": "错误",
- "text": "An error occurred while fetching node details. Please try again later."
- },
- "status": {
- "heard": "收到",
- "mqtt": "MQTT"
- },
- "elevation": {
- "label": "Elevation"
- },
- "channelUtil": {
- "label": "Channel Util"
- },
- "airtimeUtil": {
- "label": "Airtime Util"
- }
- },
- "nodesTable": {
- "headings": {
- "longName": "长名称",
- "connection": "Connection",
- "lastHeard": "Last Heard",
- "encryption": "Encryption",
- "model": "模型",
- "macAddress": "MAC Address"
- },
- "connectionStatus": {
- "direct": "直频",
- "away": "away",
- "unknown": "-",
- "viaMqtt": ", via MQTT"
- },
- "lastHeardStatus": {
- "never": "Never"
- }
- },
- "actions": {
- "added": "Added",
- "removed": "Removed",
- "ignoreNode": "忽略节点",
- "unignoreNode": "Unignore Node",
- "requestPosition": "Request Position"
- }
+ "nodeDetail": {
+ "publicKeyEnabled": {
+ "label": "Public Key Enabled"
+ },
+ "noPublicKey": {
+ "label": "No Public Key"
+ },
+ "directMessage": {
+ "label": "Direct Message {{shortName}}"
+ },
+ "favorite": {
+ "label": "收藏",
+ "tooltip": "Add or remove this node from your favorites"
+ },
+ "notFavorite": {
+ "label": "Not a Favorite"
+ },
+ "error": {
+ "label": "错误",
+ "text": "An error occurred while fetching node details. Please try again later."
+ },
+ "status": {
+ "heard": "收到",
+ "mqtt": "MQTT"
+ },
+ "elevation": {
+ "label": "Elevation"
+ },
+ "channelUtil": {
+ "label": "Channel Util"
+ },
+ "airtimeUtil": {
+ "label": "Airtime Util"
+ }
+ },
+ "nodesTable": {
+ "headings": {
+ "longName": "长名称",
+ "connection": "Connection",
+ "lastHeard": "Last Heard",
+ "encryption": "Encryption",
+ "model": "模型",
+ "macAddress": "MAC Address"
+ },
+ "connectionStatus": {
+ "direct": "直频",
+ "away": "away",
+ "viaMqtt": ", via MQTT"
+ }
+ },
+ "actions": {
+ "added": "Added",
+ "removed": "Removed",
+ "ignoreNode": "忽略节点",
+ "unignoreNode": "Unignore Node",
+ "requestPosition": "Request Position"
+ }
}
diff --git a/packages/web/public/i18n/locales/zh-CN/ui.json b/packages/web/public/i18n/locales/zh-CN/ui.json
index d50668d3..21652d5b 100644
--- a/packages/web/public/i18n/locales/zh-CN/ui.json
+++ b/packages/web/public/i18n/locales/zh-CN/ui.json
@@ -1,228 +1,229 @@
{
- "navigation": {
- "title": "Navigation",
- "messages": "消息",
- "map": "地图",
- "config": "配置",
- "radioConfig": "Radio Config",
- "moduleConfig": "Module Config",
- "channels": "频道",
- "nodes": "节点"
- },
- "app": {
- "title": "Meshtastic",
- "logo": "Meshtastic Logo"
- },
- "sidebar": {
- "collapseToggle": {
- "button": {
- "open": "Open sidebar",
- "close": "Close sidebar"
- }
- },
- "deviceInfo": {
- "volts": "{{voltage}} volts",
- "firmware": {
- "title": "固件",
- "version": "v{{version}}",
- "buildDate": "Build date: {{date}}"
- },
- "deviceName": {
- "title": "Device Name",
- "changeName": "Change Device Name",
- "placeholder": "Enter device name"
- },
- "editDeviceName": "Edit device name"
- }
- },
- "batteryStatus": {
- "charging": "{{level}}% charging",
- "pluggedIn": "Plugged in",
- "title": "电池"
- },
- "search": {
- "nodes": "Search nodes...",
- "channels": "Search channels...",
- "commandPalette": "Search commands..."
- },
- "toast": {
- "positionRequestSent": {
- "title": "Position request sent."
- },
- "requestingPosition": {
- "title": "Requesting position, please wait..."
- },
- "sendingTraceroute": {
- "title": "Sending Traceroute, please wait..."
- },
- "tracerouteSent": {
- "title": "Traceroute sent."
- },
- "savedChannel": {
- "title": "Saved Channel: {{channelName}}"
- },
- "messages": {
- "pkiEncryption": {
- "title": "Chat is using PKI encryption."
- },
- "pskEncryption": {
- "title": "Chat is using PSK encryption."
- }
- },
- "configSaveError": {
- "title": "Error Saving Config",
- "description": "An error occurred while saving the configuration."
- },
- "validationError": {
- "title": "Config Errors Exist",
- "description": "Please fix the configuration errors before saving."
- },
- "saveSuccess": {
- "title": "Saving Config",
- "description": "The configuration change {{case}} has been saved."
- },
- "favoriteNode": {
- "title": "{{action}} {{nodeName}} {{direction}} favorites.",
- "action": {
- "added": "Added",
- "removed": "Removed",
- "to": "to",
- "from": "from"
- }
- },
- "ignoreNode": {
- "title": "{{action}} {{nodeName}} {{direction}} ignore list",
- "action": {
- "added": "Added",
- "removed": "Removed",
- "to": "to",
- "from": "from"
- }
- }
- },
- "notifications": {
- "copied": {
- "label": "Copied!"
- },
- "copyToClipboard": {
- "label": "Copy to clipboard"
- },
- "hidePassword": {
- "label": "隐藏密码"
- },
- "showPassword": {
- "label": "显示密码"
- },
- "deliveryStatus": {
- "delivered": "Delivered",
- "failed": "Delivery Failed",
- "waiting": "等待中...",
- "unknown": "未知"
- }
- },
- "general": {
- "label": "General"
- },
- "hardware": {
- "label": "硬件"
- },
- "metrics": {
- "label": "Metrics"
- },
- "role": {
- "label": "角色"
- },
- "filter": {
- "label": "筛选器csvfganw"
- },
- "advanced": {
- "label": "高级"
- },
- "clearInput": {
- "label": "Clear input"
- },
- "resetFilters": {
- "label": "Reset Filters"
- },
- "nodeName": {
- "label": "Node name/number",
- "placeholder": "Meshtastic 1234"
- },
- "airtimeUtilization": {
- "label": "Airtime Utilization (%)"
- },
- "batteryLevel": {
- "label": "Battery level (%)",
- "labelText": "Battery level (%): {{value}}"
- },
- "batteryVoltage": {
- "label": "Battery voltage (V)",
- "title": "电压"
- },
- "channelUtilization": {
- "label": "Channel Utilization (%)"
- },
- "hops": {
- "direct": "直频",
- "label": "Number of hops",
- "text": "Number of hops: {{value}}"
- },
- "lastHeard": {
- "label": "最后听到",
- "labelText": "Last heard: {{value}}",
- "nowLabel": "Now"
- },
- "snr": {
- "label": "SNR (db)"
- },
- "favorites": {
- "label": "Favorites"
- },
- "hide": {
- "label": "Hide"
- },
- "showOnly": {
- "label": "Show Only"
- },
- "viaMqtt": {
- "label": "Connected via MQTT"
- },
- "hopsUnknown": {
- "label": "Unknown number of hops"
- },
- "showUnheard": {
- "label": "Never heard"
- },
- "language": {
- "label": "语言",
- "changeLanguage": "Change Language"
- },
- "theme": {
- "dark": "深色",
- "light": "浅色",
- "system": "Automatic",
- "changeTheme": "Change Color Scheme"
- },
- "errorPage": {
- "title": "This is a little embarrassing...",
- "description1": "We are really sorry but an error occurred in the web client that caused it to crash.
This is not supposed to happen, and we are working hard to fix it.",
- "description2": "The best way to prevent this from happening again to you or anyone else is to report the issue to us.",
- "reportInstructions": "Please include the following information in your report:",
- "reportSteps": {
- "step1": "What you were doing when the error occurred",
- "step2": "What you expected to happen",
- "step3": "What actually happened",
- "step4": "Any other relevant information"
- },
- "reportLink": "You can report the issue to our <0>GitHub0>",
- "dashboardLink": "Return to the <0>dashboard0>",
- "detailsSummary": "Error Details",
- "errorMessageLabel": "Error message:",
- "stackTraceLabel": "Stack trace:",
- "fallbackError": "{{error}}"
- },
- "footer": {
- "text": "Powered by <0>▲ Vercel0> | Meshtastic® is a registered trademark of Meshtastic LLC. | <1>Legal Information1>",
- "commitSha": "Commit SHA: {{sha}}"
- }
+ "navigation": {
+ "title": "Navigation",
+ "messages": "消息",
+ "map": "地图",
+ "settings": "设置",
+ "channels": "频道",
+ "radioConfig": "Radio Config",
+ "deviceConfig": "设备配置",
+ "moduleConfig": "Module Config",
+ "nodes": "节点"
+ },
+ "app": {
+ "title": "Meshtastic",
+ "logo": "Meshtastic Logo"
+ },
+ "sidebar": {
+ "collapseToggle": {
+ "button": {
+ "open": "Open sidebar",
+ "close": "Close sidebar"
+ }
+ },
+ "deviceInfo": {
+ "volts": "{{voltage}} volts",
+ "firmware": {
+ "title": "固件",
+ "version": "v{{version}}",
+ "buildDate": "Build date: {{date}}"
+ }
+ }
+ },
+ "batteryStatus": {
+ "charging": "{{level}}% charging",
+ "pluggedIn": "Plugged in",
+ "title": "电池"
+ },
+ "search": {
+ "nodes": "Search nodes...",
+ "channels": "Search channels...",
+ "commandPalette": "Search commands..."
+ },
+ "toast": {
+ "positionRequestSent": {
+ "title": "Position request sent."
+ },
+ "requestingPosition": {
+ "title": "Requesting position, please wait..."
+ },
+ "sendingTraceroute": {
+ "title": "Sending Traceroute, please wait..."
+ },
+ "tracerouteSent": {
+ "title": "Traceroute sent."
+ },
+ "savedChannel": {
+ "title": "Saved Channel: {{channelName}}"
+ },
+ "messages": {
+ "pkiEncryption": {
+ "title": "Chat is using PKI encryption."
+ },
+ "pskEncryption": {
+ "title": "Chat is using PSK encryption."
+ }
+ },
+ "configSaveError": {
+ "title": "Error Saving Config",
+ "description": "An error occurred while saving the configuration."
+ },
+ "validationError": {
+ "title": "Config Errors Exist",
+ "description": "Please fix the configuration errors before saving."
+ },
+ "saveSuccess": {
+ "title": "Saving Config",
+ "description": "The configuration change {{case}} has been saved."
+ },
+ "saveAllSuccess": {
+ "title": "Saved",
+ "description": "All configuration changes have been saved."
+ },
+ "favoriteNode": {
+ "title": "{{action}} {{nodeName}} {{direction}} favorites.",
+ "action": {
+ "added": "Added",
+ "removed": "Removed",
+ "to": "to",
+ "from": "from"
+ }
+ },
+ "ignoreNode": {
+ "title": "{{action}} {{nodeName}} {{direction}} ignore list",
+ "action": {
+ "added": "Added",
+ "removed": "Removed",
+ "to": "to",
+ "from": "from"
+ }
+ }
+ },
+ "notifications": {
+ "copied": {
+ "label": "Copied!"
+ },
+ "copyToClipboard": {
+ "label": "Copy to clipboard"
+ },
+ "hidePassword": {
+ "label": "隐藏密码"
+ },
+ "showPassword": {
+ "label": "显示密码"
+ },
+ "deliveryStatus": {
+ "delivered": "Delivered",
+ "failed": "Delivery Failed",
+ "waiting": "等待中...",
+ "unknown": "未知"
+ }
+ },
+ "general": {
+ "label": "General"
+ },
+ "hardware": {
+ "label": "硬件"
+ },
+ "metrics": {
+ "label": "Metrics"
+ },
+ "role": {
+ "label": "角色"
+ },
+ "filter": {
+ "label": "筛选器csvfganw"
+ },
+ "advanced": {
+ "label": "高级"
+ },
+ "clearInput": {
+ "label": "Clear input"
+ },
+ "resetFilters": {
+ "label": "Reset Filters"
+ },
+ "nodeName": {
+ "label": "Node name/number",
+ "placeholder": "Meshtastic 1234"
+ },
+ "airtimeUtilization": {
+ "label": "Airtime Utilization (%)",
+ "short": "Airtime Util. (%)"
+ },
+ "batteryLevel": {
+ "label": "Battery level (%)",
+ "labelText": "Battery level (%): {{value}}"
+ },
+ "batteryVoltage": {
+ "label": "Battery voltage (V)",
+ "title": "电压"
+ },
+ "channelUtilization": {
+ "label": "Channel Utilization (%)",
+ "short": "Channel Util. (%)"
+ },
+ "hops": {
+ "direct": "直频",
+ "label": "Number of hops",
+ "text": "Number of hops: {{value}}"
+ },
+ "lastHeard": {
+ "label": "最后听到",
+ "labelText": "Last heard: {{value}}",
+ "nowLabel": "Now"
+ },
+ "snr": {
+ "label": "SNR (db)"
+ },
+ "favorites": {
+ "label": "Favorites"
+ },
+ "hide": {
+ "label": "Hide"
+ },
+ "showOnly": {
+ "label": "Show Only"
+ },
+ "viaMqtt": {
+ "label": "Connected via MQTT"
+ },
+ "hopsUnknown": {
+ "label": "Unknown number of hops"
+ },
+ "showUnheard": {
+ "label": "Never heard"
+ },
+ "language": {
+ "label": "语言",
+ "changeLanguage": "Change Language"
+ },
+ "theme": {
+ "dark": "深色",
+ "light": "浅色",
+ "system": "Automatic",
+ "changeTheme": "Change Color Scheme"
+ },
+ "errorPage": {
+ "title": "This is a little embarrassing...",
+ "description1": "We are really sorry but an error occurred in the web client that caused it to crash.
This is not supposed to happen, and we are working hard to fix it.",
+ "description2": "The best way to prevent this from happening again to you or anyone else is to report the issue to us.",
+ "reportInstructions": "Please include the following information in your report:",
+ "reportSteps": {
+ "step1": "What you were doing when the error occurred",
+ "step2": "What you expected to happen",
+ "step3": "What actually happened",
+ "step4": "Any other relevant information"
+ },
+ "reportLink": "You can report the issue to our <0>GitHub0>",
+ "dashboardLink": "Return to the <0>dashboard0>",
+ "detailsSummary": "Error Details",
+ "errorMessageLabel": "Error message:",
+ "stackTraceLabel": "Stack trace:",
+ "fallbackError": "{{error}}"
+ },
+ "footer": {
+ "text": "Powered by <0>▲ Vercel0> | Meshtastic® is a registered trademark of Meshtastic LLC. | <1>Legal Information1>",
+ "commitSha": "Commit SHA: {{sha}}"
+ }
}