feat(protobufs): sync to firmware-current and consume workspace package (#1097)
* feat(protobufs): sync to firmware-current and consume workspace package Sync the vendored .proto sources to firmware-current (v2.7.25+48), regenerate the v2 TS bindings, and consume the workspace @meshtastic/protobufs (workspace:*) in place of the stale JSR 2.7.20 — finishing the monorepo migration (core was already workspace:*). Includes the one required breaking-change fix: admin nodedb_reset changed int32 to bool, so resetNodes() now sends value: true. * build(protobufs): vendor generated bindings for workspace consumers The package is consumed via workspace:* — its exports point at the TS source, which imports ./dist/meshtastic/*_pb.ts — so the generated output must exist at build time. CI builds web/core with no codegen step and the runners have no buf CLI, so the bindings are vendored here (kept gitignored; lint/format skip them). Regenerate with: pnpm --filter @meshtastic/protobufs gen * fix(protobufs): clean script removes the actual generated output dir buf writes bindings to packages/ts/dist, but clean was removing a non-existent root dist — so it never cleaned stale output. Addresses Copilot review feedback. * refactor: move web app packages/web -> apps/web Aligns the web app with the apps/web layout (matching the Vercel web-test Root Directory and the SDK-migration direction). Pure directory move plus root config: pnpm-workspace (adds apps/*), vitest projects, root tsconfig reference, and the pr/release-web/nightly workflows. vercel.json moved with the app. Build + 36 validation tests green. * feat: config fields, module pages, key verification, telemetry capture Incorporates the firmware-current feature work onto the protobuf foundation: new config fields (Display message bubbles; LoRa fem_lna_mode + serial_hal_only; Telemetry air_quality_screen_enabled); 4 new ModuleConfig pages (TrafficManagement, StatusMessage, TAK, RemoteHardware); the manual Key Verification flow (sendKeyVerification + ClientNotificationDialog stages + Verify Key button); live telemetry capture (nodeDB addDeviceMetrics) and admin hardening (toggleMutedNode, graceful PortNum default); plus the sdk-preview ConfigEditor demo and store/config tests. Build + lint + format + 131 tests green. * chore: drop #1062 (unsaved-change-detection) to match upstream revert #1062 was merged to main by accident (per @danditomaso) and is being reverted. Reverse-applied its diff here via 3-way so #1097 stays consistent with where main is headed, while keeping the feature changes layered on the same files (deviceStore/changeRegistry). Build + 131 tests + lint + format green. * fix(nodes): clean up SNR display in node table and map popup SNR is a ratio measured in dB, not dBm (which is absolute power); the node table and map popup both mislabeled it and crammed three values together: '0dBm/50%/50raw'. The trailing '%/raw' pair was the same heuristic ((snr+10)*5) shown twice — once clamped, once not. Render SNR in dB rounded to one decimal, color-coded by a 0-100% signal-quality heuristic (green/yellow/red), with the quality percentage as a muted secondary. Drop the redundant raw value. Adds unit.db; this matches the existing SNRTooltip, which already renders dB.
This commit is contained in:
@@ -0,0 +1,71 @@
|
||||
{
|
||||
"page": {
|
||||
"sectionLabel": "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"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
{
|
||||
"emptyState": "Aucun résultat trouvé.",
|
||||
"page": {
|
||||
"title": "Menu des commandes"
|
||||
},
|
||||
"pinGroup": {
|
||||
"label": "Attacher le groupe de commandes"
|
||||
},
|
||||
"unpinGroup": {
|
||||
"label": "Détacher le groupe de commandes"
|
||||
},
|
||||
"goto": {
|
||||
"label": "Aller à",
|
||||
"command": {
|
||||
"messages": "Messages",
|
||||
"map": "Carte",
|
||||
"config": "Config",
|
||||
"nodes": "Noeuds"
|
||||
}
|
||||
},
|
||||
"manage": {
|
||||
"label": "Gérer",
|
||||
"command": {
|
||||
"switchNode": "Changer de nœud ",
|
||||
"connectNewNode": "Connecter un nouveau noeud"
|
||||
}
|
||||
},
|
||||
"contextual": {
|
||||
"label": "Contextuel",
|
||||
"command": {
|
||||
"qrCode": "Code QR",
|
||||
"qrGenerator": "Générateur",
|
||||
"qrImport": "Importer",
|
||||
"scheduleShutdown": "Planifier l'arrêt",
|
||||
"scheduleReboot": "Redémarrer l'appareil",
|
||||
"resetNodeDb": "Réinitialiser la DB des nœuds",
|
||||
"dfuMode": "Passer en mode DFU",
|
||||
"factoryResetDevice": "Réinitialisation d'usine de l'appareil",
|
||||
"factoryResetConfig": "Réinitialisation d'usine de la config",
|
||||
"disconnect": "Déconnecter"
|
||||
}
|
||||
},
|
||||
"debug": {
|
||||
"label": "Debug",
|
||||
"command": {
|
||||
"reconfigure": "Reconfigurer",
|
||||
"clearAllStoredMessages": "Effacer tous les messages stockés",
|
||||
"clearAllStores": "Clear All Local Storage"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,165 @@
|
||||
{
|
||||
"button": {
|
||||
"apply": "Appliquer",
|
||||
"addConnection": "Add Connection",
|
||||
"saveConnection": "Save connection",
|
||||
"backupKey": "Clé de sauvegarde",
|
||||
"cancel": "Annuler",
|
||||
"connect": "Connecter",
|
||||
"clearMessages": "Effacer les messages",
|
||||
"close": "Fermer",
|
||||
"confirm": "Confirmer",
|
||||
"delete": "Effacer",
|
||||
"dismiss": "Annuler",
|
||||
"download": "Télécharger",
|
||||
"disconnect": "Déconnecter",
|
||||
"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",
|
||||
"retry": "Retry",
|
||||
"save": "Sauvegarder",
|
||||
"setDefault": "Set as default",
|
||||
"unsetDefault": "Unset default",
|
||||
"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",
|
||||
"kilohertz": "kHz",
|
||||
"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"
|
||||
}
|
||||
@@ -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 kHz",
|
||||
"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."
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
{
|
||||
"page": {
|
||||
"title": "Connect to a Meshtastic device",
|
||||
"description": "Add a device connection via HTTP, Bluetooth, or Serial. Your saved connections will be saved in your browser."
|
||||
},
|
||||
"connectionType_ble": "BLE",
|
||||
"connectionType_serial": "Série",
|
||||
"connectionType_network": "Réseau",
|
||||
"deleteConnection": "Delete connection",
|
||||
"areYouSure": "This will remove {{name}}. You canot undo this action.",
|
||||
"moreActions": "More actions",
|
||||
"noConnections": {
|
||||
"title": "No connections yet.",
|
||||
"description": "Create your first connection. It will connect immediately and be saved for later."
|
||||
},
|
||||
"lastConnectedAt": "Last connected: {{date}}",
|
||||
"neverConnected": "Never connected",
|
||||
"toasts": {
|
||||
"connected": "Connecté",
|
||||
"nowConnected": "{{name}} is now connected",
|
||||
"nowDisconnected": "{{name}} are now disconnecte",
|
||||
"disconnected": "Déconnecté",
|
||||
"failed": "Failed to connect",
|
||||
"checkConnetion": "Check your device or settings and try again",
|
||||
"defaultSet": "Default set",
|
||||
"defaultConnection": "Default connection is now {{nameisconnected}}",
|
||||
"deleted": "Deleted",
|
||||
"deletedByName": "{{name}} was removed",
|
||||
"pickConnectionAgain": "Could not connect. You may need to reselect the device/port.",
|
||||
"added": "Connection added",
|
||||
"savedByName": "{{name}} saved.",
|
||||
"savedCantConnect": "The connection was saved but could not connect."
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,428 @@
|
||||
{
|
||||
"page": {
|
||||
"title": "Configuration",
|
||||
"tabBluetooth": "Bluetooth",
|
||||
"tabDevice": "Appareil",
|
||||
"tabDisplay": "Écran",
|
||||
"tabLora": "LoRa",
|
||||
"tabNetwork": "Réseau",
|
||||
"tabPosition": "Position",
|
||||
"tabPower": "Alimentation",
|
||||
"tabSecurity": "Sécurité"
|
||||
},
|
||||
"sidebar": {
|
||||
"label": "Modules"
|
||||
},
|
||||
"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 kHz",
|
||||
"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"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,238 @@
|
||||
{
|
||||
"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"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"addConnection": {
|
||||
"title": "Add connection",
|
||||
"description": "Choose a connection type and fill in the details",
|
||||
"validation": {
|
||||
"requiresWebBluetooth": "Ce type de connexion nécessite <0>Web Bluetooth</0>. Veuillez utiliser un navigateur compatible, comme Chrome ou Edge.<0>",
|
||||
"requiresWebSerial": "Ce type de connexion nécessite <0>Web Serial</0>. 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."
|
||||
},
|
||||
"bluetoothConnection": {
|
||||
"namePlaceholder": "My Bluetooth Node",
|
||||
"supported": {
|
||||
"title": "Web Bluetooth supported"
|
||||
},
|
||||
"notSupported": {
|
||||
"title": "Web Bluetooth not supported",
|
||||
"description": "Your browser or device does not support Web Bluetooth"
|
||||
},
|
||||
"short": "BT: {{deviceName}}",
|
||||
"long": "Bluetooth Device",
|
||||
"device": "Appareil",
|
||||
"selectDevice": "Select device",
|
||||
"selected": "Bluetooth device selected",
|
||||
"notSelected": "No device selected",
|
||||
"helperText": "Uses the Meshtastic Bluetooth service for discovery."
|
||||
},
|
||||
"serialConnection": {
|
||||
"namePlaceholder": "My Serial Node",
|
||||
"helperText": "Selecting a port grants permission so the app can open it to connect.",
|
||||
"supported": {
|
||||
"title": "Web Serial supported"
|
||||
},
|
||||
"notSupported": {
|
||||
"title": "Web Serial not supported",
|
||||
"description": "Your browser or device does not support Web Serial"
|
||||
},
|
||||
"portSelected": {
|
||||
"title": "Serial port selected",
|
||||
"description": "Port permissions granted."
|
||||
},
|
||||
"port": "Port",
|
||||
"selectPort": "Select port",
|
||||
"deviceName": "USB {{vendorId}}:{{productId}}",
|
||||
"notSelected": "No port selected"
|
||||
},
|
||||
"httpConnection": {
|
||||
"namePlaceholder": "My HTTP Node",
|
||||
"inputPlaceholder": "192.168.1.10 or meshtastic.local",
|
||||
"heading": "URL or IP",
|
||||
"useHttps": "Use HTTPS",
|
||||
"invalidUrl": {
|
||||
"title": "Invalid URL",
|
||||
"description": "Please enter a valid HTTP or HTTPS URL."
|
||||
},
|
||||
"connectionTest": {
|
||||
"description": "Test the connetion before saving to verify the device is reachable.",
|
||||
"button": {
|
||||
"loading": "Testing...",
|
||||
"label": "Test connection"
|
||||
},
|
||||
"reachable": "Reachable",
|
||||
"notReachable": "Not reachable",
|
||||
"success": {
|
||||
"title": "Connection test successful",
|
||||
"description": "The device appears to be reachable."
|
||||
},
|
||||
"failure": {
|
||||
"title": "Connection test failed",
|
||||
"description": "Could not reach the device. Check the URL and try again."
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"nodeDetails": {
|
||||
"message": "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."
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +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"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +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"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +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",
|
||||
"viaMqtt": ", via MQTT"
|
||||
}
|
||||
},
|
||||
"actions": {
|
||||
"added": "Ajouté",
|
||||
"removed": "Supprimé",
|
||||
"ignoreNode": "Ignorer le nœud",
|
||||
"unignoreNode": "Ne plus ignorer le nœud",
|
||||
"requestPosition": "Demander la position"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,230 @@
|
||||
{
|
||||
"navigation": {
|
||||
"title": "Navigation",
|
||||
"messages": "Messages",
|
||||
"map": "Carte",
|
||||
"settings": "Réglages",
|
||||
"channels": "Canaux",
|
||||
"radioConfig": "Configuration radio",
|
||||
"deviceConfig": "Configuration de l'appareil",
|
||||
"moduleConfig": "Configuration du module",
|
||||
"manageConnections": "Manage Connections",
|
||||
"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. <br /> 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>GitHub</0>",
|
||||
"connectionsLink": "Return to the <0>connections</0>",
|
||||
"detailsSummary": "Détails de l'erreur",
|
||||
"errorMessageLabel": "Message d'erreur :",
|
||||
"stackTraceLabel": "État de la pile :",
|
||||
"fallbackError": "{{error}}"
|
||||
},
|
||||
"footer": {
|
||||
"text": "Propulsé par <0>▲ Vercel</0> | Meshtastic® est une marque déposée de Meshtastic LLC. | <1>Informations légales</1>",
|
||||
"commitSha": "SHA : {{sha}}"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user