Files
zjs81 760d8e1db3 Update localization files and improve path map UI
- Added new localization strings for Swedish, Ukrainian, and Chinese languages in app_sv.arb, app_uk.arb, and app_zh.arb respectively.
- Enhanced the path map UI in channel_message_path_screen.dart for better readability and interaction.
- Improved message retry logic in message_retry_service.dart to prevent double-pumping of queues.
- Bumped version number in pubspec.yaml to 9.5.0+13.
- Cleared untranslated strings in untranslated.json to reflect current localization status.
2026-06-13 01:58:42 -07:00

2679 lines
110 KiB
Plaintext
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"channels_channelDeleteFailed": "Échec de la suppression du canal \"{name}\"",
"@channels_channelDeleteFailed": {
"placeholders": {
"name": {
"type": "String"
}
}
},
"@@locale": "fr",
"appTitle": "MeshCore Open",
"nav_contacts": "Contacts",
"nav_channels": "Canaux",
"nav_map": "Carte",
"common_cancel": "Annuler",
"common_connect": "Connecter",
"common_unknownDevice": "Appareil inconnu",
"common_save": "Enregistrer",
"common_delete": "Supprimer",
"common_close": "Fermer",
"common_edit": "Modifier",
"common_add": "Ajouter",
"common_settings": "Paramètres",
"common_disconnect": "Déconnecter",
"common_connected": "Connecté",
"common_disconnected": "Déconnecté",
"common_create": "Créer",
"common_continue": "Continuer",
"common_share": "Partager",
"common_copy": "Copier",
"common_retry": "Réessayer",
"common_hide": "Masquer",
"common_remove": "Supprimer",
"common_enable": "Activer",
"common_disable": "Désactiver",
"common_autoRefresh": "Actualisation automatique",
"common_interval": "Intervalle",
"common_reboot": "Redémarrer",
"common_loading": "Chargement...",
"common_notAvailable": "—",
"common_voltageValue": "{volts} V",
"@common_voltageValue": {
"placeholders": {
"volts": {
"type": "String"
}
}
},
"common_percentValue": "{percent}%",
"@common_percentValue": {
"placeholders": {
"percent": {
"type": "int"
}
}
},
"scanner_title": "MeshCore Open",
"scanner_scanning": "Recherche de périphériques...",
"scanner_connecting": "Connexion en cours...",
"scanner_disconnecting": "Déconnexion...",
"scanner_notConnected": "Non connecté",
"scanner_connectedTo": "Connecté à {deviceName}",
"@scanner_connectedTo": {
"placeholders": {
"deviceName": {
"type": "String"
}
}
},
"scanner_searchingDevices": "Recherche des appareils MeshCore...",
"scanner_tapToScan": "Appuyez sur Scanner pour trouver les appareils MeshCore",
"scanner_connectionFailed": "Échec de la connexion : {error}",
"@scanner_connectionFailed": {
"placeholders": {
"error": {
"type": "String"
}
}
},
"scanner_stop": "Arrêter",
"scanner_scan": "Scanner",
"device_quickSwitch": "Basculement rapide",
"device_meshcore": "MeshCore",
"settings_title": "Paramètres",
"settings_deviceInfo": "Informations du périphérique",
"settings_appSettings": "Paramètres de l'application",
"settings_appSettingsSubtitle": "Notifications, messagerie et préférences de carte",
"settings_nodeSettings": "Paramètres du nœud",
"settings_nodeName": "Nom du nœud",
"settings_nodeNameNotSet": "Non défini",
"settings_nodeNameHint": "Entrer le nom du nœud",
"settings_nodeNameUpdated": "Nom mis à jour",
"settings_radioSettings": "Paramètres Radio",
"settings_radioSettingsSubtitle": "Fréquence, puissance, facteur d'espacement",
"settings_radioSettingsUpdated": "Paramètres radio mis à jour",
"settings_location": "Emplacement",
"settings_locationSubtitle": "Coordonnées GPS",
"settings_locationUpdated": "Emplacement mis à jour",
"settings_locationBothRequired": "Entrez la latitude et la longitude.",
"settings_locationInvalid": "Latitude ou longitude invalide.",
"settings_latitude": "Latitude",
"settings_longitude": "Longitude",
"settings_privacyMode": "Mode de confidentialité",
"settings_privacyModeSubtitle": "Masquer le nom et la localisation dans les annonces",
"settings_privacyModeToggle": "Activez le mode confidentialité pour masquer votre nom et votre localisation dans les annonces.",
"settings_privacyModeEnabled": "Mode de confidentialité activé",
"settings_privacyModeDisabled": "Mode de confidentialité désactivé",
"settings_actions": "Actions",
"settings_deleteAllPaths": "Supprimer tous les chemins",
"settings_deleteAllPathsSubtitle": "Effacer toutes les données de chemin des contacts.",
"settings_sendAdvertisement": "S'annoncer",
"settings_sendAdvertisementSubtitle": "Diffuser la présence maintenant",
"settings_advertisementSent": "Annonce envoyée",
"settings_syncTime": "Synchroniser l'heure",
"settings_syncTimeSubtitle": "Régler l'heure de l'appareil sur celle du téléphone.",
"settings_timeSynchronized": "Heure synchronisée",
"settings_refreshContacts": "Actualiser les contacts",
"settings_refreshContactsSubtitle": "Recharger la liste des contacts depuis l'appareil",
"settings_rebootDevice": "Redémarrer l'appareil",
"settings_rebootDeviceSubtitle": "Redémarrer l'appareil MeshCore",
"settings_rebootDeviceConfirm": "Êtes-vous sûr de vouloir redémarrer l'appareil ? Vous serez déconnecté.",
"settings_debug": "Débogage",
"settings_bleDebugLog": "Journal de débogage du compagnon",
"settings_bleDebugLogSubtitle": "Commandes, réponses et données brutes BLE/TCP/USB",
"settings_appDebugLog": "Journal de débogage de l'application",
"settings_appDebugLogSubtitle": "Messages de débogage de l'application",
"settings_about": "À propos",
"settings_aboutVersion": "MeshCore Open v{version}",
"@settings_aboutVersion": {
"placeholders": {
"version": {
"type": "String"
}
}
},
"settings_aboutLegalese": "Projet open source MeshCore 2026",
"settings_aboutDescription": "Client Flutter open source pour les appareils de réseau maillé LoRa MeshCore.",
"settings_infoName": "Nom",
"settings_infoId": "ID",
"settings_infoStatus": "État",
"settings_infoBattery": "Batterie",
"settings_infoPublicKey": "Clé publique",
"settings_infoContactsCount": "Nombre de contacts",
"settings_infoChannelCount": "Nombre de canaux",
"settings_presets": "Préréglages",
"settings_frequency": "Fréquence (MHz)",
"settings_frequencyHelper": "300,0 - 2 500,0",
"settings_frequencyInvalid": "Fréquence invalide (300-2500 MHz)",
"settings_bandwidth": "Bande passante",
"settings_spreadingFactor": "Facteur d'étalement (SF)",
"settings_codingRate": "Taux de codage (CR)",
"settings_txPower": "Puissance TX (dBm)",
"settings_txPowerHelper": "0 - 22",
"settings_txPowerInvalid": "Puissance TX invalide (0-22 dBm)",
"settings_error": "Erreur : {message}",
"@settings_error": {
"placeholders": {
"message": {
"type": "String"
}
}
},
"appSettings_title": "Paramètres de l'application",
"appSettings_appearance": "Apparence",
"appSettings_theme": "Thème",
"appSettings_themeSystem": "Défaut système",
"appSettings_themeLight": "Clair",
"appSettings_themeDark": "Sombre",
"appSettings_language": "Langue",
"appSettings_languageSystem": "Par défaut du système",
"appSettings_languageEn": "Anglais",
"appSettings_languageFr": "Français",
"appSettings_languageEs": "Espagnol",
"appSettings_languageDe": "Allemand",
"appSettings_languagePl": "Polonais",
"appSettings_languageSl": "Slovène",
"appSettings_languagePt": "Portugais",
"appSettings_languageIt": "Italien",
"appSettings_languageZh": "Chinois",
"appSettings_languageSv": "Suédois",
"appSettings_languageNl": "Néerlandais",
"appSettings_languageSk": "Slovaque",
"appSettings_languageBg": "Bulgare",
"appSettings_notifications": "Notifications",
"appSettings_enableNotifications": "Activer les notifications",
"appSettings_enableNotificationsSubtitle": "Recevoir des notifications pour les messages et les annonces",
"appSettings_notificationPermissionDenied": "Permission de notification refusée",
"appSettings_notificationsEnabled": "Notifications activées",
"appSettings_notificationsDisabled": "Notifications désactivées",
"appSettings_messageNotifications": "Notifications de messages",
"appSettings_messageNotificationsSubtitle": "Afficher une notification lors de la réception de nouveaux messages",
"appSettings_channelMessageNotifications": "Notifications des messages de canal",
"appSettings_channelMessageNotificationsSubtitle": "Afficher une notification lors de la réception des messages de canal",
"appSettings_advertisementNotifications": "Notifications d'annonces",
"appSettings_advertisementNotificationsSubtitle": "Afficher une notification lors de la découverte de nouveaux nœuds",
"appSettings_messaging": "Messagerie",
"appSettings_clearPathOnMaxRetry": "Effacer le chemin après le nombre maximal de tentatives",
"appSettings_clearPathOnMaxRetrySubtitle": "Réinitialiser le chemin de contact après 5 tentatives d'envoi infructueuses",
"appSettings_pathsWillBeCleared": "Les chemins seront effacés après 5 échecs.",
"appSettings_pathsWillNotBeCleared": "Les chemins ne seront pas effacés automatiquement.",
"appSettings_autoRouteRotation": "Rotation automatique du routage",
"appSettings_autoRouteRotationSubtitle": "Alterner entre les meilleurs chemins et le mode flood",
"appSettings_autoRouteRotationEnabled": "Rotation automatique du routage activée",
"appSettings_autoRouteRotationDisabled": "Rotation automatique du routage désactivée",
"appSettings_battery": "Batterie",
"appSettings_batteryChemistry": "Chimie de la batterie",
"appSettings_batteryChemistryPerDevice": "Définir par appareil ({deviceName})",
"@appSettings_batteryChemistryPerDevice": {
"placeholders": {
"deviceName": {
"type": "String"
}
}
},
"appSettings_batteryChemistryConnectFirst": "Connectez un appareil pour choisir",
"appSettings_batteryNmc": "18650 NMC (3,0-4,2V)",
"appSettings_batteryLifepo4": "LiFePO4 (2,6-3,65V)",
"appSettings_batteryLipo": "LiPo (3,0-4,2V)",
"appSettings_mapDisplay": "Affichage de la carte",
"appSettings_showRepeaters": "Afficher les répéteurs",
"appSettings_showRepeatersSubtitle": "Afficher les nœuds répéteurs sur la carte",
"appSettings_showChatNodes": "Afficher les nœuds de discussion",
"appSettings_showChatNodesSubtitle": "Afficher les nœuds de chat sur la carte",
"appSettings_showOtherNodes": "Afficher d'autres nœuds",
"appSettings_showOtherNodesSubtitle": "Afficher d'autres types de nœuds sur la carte",
"appSettings_timeFilter": "Filtre du temps",
"appSettings_timeFilterShowAll": "Afficher tous les nœuds",
"appSettings_timeFilterShowLast": "Afficher les nœuds des {hours} dernières heures",
"@appSettings_timeFilterShowLast": {
"placeholders": {
"hours": {
"type": "int"
}
}
},
"appSettings_mapTimeFilter": "Filtre temporel de la carte",
"appSettings_showNodesDiscoveredWithin": "Afficher les nœuds découverts au cours de :",
"appSettings_allTime": "Tout le temps",
"appSettings_lastHour": "Dernière heure",
"appSettings_last6Hours": "Dernières 6 heures",
"appSettings_last24Hours": "Dernières 24 heures",
"appSettings_lastWeek": "La semaine dernière",
"appSettings_offlineMapCache": "Cache de carte hors ligne",
"appSettings_noAreaSelected": "Aucune zone sélectionnée",
"appSettings_areaSelectedZoom": "Zone sélectionnée (zoom {minZoom}-{maxZoom})",
"@appSettings_areaSelectedZoom": {
"placeholders": {
"minZoom": {
"type": "int"
},
"maxZoom": {
"type": "int"
}
}
},
"appSettings_debugCard": "Débogage",
"appSettings_appDebugLogging": "Journalisation des débogages de l'application",
"appSettings_appDebugLoggingSubtitle": "Journaliser les messages de débogage de l'application pour le dépannage.",
"appSettings_appDebugLoggingEnabled": "Journalisation de débogage de l'application activée",
"appSettings_appDebugLoggingDisabled": "Journalisation de débogage de l'application désactivée",
"contacts_title": "Contacts",
"contacts_noContacts": "Aucun contact trouvé.",
"contacts_contactsWillAppear": "Les contacts apparaîtront lorsque les appareils diffuseront leur annonce.",
"contacts_searchContacts": "Rechercher {number}{str} contacts...",
"@contacts_searchContacts": {
"placeholders": {
"number": {
"type": "int"
},
"str": {
"type": "String"
}
}
},
"contacts_noUnreadContacts": "Aucun contact non lu",
"contacts_noContactsFound": "Aucun contact ou groupe trouvé.",
"contacts_deleteContact": "Supprimer le contact",
"contacts_removeConfirm": "Supprimer {contactName} des contacts ?",
"@contacts_removeConfirm": {
"placeholders": {
"contactName": {
"type": "String"
}
}
},
"contacts_manageRepeater": "Gérer le répéteur",
"contacts_roomLogin": "Connexion au room server",
"contacts_openChat": "Ouvrir le chat",
"contacts_editGroup": "Modifier le groupe",
"contacts_deleteGroup": "Supprimer le groupe",
"contacts_deleteGroupConfirm": "Supprimer le groupe \"{groupName}\" ?",
"@contacts_deleteGroupConfirm": {
"placeholders": {
"groupName": {
"type": "String"
}
}
},
"contacts_newGroup": "Nouveau groupe",
"contacts_groupName": "Nom du groupe",
"contacts_groupNameRequired": "Le nom du groupe est obligatoire.",
"contacts_groupNameReserved": "Ce nom de groupe est réservé",
"contacts_groupAlreadyExists": "Le groupe \"{name}\" existe déjà.",
"@contacts_groupAlreadyExists": {
"placeholders": {
"name": {
"type": "String"
}
}
},
"contacts_filterContacts": "Filtrer les contacts...",
"contacts_noContactsMatchFilter": "Aucun contact ne correspond à votre filtre.",
"contacts_noMembers": "Aucun membre",
"contacts_lastSeenNow": "À l'instant",
"contacts_lastSeenMinsAgo": "~ {minutes} min",
"@contacts_lastSeenMinsAgo": {
"placeholders": {
"minutes": {
"type": "int"
}
}
},
"contacts_lastSeenHourAgo": "~ 1 heure",
"contacts_lastSeenHoursAgo": "~ {hours} heures",
"@contacts_lastSeenHoursAgo": {
"placeholders": {
"hours": {
"type": "int"
}
}
},
"contacts_lastSeenDayAgo": "~ 1 jour",
"contacts_lastSeenDaysAgo": "~ {days} jours",
"@contacts_lastSeenDaysAgo": {
"placeholders": {
"days": {
"type": "int"
}
}
},
"channels_title": "Canaux",
"channels_noChannelsConfigured": "Aucun canal configuré",
"channels_addPublicChannel": "Ajouter un canal public",
"channels_searchChannels": "Rechercher des canaux...",
"channels_noChannelsFound": "Aucun canal trouvé",
"channels_channelIndex": "Canal {index}",
"@channels_channelIndex": {
"placeholders": {
"index": {
"type": "int"
}
}
},
"channels_public": "Public",
"channels_private": "Privé",
"channels_editChannel": "Modifier le canal",
"channels_muteChannel": "Désactiver les notifications du canal",
"channels_unmuteChannel": "Réactiver les notifications du canal",
"channels_deleteChannel": "Supprimer le canal",
"channels_deleteChannelConfirm": "Supprimer \"{name}\" ? Cette action est irréversible.",
"@channels_deleteChannelConfirm": {
"placeholders": {
"name": {
"type": "String"
}
}
},
"channels_channelDeleted": "Canal \"{name}\" supprimé",
"@channels_channelDeleted": {
"placeholders": {
"name": {
"type": "String"
}
}
},
"channels_addChannel": "Ajouter un canal",
"channels_channelIndexLabel": "Index du canal",
"channels_channelName": "Nom du canal",
"channels_usePublicChannel": "Utiliser le canal public",
"channels_standardPublicPsk": "PSK public standard",
"channels_pskHex": "PSK (Hexadécimal)",
"channels_generateRandomPsk": "Générer une PSK aléatoire",
"channels_enterChannelName": "Veuillez entrer un nom de canal",
"channels_pskMustBe32Hex": "La PSK doit contenir 32 caractères hexadécimaux.",
"channels_channelAdded": "Le canal \"{name}\" a été ajouté",
"@channels_channelAdded": {
"placeholders": {
"name": {
"type": "String"
}
}
},
"channels_editChannelTitle": "Modifier le Canal {index}",
"@channels_editChannelTitle": {
"placeholders": {
"index": {
"type": "int"
}
}
},
"channels_smazCompression": "Compression SMAZ",
"channels_cyr2latCompression": "Compression Cyr2Lat",
"channels_cyr2latCompressionDscr": "Remplace certains caractères cyrilliques par des caractères latins lors de l'envoi.",
"channels_cyr2latSettingsHeading": "Paramètres Cyr2Lat",
"channels_cyr2latSettingsSubheading": "Liste des remplacements",
"channels_cyr2latSettingsDscr": "Modifier la configuration JSON des remplacements de caractères",
"channels_cyr2latSettingsDialogHint": "Tableau de remplacement JSON",
"channels_cyr2latSettingsDialogWrongJSON": "JSON incorrect : {error}",
"@channels_cyr2latSettingsDialogWrongJSON": {
"placeholders": {
"error": {}
}
},
"settings_cyr2latProfileAdd": "Ajouter un profil Cyr2Lat",
"settings_cyr2latProfileName": "Nom du profil",
"settings_cyr2latProfileNameEmpty": "Le nom du profil ne peut pas être vide",
"settings_cyr2latProfileAdded": "Profil ajouté avec succès",
"settings_cyr2latProfileUpdated": "Profil mis à jour avec succès",
"settings_cyr2latProfileEdit": "Modifier le profil Cyr2Lat",
"settings_cyr2latProfileDelete": "Supprimer le profil Cyr2Lat",
"settings_cyr2latProfileDeleted": "Profil supprimé avec succès",
"settings_cyr2latProfileDeleteDscr": "Êtes-vous sûr de vouloir supprimer le profil \"{name}\" ?",
"@settings_cyr2latProfileDeleteDscr": {
"placeholders": {
"name": {
"type": "String"
}
}
},
"channels_channelUpdated": "Le canal \"{name}\" a été mis à jour",
"@channels_channelUpdated": {
"placeholders": {
"name": {
"type": "String"
}
}
},
"channels_publicChannelAdded": "Canal public ajouté",
"channels_sortBy": "Trier par",
"channels_sortManual": "Manuel",
"channels_sortAZ": "A à Z",
"channels_sortLatestMessages": "Derniers messages",
"channels_sortUnread": "Non lus",
"chat_noMessages": "Aucun message pour le moment",
"chat_sendMessageToStart": "Envoyer un message pour commencer",
"chat_originalMessageNotFound": "Message d'origine non trouvé",
"chat_replyingTo": "Répondre à {name}",
"@chat_replyingTo": {
"placeholders": {
"name": {
"type": "String"
}
}
},
"chat_replyTo": "Répondre à {name}",
"@chat_replyTo": {
"placeholders": {
"name": {
"type": "String"
}
}
},
"chat_location": "Emplacement",
"chat_sendMessageTo": "Envoyer un message à {contactName}",
"@chat_sendMessageTo": {
"placeholders": {
"contactName": {
"type": "String"
}
}
},
"chat_typeMessage": "Saisir un message...",
"chat_messageTooLong": "Message trop long (max {maxBytes} octets).",
"@chat_messageTooLong": {
"placeholders": {
"maxBytes": {
"type": "int"
}
}
},
"chat_messageCopied": "Message copié",
"chat_messageDeleted": "Message supprimé",
"chat_retryingMessage": "Nouvelle tentative d'envoi du message",
"chat_retryCount": "Essai {current}/{max}",
"@chat_retryCount": {
"placeholders": {
"current": {
"type": "int"
},
"max": {
"type": "int"
}
}
},
"chat_sendGif": "Envoyer un GIF",
"chat_reply": "Répondre",
"chat_addReaction": "Ajouter une réaction",
"chat_me": "Moi",
"emojiCategorySmileys": "Émojis",
"emojiCategoryGestures": "Gestes",
"emojiCategoryHearts": "Cœurs",
"emojiCategoryObjects": "Objets",
"gifPicker_title": "Choisir un GIF",
"gifPicker_searchHint": "Rechercher des GIF...",
"gifPicker_poweredBy": "Propulsé par GIPHY",
"gifPicker_noGifsFound": "Aucun GIF trouvé",
"gifPicker_failedLoad": "Impossible de charger les GIFs",
"gifPicker_failedSearch": "Recherche de GIFs échouée",
"gifPicker_noInternet": "Aucune connexion internet",
"debugLog_appTitle": "Journal de débogage de l'application",
"debugLog_bleTitle": "Journal de débogage BLE",
"debugLog_copyLog": "Copier le journal",
"debugLog_clearLog": "Effacer le journal",
"debugLog_copied": "Journal de débogage copié",
"debugLog_bleCopied": "Journal BLE copié",
"debugLog_noEntries": "Aucun journal de débogage pour le moment.",
"debugLog_enableInSettings": "Activer le débogage de l'application dans les paramètres",
"debugLog_frames": "Cadres",
"debugLog_rawLogRx": "Enregistrement brut - RX",
"debugLog_noBleActivity": "Pas d'activité BLE enregistrée pour le moment.",
"debugFrame_length": "Longueur du cadre : {count} octets",
"@debugFrame_length": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"debugFrame_command": "Commande : 0x{value}",
"@debugFrame_command": {
"placeholders": {
"value": {
"type": "String"
}
}
},
"debugFrame_textMessageHeader": "Message :",
"debugFrame_destinationPubKey": "- Clé publique de destination : {pubKey}",
"@debugFrame_destinationPubKey": {
"placeholders": {
"pubKey": {
"type": "String"
}
}
},
"debugFrame_timestamp": "- Timestamp : {timestamp}",
"@debugFrame_timestamp": {
"placeholders": {
"timestamp": {
"type": "int"
}
}
},
"debugFrame_flags": "- Indicateurs : 0x{value}",
"@debugFrame_flags": {
"placeholders": {
"value": {
"type": "String"
}
}
},
"debugFrame_textType": "- Type de texte : {type} ({label})",
"@debugFrame_textType": {
"placeholders": {
"type": {
"type": "int"
},
"label": {
"type": "String"
}
}
},
"debugFrame_textTypeCli": "CLI",
"debugFrame_textTypePlain": "Texte brut",
"debugFrame_text": "- Texte : \"{text}\"",
"@debugFrame_text": {
"placeholders": {
"text": {
"type": "String"
}
}
},
"debugFrame_hexDump": "Dump hexadécimal :",
"chat_pathManagement": "Gestion des chemins",
"chat_routingMode": "Mode de routage",
"chat_autoUseSavedPath": "Auto (utiliser le chemin sauvegardé)",
"chat_forceFloodMode": "Mode tout le réseau forcé",
"chat_recentAckPaths": "Chemins ACK récents (touchez pour utiliser) :",
"chat_pathHistoryFull": "L'historique du chemin est plein. Supprimez les entrées pour en ajouter de nouvelles.",
"chat_hopSingular": "saut",
"chat_hopPlural": "sauts",
"chat_hopsCount": "{count} {count, plural, =1{saut} other{sauts}}",
"@chat_hopsCount": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"chat_successes": "Succès",
"chat_removePath": "Supprimer le chemin",
"chat_noPathHistoryYet": "Aucun historique de parcours disponible.\nEnvoyez un message pour découvrir les parcours.",
"chat_pathActions": "Actions du chemin :",
"chat_setCustomPath": "Définir un chemin personnalisé",
"chat_setCustomPathSubtitle": "Spécifier manuellement le chemin de routage",
"chat_clearPath": "Effacer le chemin",
"chat_clearPathSubtitle": "Forcer la redécouverte lors du prochain envoi",
"chat_pathCleared": "Chemin effacé. Le prochain message redécouvrira la route.",
"chat_floodModeSubtitle": "Désactive l'apprentissage du chemin (à éviter). Utilisez le sélecteur de routage de la barre d'application pour revenir ensuite au mode auto.",
"chat_floodModeEnabled": "Le mode flood est activé. Utilisez l'icône de routage de la barre d'outils pour changer cela.",
"chat_fullPath": "Chemin complet",
"chat_pathDetailsNotAvailable": "Les détails du chemin ne sont pas encore disponibles. Essayez d'envoyer un message pour rafraîchir.",
"chat_pathSetHops": "Chemin défini : {hopCount} {hopCount, plural, =1{hop} other{hops}} - {status}",
"@chat_pathSetHops": {
"placeholders": {
"hopCount": {
"type": "int"
},
"status": {
"type": "String"
}
}
},
"chat_pathSavedLocally": "Sauvegardé localement. Connectez-vous pour synchroniser.",
"chat_pathDeviceConfirmed": "Appareil confirmé.",
"chat_pathDeviceNotConfirmed": "L'appareil n'a pas encore été confirmé.",
"chat_type": "Type",
"chat_path": "Chemin",
"chat_publicKey": "Clé publique",
"chat_compressOutgoingMessages": "Compresser les messages sortants",
"chat_floodForced": "Flood (forcé)",
"chat_directForced": "Direct (forcé)",
"chat_hopsForced": "{count} sauts (forcés)",
"@chat_hopsForced": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"chat_floodAuto": "Flood (auto)",
"chat_direct": "Direct",
"chat_poiShared": "Point d'intérêt partagé",
"chat_unread": "Non lu : {count}",
"@chat_unread": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"chat_openLink": "Ouvrir le lien ?",
"chat_openLinkConfirmation": "Voulez-vous ouvrir ce lien dans votre navigateur ?",
"chat_open": "Ouvrir",
"chat_couldNotOpenLink": "Impossible d'ouvrir le lien : {url}",
"@chat_couldNotOpenLink": {
"placeholders": {
"url": {
"type": "String"
}
}
},
"chat_invalidLink": "Format de lien invalide",
"map_title": "Carte des nœuds",
"map_noNodesWithLocation": "Aucun nœud avec des données de localisation",
"map_nodesNeedGps": "Les nœuds doivent partager leurs coordonnées GPS\npour apparaître sur la carte.",
"map_nodesCount": "Nœuds : {count}",
"@map_nodesCount": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"map_pinsCount": "Épingles : {count}",
"@map_pinsCount": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"map_chat": "Conversation",
"map_repeater": "Répéteur",
"map_room": "Room server",
"map_sensor": "Capteur",
"map_pinDm": "Épingle (DM)",
"map_pinPrivate": "Épingle (privé)",
"map_pinPublic": "Épingle (public)",
"map_lastSeen": "Vu pour la dernière fois",
"map_disconnectConfirm": "Êtes-vous sûr de vouloir vous déconnecter de cet appareil ?",
"map_from": "Depuis",
"map_source": "Source",
"map_flags": "Drapeaux",
"map_shareMarkerHere": "Partager le marqueur ici",
"map_pinLabel": "Libellé de l'épingle",
"map_label": "Étiquette",
"map_pointOfInterest": "Point d'intérêt",
"map_sendToContact": "Envoyer au contact",
"map_sendToChannel": "Envoyer sur le canal",
"map_noChannelsAvailable": "Aucun canal disponible",
"map_publicLocationShare": "Partage public de localisation",
"map_publicLocationShareConfirm": "Vous êtes sur le point de partager une localisation dans {channelLabel}. Ce canal est public et toute personne disposant de la PSK peut la voir.",
"@map_publicLocationShareConfirm": {
"placeholders": {
"channelLabel": {
"type": "String"
}
}
},
"map_connectToShareMarkers": "Connectez-vous à un appareil pour partager des marqueurs",
"map_filterNodes": "Filtrer les nœuds",
"map_nodeTypes": "Types de nœuds",
"map_chatNodes": "Nœuds de chat",
"map_repeaters": "Répéteurs",
"map_otherNodes": "Autres nœuds",
"map_keyPrefix": "Préfixe de clé",
"map_filterByKeyPrefix": "Filtrer par préfixe de clé",
"map_publicKeyPrefix": "Préfixe de clé publique",
"map_markers": "Marqueurs",
"map_showSharedMarkers": "Afficher les marqueurs partagés",
"map_lastSeenTime": "Vu pour la dernière fois",
"map_sharedPin": "Épingle partagée",
"map_joinRoom": "Rejoindre le room server",
"map_manageRepeater": "Gérer le répéteur",
"mapCache_title": "Cache de carte hors ligne",
"mapCache_selectAreaFirst": "Sélectionnez d'abord une zone à mettre en cache",
"mapCache_noTilesToDownload": "Aucune tuile à télécharger pour cette zone.",
"mapCache_downloadTilesTitle": "Télécharger les tuiles",
"mapCache_downloadTilesPrompt": "Télécharger {count} tuiles pour une utilisation hors ligne ?",
"@mapCache_downloadTilesPrompt": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"mapCache_downloadAction": "Télécharger",
"mapCache_cachedTiles": "{count} tuiles mises en cache",
"@mapCache_cachedTiles": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"mapCache_cachedTilesWithFailed": "{downloaded} tuiles mises en cache ({failed} en échec)",
"@mapCache_cachedTilesWithFailed": {
"placeholders": {
"downloaded": {
"type": "int"
},
"failed": {
"type": "int"
}
}
},
"mapCache_clearOfflineCacheTitle": "Effacer le cache hors ligne",
"mapCache_clearOfflineCachePrompt": "Supprimer toutes les tuiles de carte mises en cache ?",
"mapCache_offlineCacheCleared": "Le cache hors ligne a été effacé.",
"mapCache_noAreaSelected": "Aucune zone sélectionnée",
"mapCache_cacheArea": "Zone à mettre en cache",
"mapCache_useCurrentView": "Utiliser la vue actuelle",
"mapCache_zoomRange": "Plage de zoom",
"mapCache_estimatedTiles": "Estimation des tuiles : {count}",
"@mapCache_estimatedTiles": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"mapCache_downloadedTiles": "{completed} / {total} téléchargées",
"@mapCache_downloadedTiles": {
"placeholders": {
"completed": {
"type": "int"
},
"total": {
"type": "int"
}
}
},
"mapCache_downloadTilesButton": "Télécharger les tuiles",
"mapCache_clearCacheButton": "Vider le cache",
"mapCache_failedDownloads": "Téléchargements échoués : {count}",
"@mapCache_failedDownloads": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"mapCache_boundsLabel": "N {north}, S {south}, E {east}, O {west}",
"@mapCache_boundsLabel": {
"placeholders": {
"north": {
"type": "String"
},
"south": {
"type": "String"
},
"east": {
"type": "String"
},
"west": {
"type": "String"
}
}
},
"time_justNow": "Maintenant",
"time_minutesAgo": "{minutes} minutes auparavant",
"@time_minutesAgo": {
"placeholders": {
"minutes": {
"type": "int"
}
}
},
"time_hoursAgo": "{hours}h auparavant",
"@time_hoursAgo": {
"placeholders": {
"hours": {
"type": "int"
}
}
},
"time_daysAgo": "{days} jours avant",
"@time_daysAgo": {
"placeholders": {
"days": {
"type": "int"
}
}
},
"time_hour": "heure",
"time_hours": "heures",
"time_day": "jour",
"time_days": "jours",
"time_week": "semaine",
"time_weeks": "semaines",
"time_month": "mois",
"time_months": "mois",
"time_minutes": "minutes",
"time_allTime": "Tout le temps",
"dialog_disconnect": "Déconnecter",
"dialog_disconnectConfirm": "Êtes-vous sûr de vouloir vous déconnecter de cet appareil ?",
"login_repeaterLogin": "Connexion au répéteur",
"login_roomLogin": "Connexion au room server",
"login_password": "Mot de passe",
"login_enterPassword": "Entrez votre mot de passe",
"login_savePassword": "Sauvegarder le mot de passe",
"login_savePasswordSubtitle": "Le mot de passe sera stocké en toute sécurité sur cet appareil.",
"login_repeaterDescription": "Entrez le mot de passe du répéteur pour accéder aux paramètres et à l'état.",
"login_roomDescription": "Entrez le mot de passe de la pièce pour accéder aux paramètres et à l'état.",
"login_routing": "Redirection",
"login_routingMode": "Mode de routage",
"login_autoUseSavedPath": "Auto (utiliser le chemin sauvegardé)",
"login_forceFloodMode": "Mode tout le réseau forcé",
"login_managePaths": "Gérer les chemins",
"login_login": "Connexion",
"login_attempt": "Essayer {current}/{max}",
"@login_attempt": {
"placeholders": {
"current": {
"type": "int"
},
"max": {
"type": "int"
}
}
},
"login_failed": "Connexion échouée : {error}",
"@login_failed": {
"placeholders": {
"error": {
"type": "String"
}
}
},
"login_failedMessage": "Connexion échouée. Soit le mot de passe est incorrect, soit le relais est injoignable.",
"common_reload": "Recharger",
"common_clear": "Effacer",
"path_currentPath": "Chemin actuel : {path}",
"@path_currentPath": {
"placeholders": {
"path": {
"type": "String"
}
}
},
"path_usingHopsPath": "Utiliser un chemin de {count} {count, plural, =1{saut} other{sauts}}",
"@path_usingHopsPath": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"path_enterCustomPath": "Entrer un chemin personnalisé",
"path_currentPathLabel": "Chemin actuel",
"path_hexPrefixInstructions": "Entrez des préfixes hexadécimaux de 2 caractères pour chaque saut, séparés par des virgules.",
"path_hexPrefixExample": "Exemple : A1,F2,3C (chaque nœud utilise le premier octet de sa clé publique).",
"path_labelHexPrefixes": "Préfixes hexadécimaux",
"path_helperMaxHops": "Max. 64 sauts. Chaque préfixe fait 2 caractères hexadécimaux (1 octet).",
"path_selectFromContacts": "Sélectionner parmi les contacts :",
"path_noRepeatersFound": "Aucun répéteur ou room server trouvé.",
"path_customPathsRequire": "Les chemins personnalisés nécessitent des sauts intermédiaires capables de transmettre des messages.",
"path_invalidHexPrefixes": "Préfixes hexadécimaux invalides : {prefixes}",
"@path_invalidHexPrefixes": {
"placeholders": {
"prefixes": {
"type": "String"
}
}
},
"path_tooLong": "Le chemin est trop long. Maximum 64 sauts autorisés.",
"path_setPath": "Définir le chemin",
"repeater_management": "Gestion des répéteurs",
"repeater_managementTools": "Outils de Gestion",
"repeater_status": "État",
"repeater_statusSubtitle": "Afficher l'état, les statistiques et les voisins du répéteur",
"repeater_telemetry": "Télémetrie",
"repeater_telemetrySubtitle": "Afficher la télémétrie des capteurs et les statistiques du système",
"repeater_cli": "CLI",
"repeater_cliSubtitle": "Envoyer des commandes au répéteur",
"repeater_settings": "Paramètres",
"repeater_settingsSubtitle": "Configurer les paramètres du répéteur",
"repeater_statusTitle": "État du répéteur",
"repeater_routingMode": "Mode de routage",
"repeater_autoUseSavedPath": "Auto (utiliser le chemin sauvegardé)",
"repeater_forceFloodMode": "Mode tout le réseau forcé",
"repeater_pathManagement": "Gestion des chemins",
"repeater_refresh": "Rafraîchir",
"repeater_statusRequestTimeout": "Demande de statut délai dépassé.",
"repeater_errorLoadingStatus": "Erreur lors du chargement du statut : {error}",
"@repeater_errorLoadingStatus": {
"placeholders": {
"error": {
"type": "String"
}
}
},
"repeater_systemInformation": "Informations Système",
"repeater_battery": "Batterie",
"repeater_clockAtLogin": "Horloge (au démarrage)",
"repeater_uptime": "Disponibilité",
"repeater_queueLength": "Longueur de la file d'attente",
"repeater_debugFlags": "Marqueurs de débogage",
"repeater_radioStatistics": "Statistiques Radio",
"repeater_lastRssi": "Dernier RSSI",
"repeater_lastSnr": "Dernier SNR",
"repeater_noiseFloor": "Niveau de Bruit",
"repeater_txAirtime": "TX Airtime",
"repeater_rxAirtime": "RX Airtime",
"repeater_packetStatistics": "Statistiques des paquets",
"repeater_sent": "Envoyé",
"repeater_received": "Reçu",
"repeater_duplicates": "Doublons",
"repeater_daysHoursMinsSecs": "{days} jours {hours}h {minutes}m {seconds}s",
"@repeater_daysHoursMinsSecs": {
"placeholders": {
"days": {
"type": "int"
},
"hours": {
"type": "int"
},
"minutes": {
"type": "int"
},
"seconds": {
"type": "int"
}
}
},
"repeater_packetTxTotal": "Total : {total}, Tout le réseau : {flood}, Direct : {direct}",
"@repeater_packetTxTotal": {
"placeholders": {
"total": {
"type": "int"
},
"flood": {
"type": "String"
},
"direct": {
"type": "String"
}
}
},
"repeater_packetRxTotal": "Total : {total}, Tout le réseau : {flood}, Direct : {direct}",
"@repeater_packetRxTotal": {
"placeholders": {
"total": {
"type": "int"
},
"flood": {
"type": "String"
},
"direct": {
"type": "String"
}
}
},
"repeater_duplicatesFloodDirect": "Tout le réseau : {flood}, Direct : {direct}",
"@repeater_duplicatesFloodDirect": {
"placeholders": {
"flood": {
"type": "String"
},
"direct": {
"type": "String"
}
}
},
"repeater_duplicatesTotal": "Total : {total}",
"@repeater_duplicatesTotal": {
"placeholders": {
"total": {
"type": "int"
}
}
},
"repeater_settingsTitle": "Paramètres du répéteur",
"repeater_basicSettings": "Paramètres de base",
"repeater_repeaterName": "Nom du répéteur",
"repeater_repeaterNameHelper": "Afficher le nom de ce répéteur",
"repeater_adminPassword": "Mot de passe Administrateur",
"repeater_adminPasswordHelper": "Mot de passe d'accès complet",
"repeater_guestPassword": "Mot de passe invité",
"repeater_guestPasswordHelper": "Accès en lecture seule avec mot de passe",
"repeater_radioSettings": "Paramètres Radio",
"repeater_frequencyMhz": "Fréquence (MHz)",
"repeater_frequencyHelper": "300-2500 MHz",
"repeater_txPower": "TX Puissance",
"repeater_txPowerHelper": "1 à 30 dBm",
"repeater_bandwidth": "Bande passante",
"repeater_spreadingFactor": "Facteur de répartition (SF)",
"repeater_codingRate": "Taux de codage (CR)",
"repeater_locationSettings": "Paramètres de localisation",
"repeater_latitude": "Latitude",
"repeater_latitudeHelper": "Degrés décimaux (par exemple, 37.7749)",
"repeater_longitude": "Longitude",
"repeater_longitudeHelper": "Degrés décimaux (par exemple, -122,4194)",
"repeater_features": "Fonctionnalités",
"repeater_packetForwarding": "Mode répéteur",
"repeater_packetForwardingSubtitle": "Activer le répéteur pour transmettre des paquets",
"repeater_guestAccess": "Accès Invité",
"repeater_guestAccessSubtitle": "Autoriser l'accès invité en lecture seule",
"repeater_privacyMode": "Mode de confidentialité",
"repeater_privacyModeSubtitle": "Masquer le nom et la localisation dans les annonces",
"repeater_advertisementSettings": "Paramètres d'annonces",
"repeater_localAdvertInterval": "Intervalle des annonces Locale (0 saut)",
"repeater_localAdvertIntervalMinutes": "{minutes} minutes",
"@repeater_localAdvertIntervalMinutes": {
"placeholders": {
"minutes": {
"type": "int"
}
}
},
"repeater_floodAdvertInterval": "Intervalle des annonces à tout le réseau (flood)",
"repeater_floodAdvertIntervalHours": "{hours} heures",
"@repeater_floodAdvertIntervalHours": {
"placeholders": {
"hours": {
"type": "int"
}
}
},
"repeater_encryptedAdvertInterval": "Intervalle d'annonces cryptées",
"repeater_dangerZone": "Zone dangereuse",
"repeater_rebootRepeater": "Redémarrer Répéteur",
"repeater_rebootRepeaterSubtitle": "Réinitialiser l'appareil répéteur",
"repeater_rebootRepeaterConfirm": "Êtes-vous sûr de vouloir redémarrer ce répéteur ?",
"repeater_regenerateIdentityKey": "Ré générer la clé d'identité",
"repeater_regenerateIdentityKeySubtitle": "Générer une nouvelle paire de clés publique/privée",
"repeater_regenerateIdentityKeyConfirm": "Cela générera une nouvelle identité pour le répéteur. Continuer ?",
"repeater_eraseFileSystem": "Supprimer le système de fichiers",
"repeater_eraseFileSystemSubtitle": "Formater le système de fichiers du répéteur",
"repeater_eraseFileSystemConfirm": "AVERTISSEMENT : Cela effacera toutes les données du répéteur. Cela ne peut pas être annulé !",
"repeater_eraseSerialOnly": "Erase n'est disponible que via la console série.",
"repeater_commandSent": "Commande envoyée : {command}",
"@repeater_commandSent": {
"placeholders": {
"command": {
"type": "String"
}
}
},
"repeater_errorSendingCommand": "Erreur lors de l'envoi de la commande : {error}",
"@repeater_errorSendingCommand": {
"placeholders": {
"error": {
"type": "String"
}
}
},
"repeater_confirm": "Confirmer",
"repeater_settingsSaved": "Les paramètres ont été enregistrés avec succès.",
"repeater_rxGain": "Augmentation du rendement de RX",
"repeater_rxGainHelper": "Meilleure sensibilité, consommation de courant plus élevée (uniquement pour les modèles SX1262/SX1268)",
"repeater_refreshRxGain": "Renforcer les gains de RX grâce à la mise à jour",
"repeater_multiAcks": "Plusieurs accusés de réception",
"repeater_multiAcksSubtitle": "Valider les messages via plusieurs chemins pour une meilleure livraison.",
"repeater_refreshMultiAcks": "Renvoyer plusieurs accusés de réception",
"repeater_networkHealth": "Santé du réseau",
"repeater_loopDetect": "Détection de boucles",
"repeater_loopDetectHelper": "Envoyer des paquets de données qui semblent former des boucles de routage.",
"repeater_loopDetectOff": "Désactivé",
"repeater_loopDetectMinimal": "Minimal",
"repeater_loopDetectModerate": "Modéré",
"repeater_loopDetectStrict": "Strict",
"repeater_dutyCycle": "Cycle de fonctionnement",
"repeater_dutyCycleHelper": "Pourcentage maximal de temps d'antenne",
"repeater_dutyCyclePercent": "{percent}%",
"@repeater_dutyCyclePercent": {
"placeholders": {
"percent": {
"type": "int"
}
}
},
"repeater_ownerInfo": "Informations sur le propriétaire",
"repeater_ownerInfoHelper": "Métadonnées publiques pour cet appareil",
"repeater_refreshOwnerInfo": "Rafraîchir les informations du propriétaire",
"repeater_floodMax": "Nombre maximal de sauts en flood",
"repeater_floodMaxHelper": "Nombre maximal de paquets de données qu'un flux peut transmettre (0-64)",
"repeater_advancedSettings": "Avancé",
"repeater_advancedSettingsSubtitle": "Réglages avancés pour les opérateurs expérimentés",
"repeater_pathHashMode": "Mode de hachage de chemin",
"repeater_pathHashModeHelper": "Octets utilisés pour encoder l'ID de ce routeur dans les balises de détection de flux/boucles. 0 = 1 octet (256 ID, jusqu'à 64 sauts), 1 = 2 octets (65 000 ID, jusqu'à 32 sauts), 2 = 3 octets (16 millions d'ID, jusqu'à 21 sauts). Les versions 1.13 et antérieures utilisent des chemins multi-octets ; à partir de la version 1.14, cela n'est plus nécessaire.",
"repeater_txDelay": "Délai de transmission en flood",
"repeater_txDelayHelper": "Intervalle de retransmission pour le trafic flood, en multipliant le temps d'émission des paquets (0-2, valeur par défaut : 0,5). Une valeur plus élevée réduit les collisions, mais ralentit la transmission.",
"repeater_directTxDelay": "Délai de transmission direct",
"repeater_directTxDelayHelper": "Intervalle de retransmission pour le trafic direct (non flood), en multipliant le temps de transmission des paquets (0-2, valeur par défaut : 0,3).",
"repeater_intThresh": "Seuil de perturbation",
"repeater_intThreshHelper": "Seuil dépassé pour la calibration du niveau de bruit de la radio, afin de rejeter les interférences supérieures à ce niveau. 0 désactive ne mettez cette valeur que si vous constatez des erreurs RX dans une bande de fréquences bruyante.",
"repeater_agcResetInterval": "Intervalle de réinitialisation de l'AGC",
"repeater_agcResetIntervalHelper": "À quelle fréquence réinitialiser le contrôle automatique du gain de la radio pour revenir à un état normal ? Chaque seconde, ou à chaque multiple de 4. Désactiver la réinitialisation périodique avec 0.",
"repeater_actionsTitle": "Actions",
"repeater_sendAdvert": "Envoyer une annonce flood",
"repeater_sendAdvertSubtitle": "Diffuser une annonce flood via le réseau.",
"repeater_sendAdvertZeroHop": "Envoyer une annonce sans relais",
"repeater_sendAdvertZeroHopSubtitle": "Diffuser une annonce d'un seul saut (sans relais)",
"repeater_clockSync": "Synchroniser l'heure maintenant",
"repeater_clockSyncSubtitle": "Envoyez l'heure de votre téléphone au répéteur.",
"repeater_actionSucceeded": "{action} a réussi",
"@repeater_actionSucceeded": {
"placeholders": {
"action": {
"type": "String"
}
}
},
"repeater_actionFailed": "{action} a échoué : {error}",
"@repeater_actionFailed": {
"placeholders": {
"action": {
"type": "String"
},
"error": {
"type": "String"
}
}
},
"repeater_settingsSavedRebootNeeded": "Paramètres sauvegardés — redémarrer le répéteur pour appliquer les modifications.",
"repeater_settingsPartialFailure": "Certaines configurations ont échoué : {failures}",
"@repeater_settingsPartialFailure": {
"placeholders": {
"failures": {
"type": "String"
}
}
},
"repeater_errorSavingSettings": "Erreur lors de la sauvegarde des paramètres : {error}",
"@repeater_errorSavingSettings": {
"placeholders": {
"error": {
"type": "String"
}
}
},
"repeater_refreshBasicSettings": "Rafraîchir les paramètres de base",
"repeater_refreshRadioSettings": "Rafraîchir les paramètres Radio",
"repeater_refreshTxPower": "Rafraîchir la puissance TX",
"repeater_refreshPacketForwarding": "Rafraîchir le routage des paquets",
"repeater_refreshGuestAccess": "Rafraîchir l'accès invité",
"repeater_refreshPrivacyMode": "Rafraîchir le Mode Confidentialité",
"repeater_refreshed": "{label} rafraîchi",
"@repeater_refreshed": {
"placeholders": {
"label": {
"type": "String"
}
}
},
"repeater_errorRefreshing": "Erreur lors du rafraîchissement de {label}",
"@repeater_errorRefreshing": {
"placeholders": {
"label": {
"type": "String"
}
}
},
"repeater_cliTitle": "CLI du répéteur",
"repeater_debugNextCommand": "Déboguer la prochaine commande",
"repeater_commandHelp": "Aide",
"repeater_clearHistory": "Effacer l'historique",
"repeater_noCommandsSent": "Aucune commande n'a encore été envoyée.",
"repeater_typeCommandOrUseQuick": "Saisissez une commande ci-dessous ou utilisez les commandes rapides",
"repeater_enterCommandHint": "Entrer la commande...",
"repeater_previousCommand": "Commande précédente",
"repeater_nextCommand": "Prochaine commande",
"repeater_enterCommandFirst": "Entrez d'abord une commande",
"repeater_cliCommandFrameTitle": "Frame de commande CLI",
"repeater_cliCommandError": "Erreur : {error}",
"@repeater_cliCommandError": {
"placeholders": {
"error": {
"type": "String"
}
}
},
"repeater_cliQuickGetName": "Obtenir le nom",
"repeater_cliQuickGetRadio": "Obtenir la radio",
"repeater_cliQuickGetTx": "Obtenir TX",
"repeater_cliQuickNeighbors": "Voisins",
"repeater_cliQuickVersion": "Version",
"repeater_cliQuickAdvertise": "Diffuser",
"repeater_cliQuickClock": "Horloge",
"repeater_cliHelpAdvert": "Envoie un paquet d'annonce",
"repeater_cliHelpReboot": "Redémarre l'appareil. (Note, vous risquez d'obtenir 'Timeout' ce qui est normal)",
"repeater_cliHelpClock": "Affiche l'heure actuelle par l'horloge de chaque appareil.",
"repeater_cliHelpPassword": "Définit un nouveau mot de passe administrateur pour l'appareil.",
"repeater_cliHelpVersion": "Affiche la version du périphérique et la date de construction du micrologiciel.",
"repeater_cliHelpClearStats": "Réinitialise divers compteurs de statistiques à zéro.",
"repeater_cliHelpSetAf": "Définit le facteur de temps d'air.",
"repeater_cliHelpSetTx": "Définit la puissance de transmission LoRa en dBm (réinitialisation requise pour appliquer).",
"repeater_cliHelpSetRepeat": "Active ou désactive le rôle du répéteur pour ce nœud.",
"repeater_cliHelpSetAllowReadOnly": "(Room server) Si \"activé\", alors un mot de passe vide permettra la connexion, mais ne permettra pas de publier dans la pièce. (lecture seule uniquement)",
"repeater_cliHelpSetFloodMax": "Définit le nombre maximal de sauts pour les paquets de balayage entrants (si >= max, le paquet n'est pas acheminé).",
"repeater_cliHelpSetIntThresh": "Définit le seuil d'interférence (en dB). La valeur par défaut est de 14. Définir sur 0 désactive la détection des interférences de canal.",
"repeater_cliHelpSetAgcResetInterval": "Définit l'intervalle pour réinitialiser le contrôleur de gain automatique. Mettez à 0 pour désactiver.",
"repeater_cliHelpSetMultiAcks": "Active ou désactive la fonctionnalité « double ACKs ».",
"repeater_cliHelpSetAdvertInterval": "Définit l'intervalle entre chaque émission d'une annonce locale (sans relais). Définir sur 0 pour désactiver.",
"repeater_cliHelpSetFloodAdvertInterval": "Définit l'intervalle du minuteur en heures pour envoyer un paquet d'annonce massive. Définir sur 0 pour désactiver.",
"repeater_cliHelpSetGuestPassword": "Définit/met à jour le mot de passe de l'invité. (pour les répéteurs, les connexions d'invités peuvent envoyer la requête \"Get Stats\")",
"repeater_cliHelpSetName": "Définit le nom de l'annonce.",
"repeater_cliHelpSetLat": "Définit la latitude de la carte des annonces. (degrés décimaux)",
"repeater_cliHelpSetLon": "Définit la longitude de la carte de l'annonce. (degrés décimaux)",
"repeater_cliHelpSetRadio": "Définit complètement de nouveaux paramètres de radio et les enregistre dans les préférences. Nécessite une commande \"redémarrage\" pour les appliquer.",
"repeater_cliHelpSetRxDelay": "Paramètres (expérimental) de base pour appliquer un léger délai aux paquets reçus, en fonction de la force du signal/score. Définir sur 0 pour désactiver.",
"repeater_cliHelpSetTxDelay": "Définit un facteur multiplié par le temps de fonctionnement en mode vers tout le réseau (flood) pour un paquet et avec un système de slot aléatoire, afin de retarder son envoi (pour diminuer la probabilité de collisions).",
"repeater_cliHelpSetDirectTxDelay": "Identique à txdelay, mais pour appliquer un délai aléatoire au transfert des paquets en mode direct.",
"repeater_cliHelpSetBridgeEnabled": "Activer/Désactiver le pont.",
"repeater_cliHelpSetBridgeDelay": "Définir le délai avant de renvoyer les paquets.",
"repeater_cliHelpSetBridgeSource": "Choisissez si le pont retransmettra les paquets reçus ou les paquets transmis.",
"repeater_cliHelpSetBridgeBaud": "Définir la vitesse de communication série pour les ponts Rs232.",
"repeater_cliHelpSetBridgeSecret": "Définir le secret du pont pour les ponts espnow.",
"repeater_cliHelpSetAdcMultiplier": "Définit un facteur personnalisé pour ajuster la tension de la batterie signalée (uniquement pris en charge sur certains cartes).",
"repeater_cliHelpTempRadio": "Définit des paramètres radio temporaires pour le nombre de minutes donné, puis revient aux paramètres radio d'origine. (ne sauvegarde pas dans les préférences).",
"repeater_cliHelpSetPerm": "Modifie lACL. Supprime lentrée correspondante (par préfixe de clé publique) si \"permissions\" est égal à zéro. Ajoute une nouvelle entrée si la clé publique hexadécimale a une longueur complète et nest pas actuellement dans lACL. Met à jour lentrée en fonction du préfixe de clé publique. Les bits de permission varient en fonction du rôle du firmware, mais les 2 bits inférieurs sont : 0 (Invité), 1 (Lecture seule), 2 (Lecture/écriture), 3 (Administrateur).",
"repeater_cliHelpGetBridgeType": "Obtenir le type de pont : aucun, rs232, espnow",
"repeater_cliHelpLogStart": "Démarre l'enregistrement des paquets dans le système de fichiers.",
"repeater_cliHelpLogStop": "Arrêter de journaliser les paquets vers le système de fichiers.",
"repeater_cliHelpLogErase": "Supprime les journaux de paquets du système de fichiers.",
"repeater_cliHelpNeighbors": "Affiche une liste d'autres nœuds répéteurs entendus via des annonces sans relais. Chaque ligne est id-préfixe-hexadécimal:timestamp:snr-fois-4",
"repeater_cliHelpNeighborRemove": "Supprime la première entrée correspondante (par préfixe de clé publique (hexadécimal)) de la liste des voisins.",
"repeater_cliHelpRegion": "(série uniquement) Liste toutes les régions définies et les autorisations actuelles d'annonces sur tout le réseau (flood).",
"repeater_cliHelpRegionLoad": "REMARQUE : il s'agit d'une invocation multi-commande spéciale. Chaque commande subséquente est un nom de région (indenté avec des espaces pour indiquer la hiérarchie parent, avec un minimum d'un espace). Terminé par l'envoi d'une ligne vide/commande.",
"repeater_cliHelpRegionGet": "Recherche la région avec le préfixe de nom donné (ou \"\" pour l'étendue globale). Répond avec \"-> nom-de-région (nom-parent) 'F'\"",
"repeater_cliHelpRegionPut": "Ajoute ou met à jour une définition de région avec le nom donné.",
"repeater_cliHelpRegionRemove": "Supprime une définition de région avec le nom donné.",
"repeater_cliHelpRegionAllowf": "Définit les autorisations de \"Flot\" pour la région donnée. ('' pour la portée globale/héritée)",
"repeater_cliHelpRegionDenyf": "Supprime l'autorisation 'F'lood' pour la région donnée. (NOTE : à ce stade, il n'est pas conseillé de l'utiliser sur l'étendue globale/héritée !! )",
"repeater_cliHelpRegionHome": "Répond avec la région 'maison' actuelle. (Note appliquée nulle part pour l'instant, réservée à une utilisation future)",
"repeater_cliHelpRegionHomeSet": "Définit la région 'maison'.",
"repeater_cliHelpRegionSave": "Conserve la liste/la carte des régions dans le stockage.",
"repeater_cliHelpGps": "Affiche l’état du GPS. Lorsque le GPS est éteint, il répond uniquement « éteint », si allumé, il répond avec « allumé », l’état, la correction, le nombre de satellites.",
"repeater_cliHelpGpsOnOff": "Activer/désactiver le GPS.",
"repeater_cliHelpGpsSync": "Synchronise l'heure du nœud avec l'horloge GPS.",
"repeater_cliHelpGpsSetLoc": "Définit la position du nœud aux coordonnées GPS et enregistre les préférences.",
"repeater_cliHelpGpsAdvert": "Donne la configuration de l'annonce de la localisation du nœud :\n- none : ne pas inclure la localisation dans les annonces\n- share : partager la localisation GPS (du SensorManager)\n- prefs : annoncer la localisation stockée dans les préférences",
"repeater_cliHelpGpsAdvertSet": "Définit la configuration de l'annonce de localisation.",
"repeater_commandsListTitle": "Liste des commandes",
"repeater_commandsListNote": "NOTE : pour les diverses commandes « set »..., il existe également une commande « get »...",
"repeater_general": "Général",
"repeater_settingsCategory": "Paramètres",
"repeater_bridge": "Pont",
"repeater_logging": "Journalisation",
"repeater_neighborsRepeaterOnly": "Voisins (Uniquement répéteur)",
"repeater_regionManagementRepeaterOnly": "Gestion des régions (uniquement pour le répéteur)",
"repeater_regionNote": "Les commandes de région ont été introduites pour gérer les définitions et les autorisations des régions.",
"repeater_gpsManagement": "Gestion GPS",
"repeater_gpsNote": "La commande GPS a été introduite pour gérer les sujets liés à la localisation.",
"telemetry_receivedData": "Données de télémétrie reçues",
"telemetry_requestTimeout": "Demande de télémétrie expirée.",
"telemetry_errorLoading": "Erreur lors du chargement de la télémétrie : {error}",
"@telemetry_errorLoading": {
"placeholders": {
"error": {
"type": "String"
}
}
},
"telemetry_digitalInputLabel": "Entrée numérique",
"telemetry_digitalOutputLabel": "Sortie numérique",
"telemetry_analogInputLabel": "Entrée analogique",
"telemetry_analogOutputLabel": "Sortie analogique",
"telemetry_genericLabel": "Capteur générique",
"telemetry_luminosityLabel": "Luminosité",
"telemetry_presenceLabel": "Présence",
"telemetry_humidityLabel": "Humidité",
"telemetry_accelerometerLabel": "Accéléromètre",
"telemetry_pressureLabel": "Pression",
"telemetry_altitudeLabel": "Altitude",
"telemetry_frequencyLabel": "Fréquence",
"telemetry_percentageLabel": "Pourcentage",
"telemetry_concentrationLabel": "Concentration",
"telemetry_powerLabel": "Puissance",
"telemetry_distanceLabel": "Distance",
"telemetry_energyLabel": "Énergie",
"telemetry_directionLabel": "Direction",
"telemetry_timeLabel": "Heure",
"telemetry_gyrometerLabel": "Gyromètre",
"telemetry_colourLabel": "Couleur",
"telemetry_gpsLabel": "GPS",
"telemetry_switchLabel": "Interrupteur",
"telemetry_polylineLabel": "Polyligne",
"telemetry_altitudeValue": "{meters} m",
"telemetry_frequencyValue": "{hertz} Hz",
"telemetry_pressureValue": "{hpa} hPa",
"telemetry_luminosityValue": "{lux} lx",
"telemetry_powerValue": "{watts} W",
"telemetry_distanceValue": "{meters} m",
"telemetry_energyValue": "{kilowattHours} kWh",
"telemetry_directionValue": "{degrees}°",
"telemetry_concentrationValue": "{ppm} ppm",
"telemetry_percentageValue": "{percent}%",
"telemetry_analogValue": "{value}",
"@telemetry_altitudeValue": {
"placeholders": {
"meters": {
"type": "String"
}
}
},
"@telemetry_frequencyValue": {
"placeholders": {
"hertz": {
"type": "String"
}
}
},
"@telemetry_pressureValue": {
"placeholders": {
"hpa": {
"type": "String"
}
}
},
"@telemetry_luminosityValue": {
"placeholders": {
"lux": {
"type": "String"
}
}
},
"@telemetry_powerValue": {
"placeholders": {
"watts": {
"type": "String"
}
}
},
"@telemetry_distanceValue": {
"placeholders": {
"meters": {
"type": "String"
}
}
},
"@telemetry_energyValue": {
"placeholders": {
"kilowattHours": {
"type": "String"
}
}
},
"@telemetry_directionValue": {
"placeholders": {
"degrees": {
"type": "String"
}
}
},
"@telemetry_concentrationValue": {
"placeholders": {
"ppm": {
"type": "String"
}
}
},
"@telemetry_percentageValue": {
"placeholders": {
"percent": {
"type": "String"
}
}
},
"@telemetry_analogValue": {
"placeholders": {
"value": {
"type": "String"
}
}
},
"telemetry_autoFetchQuantity": "Nombre de requêtes",
"telemetry_error": "Impossible de récupérer les données",
"telemetry_noData": "Aucune donnée de télémétrie disponible.",
"telemetry_channelTitle": "Canal {channel}",
"@telemetry_channelTitle": {
"placeholders": {
"channel": {
"type": "int"
}
}
},
"telemetry_batteryLabel": "Batterie",
"telemetry_voltageLabel": "Tension",
"telemetry_mcuTemperatureLabel": "Température du MCU",
"telemetry_temperatureLabel": "Température",
"telemetry_currentLabel": "Actuellement",
"telemetry_batteryValue": "{percent}% / {volts}V",
"@telemetry_batteryValue": {
"placeholders": {
"percent": {
"type": "int"
},
"volts": {
"type": "String"
}
}
},
"telemetry_voltageValue": "{volts}V",
"@telemetry_voltageValue": {
"placeholders": {
"volts": {
"type": "String"
}
}
},
"telemetry_currentValue": "{amps}A",
"@telemetry_currentValue": {
"placeholders": {
"amps": {
"type": "String"
}
}
},
"telemetry_temperatureValue": "{celsius}°C / {fahrenheit}°F",
"@telemetry_temperatureValue": {
"placeholders": {
"celsius": {
"type": "String"
},
"fahrenheit": {
"type": "String"
}
}
},
"channelPath_title": "Chemin de paquet",
"channelPath_viewMap": "Afficher la carte",
"channelPath_otherObservedPaths": "Autres chemins observés",
"channelPath_repeaterHops": "Sauts du répéteur",
"channelPath_noHopDetails": "Les détails de l'envoi ne sont pas fournis pour ce paquet.",
"channelPath_messageDetails": "Détails du message",
"channelPath_senderLabel": "Expéditeur",
"channelPath_timeLabel": "Temps",
"channelPath_repeatsLabel": "Répétitions",
"channelPath_pathLabel": "Chemin {index}",
"channelPath_observedLabel": "Observé",
"channelPath_observedPathTitle": "Chemin observé {index} • {hops}",
"@channelPath_observedPathTitle": {
"placeholders": {
"index": {
"type": "int"
},
"hops": {
"type": "String"
}
}
},
"channelPath_noLocationData": "Aucune donnée de localisation",
"channelPath_timeWithDate": "{day}/{month} {time}",
"@channelPath_timeWithDate": {
"placeholders": {
"day": {
"type": "int"
},
"month": {
"type": "int"
},
"time": {
"type": "String"
}
}
},
"channelPath_timeOnly": "{time}",
"@channelPath_timeOnly": {
"placeholders": {
"time": {
"type": "String"
}
}
},
"channelPath_unknownPath": "Inconnu",
"channelPath_floodPath": "Tout le réseau",
"channelPath_directPath": "Afficher",
"channelPath_observedZeroOf": "0 de {total} sauts",
"@channelPath_observedZeroOf": {
"placeholders": {
"total": {
"type": "int"
}
}
},
"channelPath_observedSomeOf": "{observed} sur {total} sauts",
"@channelPath_observedSomeOf": {
"placeholders": {
"observed": {
"type": "int"
},
"total": {
"type": "int"
}
}
},
"channelPath_mapTitle": "Carte du chemin",
"channelPath_noRepeaterLocations": "Aucune position de répéteur disponible pour ce chemin.",
"channelPath_primaryPath": "Chemin {index} (Principal)",
"@channelPath_primaryPath": {
"placeholders": {
"index": {
"type": "int"
}
}
},
"@channelPath_pathLabel": {
"placeholders": {
"index": {
"type": "int"
}
}
},
"channelPath_pathLabelTitle": "Chemin",
"channelPath_observedPathHeader": "Chemin observé",
"channelPath_selectedPathLabel": "{label} • {prefixes}",
"@channelPath_selectedPathLabel": {
"placeholders": {
"label": {
"type": "String"
},
"prefixes": {
"type": "String"
}
}
},
"channelPath_noHopDetailsAvailable": "Aucun détail de saut disponible pour ce paquet.",
"channelPath_unknownRepeater": "Répéteur Inconnu",
"listFilter_tooltip": "Filtrer et trier",
"listFilter_sortBy": "Trier par",
"listFilter_latestMessages": "Derniers messages",
"listFilter_heardRecently": "Écoute récemment",
"listFilter_az": "A à Z",
"listFilter_filters": "Filtres",
"listFilter_all": "Tout",
"listFilter_users": "Utilisateurs",
"listFilter_repeaters": "Répéteurs",
"listFilter_roomServers": "Serveurs de salle",
"listFilter_unreadOnly": "Messages non lus seulement",
"listFilter_newGroup": "Nouveau groupe",
"@neighbors_errorLoading": {
"placeholders": {
"error": {
"type": "String"
}
}
},
"repeater_neighbors": "Voisins",
"repeater_neighborsSubtitle": "Afficher les voisins de saut nuls.",
"neighbors_receivedData": "Données des voisins reçues",
"neighbors_requestTimedOut": "Les voisins demandent un délai.",
"neighbors_errorLoading": "Erreur lors du chargement des voisins : {error}",
"neighbors_repeatersNeighbors": "Répéteurs Voisins",
"neighbors_noData": "Aucune donnée concernant les voisins disponible.",
"channels_createPrivateChannelDesc": "Sécurisé avec une clé secrète.",
"channels_joinPrivateChannel": "Rejoindre un Canal Privé",
"channels_createPrivateChannel": "Créer un Canal Privé",
"channels_joinPrivateChannelDesc": "Entrer manuellement une clé secrète.",
"channels_joinPublicChannel": "Rejoindre le canal public",
"channels_joinPublicChannelDesc": "Tout le monde peut rejoindre ce canal.",
"channels_joinHashtagChannel": "Rejoindre un Canal Hashtag",
"channels_joinHashtagChannelDesc": "N'importe qui peut rejoindre les canaux #hashtag.",
"channels_scanQrCode": "Scanner un QR code",
"channels_scanQrCodeComingSoon": "Bientôt disponible",
"channels_enterHashtag": "Entrez le hashtag",
"channels_hashtagHint": "ex. #equipe",
"@neighbors_unknownContact": {
"placeholders": {
"pubkey": {
"type": "String"
}
}
},
"@neighbors_heardAgo": {
"placeholders": {
"time": {
"type": "String"
}
}
},
"neighbors_unknownContact": "Clé publique inconnue {pubkey}",
"neighbors_heardAgo": "Écouté : {time} auparavant",
"settings_locationGPSEnable": "Activer le GPS",
"settings_locationGPSEnableSubtitle": "Activer la mise à jour automatique de la localisation via GPS",
"settings_locationIntervalSec": "Intervalle de mise à jour du GPS (secondes)",
"settings_locationIntervalInvalid": "L'intervalle doit être compris entre 60 et 86400 secondes.",
"contacts_manageRoom": "Gérer le room server",
"room_management": "Gestion du room server",
"@community_joinConfirmation": {
"placeholders": {
"name": {
"type": "String"
}
}
},
"@community_created": {
"placeholders": {
"name": {
"type": "String"
}
}
},
"@community_joined": {
"placeholders": {
"name": {
"type": "String"
}
}
},
"@community_qrInstructions": {
"placeholders": {
"name": {
"type": "String"
}
}
},
"@community_alreadyMemberMessage": {
"placeholders": {
"name": {
"type": "String"
}
}
},
"@community_deleteConfirm": {
"placeholders": {
"name": {
"type": "String"
}
}
},
"@community_deleted": {
"placeholders": {
"name": {
"type": "String"
}
}
},
"@community_forCommunity": {
"placeholders": {
"name": {
"type": "String"
}
}
},
"common_ok": "D'accord",
"community_title": "Communauté",
"community_create": "Créer une Communauté",
"community_createDesc": "Créer une nouvelle communauté et la partager via QR code.",
"community_join": "Rejoindre",
"community_joinTitle": "Rejoindre la communauté",
"community_joinConfirmation": "Souhaitez-vous rejoindre la communauté \"{name}\" ?",
"community_scanQr": "Scanner un QR code de communauté",
"community_scanInstructions": "Pointez l'appareil photo vers un QR code de communauté.",
"community_showQr": "Afficher le QR Code",
"community_publicChannel": "Communauté Publique",
"community_hashtagChannel": "Hashtag Communauté",
"community_name": "Nom de la communauté",
"community_enterName": "Entrez le nom de la communauté",
"community_created": "Communauté \"{name}\" créée",
"community_joined": "Rejoint la communauté \"{name}\"",
"community_qrTitle": "Partager Communauté",
"community_qrInstructions": "Scanner ce QR code pour rejoindre {name}",
"community_hashtagPrivacyHint": "Les canaux hashtag de la communauté ne sont accessibles qu'aux membres de la communauté",
"community_invalidQrCode": "QR code de communauté non valide",
"community_alreadyMember": "Déjà membre",
"community_alreadyMemberMessage": "Vous êtes déjà membre de \"{name}\".",
"community_addPublicChannel": "Ajouter un Canal Public de la Communauté",
"community_addPublicChannelHint": "Ajouter automatiquement le canal public pour cette communauté",
"community_noCommunities": "Aucun groupe n'a été rejoint pour le moment.",
"community_scanOrCreate": "Scanner un QR code ou créer une communauté pour commencer",
"community_manageCommunities": "Gérer les Communautés",
"community_delete": "Quitter la communauté",
"community_deleteConfirm": "Quitter \"{name}\" ?",
"community_deleteChannelsWarning": "Cela supprimera également {count} canal/canaux et leurs messages.",
"@community_deleteChannelsWarning": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"community_deleted": "Communauté \"{name}\" quittée",
"community_addHashtagChannel": "Ajouter un Hashtag Communauté",
"community_addHashtagChannelDesc": "Ajouter un canal hashtag pour cette communauté",
"community_selectCommunity": "Sélectionner Communauté",
"community_regularHashtag": "Hashtag régulier",
"community_regularHashtagDesc": "Hashtag public (tout le monde peut rejoindre)",
"community_communityHashtag": "Hashtag de la communauté",
"community_communityHashtagDesc": "Exclusif aux membres de la communauté",
"community_forCommunity": "Pour {name}",
"@community_regenerateSecretConfirm": {
"placeholders": {
"name": {
"type": "String"
}
}
},
"@community_secretRegenerated": {
"placeholders": {
"name": {
"type": "String"
}
}
},
"@community_secretUpdated": {
"placeholders": {
"name": {
"type": "String"
}
}
},
"@community_scanToUpdateSecret": {
"placeholders": {
"name": {
"type": "String"
}
}
},
"community_regenerateSecret": "Régénérer le secret",
"community_regenerateSecretConfirm": "Régénérer la clé secrète pour \"{name}\" ? Tous les membres devront scanner le nouveau QR code pour continuer à communiquer.",
"community_regenerate": "Régénérer",
"community_secretRegenerated": "Mot de passe secret régénéré pour \"{name}\"",
"community_scanToUpdateSecret": "Scanner le nouveau QR code pour mettre à jour le mot de passe pour \"{name}\"",
"community_updateSecret": "Mettre à jour le secret",
"community_secretUpdated": "Modification secrète mise à jour pour \"{name}\"",
"@contacts_pathTraceTo": {
"placeholders": {
"name": {
"type": "String"
}
}
},
"pathTrace_you": "Vous",
"pathTrace_refreshTooltip": "Actualiser le traçage du chemin",
"pathTrace_failed": "Échec du traçage du chemin.",
"pathTrace_notAvailable": "Le traçage du chemin est indisponible.",
"contacts_pathTrace": "Traçage de chemin",
"contacts_repeaterPathTrace": "Tracer le chemin vers le répéteur",
"contacts_repeaterPing": "Pinguer le répéteur",
"contacts_roomPathTrace": "Traçage du chemin vers le room server",
"contacts_chatTraceRoute": "Tracer le chemin",
"contacts_pathTraceTo": "Tracer l'itinéraire vers {name}",
"contacts_ping": "Ping",
"contacts_roomPing": "Pinguer le room server",
"contacts_invalidAdvertFormat": "Données de contact non valides",
"appSettings_languageUk": "Ukrainien",
"appSettings_languageRu": "Russe",
"appSettings_enableMessageTracing": "Activer le traçage des messages",
"appSettings_enableMessageTracingSubtitle": "Afficher les métadonnées détaillées de routage et de synchronisation des messages",
"contacts_clipboardEmpty": "Le presse-papiers est vide.",
"contacts_contactImported": "Le contact a été importé.",
"contacts_floodAdvert": "Annonce à tout le réseau",
"contacts_contactImportFailed": "Échec de l'importation du contact.",
"contacts_zeroHopAdvert": "Annonce Zero saut",
"contacts_copyAdvertToClipboard": "Copier l'annonce dans le presse-papiers",
"contacts_addContactFromClipboard": "Ajouter un contact depuis le presse-papiers",
"contacts_ShareContact": "Copier le contact dans le presse-papiers",
"contacts_ShareContactZeroHop": "Partager un contact par annonce",
"contacts_contactAdvertCopied": "Annonce copiée dans le presse-papiers.",
"contacts_contactAdvertCopyFailed": "La copie de l'annonce vers le presse-papiers a échoué.",
"contacts_zeroHopContactAdvertSent": "Envoyer un contact par annonce.",
"contacts_zeroHopContactAdvertFailed": "Échec de l'envoi du contact.",
"notification_activityTitle": "Activité MeshCore",
"notification_messagesCount": "{count} {count, plural, =1{message} other{messages}}",
"notification_channelMessagesCount": "{count} {count, plural, =1{message de canal} other{messages de canal}}",
"notification_newNodesCount": "{count} {count, plural, =1{nouveau nœud} other{nouveaux nœuds}}",
"notification_newTypeDiscovered": "Nouveau {contactType} découvert",
"@notification_channelMessagesCount": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"@notification_newNodesCount": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"@notification_newTypeDiscovered": {
"placeholders": {
"contactType": {
"type": "String"
}
}
},
"notification_receivedNewMessage": "Nouveau message reçu",
"settings_gpxExportRepeaters": "Exporter les répéteurs / room servers au format GPX",
"settings_gpxExportRepeatersSubtitle": "Exporte les répéteurs / roomserver avec une localisation vers un fichier GPX.",
"settings_gpxExportNoContacts": "Aucun contact à exporter.",
"settings_gpxExportNotAvailable": "Non pris en charge sur votre appareil/Système d'exploitation",
"settings_gpxExportError": "Une erreur s'est produite lors de l'exportation.",
"settings_gpxExportRepeatersRoom": "Emplacements des répéteurs et room servers",
"settings_gpxExportContacts": "Exporter les compagnons au format GPX",
"settings_gpxExportAll": "Exporter tous les contacts au format GPX",
"settings_gpxExportAllSubtitle": "Exporte tous les contacts avec une localisation vers un fichier GPX.",
"settings_gpxExportContactsSubtitle": "Exporte les compagnons avec un emplacement vers un fichier GPX.",
"settings_gpxExportChat": "Emplacements des compagnons",
"settings_gpxExportSuccess": "Fichier GPX exporté avec succès.",
"settings_gpxExportAllContacts": "Tous les emplacements des contacts",
"settings_gpxExportShareText": "Données de carte exportées à partir de meshcore-open",
"settings_gpxExportShareSubject": "meshcore-open exporter les données de carte GPX",
"pathTrace_someHopsNoLocation": "Un ou plusieurs des sauts manquent d'une localisation !",
"map_tapToAdd": "Appuyez sur les nœuds pour les ajouter au chemin.",
"pathTrace_clearTooltip": "Effacer le chemin",
"map_pathTraceCancelled": "Traçage de chemin annulé",
"map_removeLast": "Supprimer le dernier",
"map_runTrace": "Exécuter la traçage de chemin",
"scanner_bluetoothOffMessage": "Veuillez activer le Bluetooth pour rechercher des appareils.",
"scanner_chromeRequired": "Navigateur Chrome requis",
"scanner_chromeRequiredMessage": "Cette application web nécessite Google Chrome ou un navigateur basé sur Chromium pour le support Bluetooth.",
"scanner_bluetoothOff": "Le Bluetooth est désactivé.",
"scanner_enableBluetooth": "Activer le Bluetooth",
"snrIndicator_lastSeen": "Vu pour la dernière fois",
"snrIndicator_nearByRepeaters": "Répéteurs à proximité",
"chat_ShowAllPaths": "Afficher tous les chemins",
"settings_clientRepeatFreqWarning": "Pour les transmissions hors réseau, il est nécessaire d'utiliser les fréquences de 433, 869 ou 918 MHz.",
"settings_clientRepeatSubtitle": "Permettre à cet appareil de relayer les paquets du maillage pour les autres.",
"settings_clientRepeat": "Répétition hors réseau",
"settings_aboutOpenMeteoAttribution": "Données d'élévation LOS : Open-Meteo (CC BY 4.0)",
"appSettings_unitsTitle": "Unités",
"appSettings_unitsMetric": "Métrique (m/km)",
"appSettings_unitsImperial": "Impérial (ft / mi)",
"map_lineOfSight": "Ligne de vue",
"map_losScreenTitle": "Ligne de vue",
"losSelectStartEnd": "Sélectionnez les nœuds de début et de fin pour LOS.",
"losRunFailed": "Échec de la vérification de la ligne de vue : {error}",
"@losRunFailed": {
"placeholders": {
"error": {
"type": "String"
}
}
},
"losClearAllPoints": "Effacer tous les points",
"losRunToViewElevationProfile": "Exécutez LOS pour afficher le profil d'altitude",
"losMenuTitle": "Menu LOS",
"losMenuSubtitle": "Appuyez sur les nœuds ou appuyez longuement sur la carte pour des points personnalisés",
"losShowDisplayNodes": "Afficher les nœuds d'affichage",
"losCustomPoints": "Points personnalisés",
"losCustomPointLabel": "Personnalisé {index}",
"@losCustomPointLabel": {
"placeholders": {
"index": {
"type": "int"
}
}
},
"losPointA": "Point A",
"losPointB": "Point B",
"losAntennaA": "Antenne A : {value} {unit}",
"@losAntennaA": {
"placeholders": {
"value": {
"type": "String"
},
"unit": {
"type": "String"
}
}
},
"losAntennaB": "Antenne B : {value} {unit}",
"@losAntennaB": {
"placeholders": {
"value": {
"type": "String"
},
"unit": {
"type": "String"
}
}
},
"losRun": "Exécuter la LOS",
"losNoElevationData": "Aucune donnée d'altitude",
"losProfileClear": "{distance} {distanceUnit}, LOS clair, clairance minimale {clearance} {heightUnit}",
"@losProfileClear": {
"placeholders": {
"distance": {
"type": "String"
},
"distanceUnit": {
"type": "String"
},
"clearance": {
"type": "String"
},
"heightUnit": {
"type": "String"
}
}
},
"losProfileBlocked": "{distance} {distanceUnit}, bloqué par {obstruction} {heightUnit}",
"@losProfileBlocked": {
"placeholders": {
"distance": {
"type": "String"
},
"distanceUnit": {
"type": "String"
},
"obstruction": {
"type": "String"
},
"heightUnit": {
"type": "String"
}
}
},
"losStatusChecking": "LOS : vérification...",
"losStatusNoData": "LOS : aucune donnée",
"losStatusSummary": "LOS : {clear}/{total} clair, {blocked} bloqué, {unknown} inconnu",
"@losStatusSummary": {
"placeholders": {
"clear": {
"type": "int"
},
"total": {
"type": "int"
},
"blocked": {
"type": "int"
},
"unknown": {
"type": "int"
}
}
},
"losErrorElevationUnavailable": "Données d'altitude indisponibles pour un ou plusieurs échantillons.",
"losErrorInvalidInput": "Données de points/d'altitude non valides pour le calcul de la LOS.",
"losRenameCustomPoint": "Renommer le point personnalisé",
"losPointName": "Nom du point",
"losShowPanelTooltip": "Afficher le panneau LOS",
"losHidePanelTooltip": "Masquer le panneau LOS",
"losElevationAttribution": "Données daltitude : Open-Meteo (CC BY 4.0)",
"losLegendRadioHorizon": "Horizon radio",
"losLegendLosBeam": "Ligne de visée",
"losLegendTerrain": "Terrain",
"losFrequencyLabel": "Fréquence",
"losFrequencyInfoTooltip": "Voir les détails du calcul",
"losFrequencyDialogTitle": "Calcul de lhorizon radio",
"losFrequencyDialogDescription": "À partir de k={baselineK} à {baselineFreq} MHz, le calcul ajuste le facteur k pour la bande actuelle de {frequencyMHz} MHz, ce qui définit la limite incurvée de l'horizon radio.",
"@losFrequencyDialogDescription": {
"description": "Explain how the calculation uses the baseline frequency and derived k-factor.",
"placeholders": {
"baselineK": {
"type": "double"
},
"baselineFreq": {
"type": "double"
},
"frequencyMHz": {
"type": "double"
},
"kFactor": {
"type": "double"
}
}
},
"listFilter_addToFavorites": "Ajouter à mes favoris",
"listFilter_removeFromFavorites": "Supprimer des favoris",
"listFilter_favorites": "Préférences",
"@contacts_searchFavorites": {
"placeholders": {
"number": {
"type": "int"
},
"str": {
"type": "String"
}
}
},
"@contacts_searchUsers": {
"placeholders": {
"number": {
"type": "int"
},
"str": {
"type": "String"
}
}
},
"@contacts_searchRepeaters": {
"placeholders": {
"number": {
"type": "int"
},
"str": {
"type": "String"
}
}
},
"@contacts_searchRoomServers": {
"placeholders": {
"number": {
"type": "int"
},
"str": {
"type": "String"
}
}
},
"contacts_unread": "Non lu",
"contacts_searchFavorites": "Rechercher {number}{str} Favoris...",
"contacts_searchUsers": "Rechercher {number}{str} utilisateurs...",
"contacts_searchRoomServers": "Rechercher {number}{str} room server...",
"contacts_searchRepeaters": "Rechercher {number}{str} Répéteurs...",
"contacts_searchContactsNoNumber": "Rechercher des contacts...",
"settings_contactSettings": "Paramètres de contact",
"settings_contactSettingsSubtitle": "Paramètres pour l'ajout de contacts",
"contactsSettings_autoAddRepeatersTitle": "Ajouter automatiquement les répéteurs",
"contactsSettings_autoAddRepeatersSubtitle": "Autoriser le compagnon à ajouter automatiquement les répéteurs découverts",
"contactsSettings_autoAddRoomServersTitle": "Ajouter automatiquement les room servers",
"contactsSettings_autoAddRoomServersSubtitle": "Autoriser le compagnon à ajouter automatiquement les room servers découverts",
"contactsSettings_otherTitle": "Autres paramètres liés aux contacts",
"contactsSettings_title": "Paramètres des contacts",
"contactsSettings_autoAddUsersTitle": "Ajouter automatiquement les utilisateurs",
"contactsSettings_autoAddTitle": "Découverte automatique",
"contactsSettings_autoAddSensorsTitle": "Ajouter automatiquement les capteurs",
"contactsSettings_autoAddUsersSubtitle": "Autoriser le compagnon à ajouter automatiquement les utilisateurs découverts",
"discoveredContacts_noMatching": "Aucun contact correspondant",
"discoveredContacts_contactAdded": "Contact ajouté",
"discoveredContacts_addContact": "Ajouter un contact",
"discoveredContacts_copyContact": "Copier le contact dans le presse-papiers",
"discoveredContacts_deleteContact": "Supprimer le contact",
"contactsSettings_overwriteOldestTitle": "Écraser le plus ancien",
"contactsSettings_autoAddSensorsSubtitle": "Autoriser le compagnon à ajouter automatiquement les capteurs découverts.",
"discoveredContacts_Title": "Contacts découverts",
"discoveredContacts_searchHint": "Rechercher des contacts découverts",
"contactsSettings_overwriteOldestSubtitle": "Lorsque la liste de contacts est pleine, le contact le plus ancien non favori sera remplacé.",
"common_deleteAll": "Tout supprimer",
"discoveredContacts_deleteContactAll": "Supprimer tous les contacts découverts",
"discoveredContacts_deleteContactAllContent": "Êtes-vous sûr de vouloir supprimer tous les contacts découverts ?",
"map_showGuessedLocations": "Afficher les emplacements estimés des nœuds",
"map_guessedLocation": "Localisation estimée",
"connectionChoiceUsbLabel": "USB",
"usbScreenTitle": "Connectez via USB",
"connectionChoiceBluetoothLabel": "Bluetooth",
"usbScreenSubtitle": "Sélectionnez un périphérique série détecté et connectez-vous directement à votre nœud MeshCore.",
"usbScreenStatus": "Sélectionnez un périphérique USB",
"usbScreenNote": "La communication série USB est active sur les appareils Android et les plateformes de bureau compatibles.",
"usbScreenEmptyState": "Aucun périphérique USB n'a été trouvé. Veuillez en brancher un et rafraîchir la page.",
"usbErrorPermissionDenied": "L'accès via USB a été refusé.",
"usbErrorDeviceMissing": "Le périphérique USB sélectionné n'est plus disponible.",
"usbErrorInvalidPort": "Sélectionnez un périphérique USB valide.",
"usbErrorBusy": "Une autre demande de connexion USB est déjà en cours.",
"usbErrorNotConnected": "Aucun appareil USB n'est connecté.",
"usbErrorOpenFailed": "Impossible d'ouvrir l'appareil USB sélectionné.",
"usbErrorConnectFailed": "Impossible de se connecter à l'appareil USB sélectionné.",
"usbErrorUnsupported": "La communication série USB n'est pas prise en charge sur cette plateforme.",
"usbErrorAlreadyActive": "Une connexion USB est déjà établie.",
"usbErrorNoDeviceSelected": "Aucun appareil USB n'a été sélectionné.",
"usbErrorPortClosed": "La connexion USB n'est pas établie.",
"usbFallbackDeviceName": "Dispositif de communication série sur le Web",
"@usbConnectionFailed": {
"placeholders": {
"error": {
"type": "String"
}
}
},
"usbStatus_notConnected": "Sélectionnez un périphérique USB",
"usbConnectionFailed": "Échec de la connexion USB : {error}",
"usbStatus_connecting": "Connexion au périphérique USB...",
"usbStatus_searching": "Recherche de périphériques USB...",
"usbErrorConnectTimedOut": "La connexion a expiré. Assurez-vous que l'appareil dispose du firmware USB Companion.",
"@tcpStatus_connectingTo": {
"placeholders": {
"endpoint": {
"type": "String"
}
}
},
"@tcpConnectionFailed": {
"placeholders": {
"error": {
"type": "String"
}
}
},
"tcpHostLabel": "Adresse IP",
"connectionChoiceTcpLabel": "TCP",
"tcpScreenTitle": "Établir une connexion via TCP",
"tcpHostHint": "192.168.40.10",
"tcpPortLabel": "Port",
"tcpPortHint": "5000",
"tcpStatus_notConnected": "Entrez l'adresse de destination et connectez-vous.",
"tcpStatus_connectingTo": "Connexion à {endpoint}...",
"tcpErrorHostRequired": "Une adresse IP est obligatoire.",
"tcpErrorPortInvalid": "La taille du port doit être comprise entre 1 et 65535.",
"tcpErrorUnsupported": "Le protocole TCP n'est pas pris en charge sur cette plateforme.",
"tcpErrorTimedOut": "La connexion TCP a expiré.",
"tcpConnectionFailed": "Échec de la connexion TCP : {error}",
"map_showDiscoveryContacts": "Afficher les contacts de découverte",
"map_setAsMyLocation": "Définir comme ma localisation",
"@path_routeWeight": {
"placeholders": {
"weight": {
"type": "String"
},
"max": {
"type": "String"
}
}
},
"settings_privacy": "Paramètres de confidentialité",
"settings_privacySubtitle": "Contrôlez les informations partagées",
"settings_telemetryLocationMode": "Mode de localisation de la télémétrie",
"settings_telemetryEnvironmentMode": "Mode d'environnement de la télémétrie",
"settings_advertLocation": "Localisation de l'annonce",
"settings_advertLocationSubtitle": "Inclure la localisation dans l'annonce",
"settings_denyAll": "Refuser tout",
"settings_allowByContact": "Autoriser par drapeaux de contact",
"settings_privacySettingsDescription": "Choisissez les informations que votre appareil partage avec les autres.",
"settings_allowAll": "Autoriser tout",
"contact_info": "Informations de contact",
"settings_telemetryBaseMode": "Mode de base Télémétrie",
"contact_teleBase": "Base de télémétrie",
"contact_teleLoc": "Emplacement de télémétrie",
"contact_teleLocSubtitle": "Autoriser le partage des données de localisation",
"contact_teleEnv": "Environnement Télémétrie",
"contact_teleEnvSubtitle": "Autoriser le partage des données des capteurs d'environnement",
"contact_telemetry": "Télémétrie",
"contact_settings": "Paramètres de contact",
"contact_lastSeen": "Vu pour la dernière fois",
"contact_clearChat": "Effacer la conversation",
"contact_teleBaseSubtitle": "Autoriser le partage du niveau de batterie et de la télémétrie de base",
"appSettings_maxRouteWeightSubtitle": "Poids maximal qu'un chemin peut accumuler grâce aux livraisons réussies.",
"appSettings_initialRouteWeight": "Poids initial de l'itinéraire",
"appSettings_maxRouteWeight": "Poids maximal du chemin",
"appSettings_initialRouteWeightSubtitle": "Poids de départ pour les nouveaux chemins découverts",
"appSettings_routeWeightSuccessIncrement": "Incrément du poids de succès",
"appSettings_routeWeightSuccessIncrementSubtitle": "Poids ajouté à un chemin après une livraison réussie.",
"appSettings_routeWeightFailureDecrement": "Décrément du poids d'échec",
"appSettings_routeWeightFailureDecrementSubtitle": "Poids retiré d'un chemin après une tentative de livraison infructueuse.",
"appSettings_maxMessageRetries": "Nombre maximal de tentatives d'envoi",
"appSettings_maxMessageRetriesSubtitle": "Nombre de tentatives avant de marquer un message comme ayant échoué.",
"path_routeWeight": "{weight}/{max}",
"settings_telemetryModeUpdated": "Le mode télémétrie a été mis à jour",
"map_showOverlaps": "Chevauchements de clés de répéteur",
"map_runTraceWithReturnPath": "Revenir sur le même chemin.",
"@radioStats_noiseFloor": {
"placeholders": {
"noiseDbm": {
"type": "int"
}
}
},
"@radioStats_lastRssi": {
"placeholders": {
"rssiDbm": {
"type": "int"
}
}
},
"@radioStats_lastSnr": {
"placeholders": {
"snr": {
"type": "String"
}
}
},
"@radioStats_txAir": {
"placeholders": {
"seconds": {
"type": "int"
}
}
},
"@radioStats_rxAir": {
"placeholders": {
"seconds": {
"type": "int"
}
}
},
"@radioStats_stripNoise": {
"placeholders": {
"noiseDbm": {
"type": "int"
}
}
},
"chat_sendCooldown": "Veuillez patienter un instant avant de réessayer.",
"appSettings_jumpToOldestUnread": "Accéder au message le plus ancien non lu",
"appSettings_languageHu": "Hongrois",
"appSettings_jumpToOldestUnreadSubtitle": "Lorsque vous ouvrez une conversation contenant des messages non lus, faites défiler la page jusqu'au premier message non lu, plutôt que jusqu'au dernier.",
"appSettings_languageJa": "Japonais",
"appSettings_languageKo": "Coréen",
"radioStats_tooltip": "Statistiques des radios et des réseaux sans fil",
"radioStats_screenTitle": "Statistiques de radio",
"radioStats_notConnected": "Connectez-vous à un appareil pour visualiser les statistiques de la radio.",
"radioStats_firmwareTooOld": "Les statistiques radio nécessitent un firmware compatible v8 ou une version ultérieure.",
"radioStats_waiting": "En attente des données…",
"radioStats_noiseFloor": "Niveau de bruit : {noiseDbm} dBm",
"radioStats_lastRssi": "Dernier RSSI : {rssiDbm} dBm",
"radioStats_lastSnr": "Dernier SNR : {snr} dB",
"radioStats_txAir": "Temps d'antenne TX (total) : {seconds} s",
"radioStats_rxAir": "Temps d'antenne RX (total) : {seconds} s",
"radioStats_chartCaption": "Niveau de bruit (dBm) sur les échantillons récents.",
"radioStats_stripNoise": "Niveau de bruit : {noiseDbm} dBm",
"radioStats_stripWaiting": "Récupération des statistiques de la radio…",
"radioStats_settingsTile": "Statistiques de radio",
"radioStats_settingsSubtitle": "Niveau de bruit, RSSI, rapport signal/bruit (SNR) et temps d'antenne",
"@translation_downloadFailed": {
"placeholders": {
"error": {
"type": "String"
}
}
},
"translation_composerTitle": "Traduire avant d'envoyer",
"translation_enableTitle": "Activer la traduction",
"translation_title": "Traduction",
"translation_enableSubtitle": "Traduire les messages entrants et permettre la traduction avant l'envoi.",
"translation_composerSubtitle": "Contrôle l'état par défaut de l'icône de traduction du composant.",
"translation_autoIncomingTitle": "Traduire automatiquement les messages",
"translation_autoIncomingSubtitle": "Traduit automatiquement les messages pour les notifications et pour les discussions ou les canaux.",
"translation_translateMessage": "Traduire le message",
"translation_targetLanguage": "Langue cible",
"translation_useAppLanguage": "Utiliser la langue de l'application",
"translation_downloadedModelLabel": "Modèle téléchargé",
"translation_presetModelLabel": "Modèle Hugging Face préconfiguré",
"translation_manualUrlLabel": "URL du modèle manuel",
"translation_downloadModel": "Télécharger le modèle",
"translation_downloading": "Téléchargement...",
"translation_working": "Au travail...",
"translation_stop": "Arrêtez",
"translation_mergingChunks": "Fusion des fragments téléchargés dans le fichier final...",
"translation_downloadedModels": "Modèles téléchargés",
"translation_deleteModel": "Supprimer le modèle",
"translation_modelDownloaded": "Modèle de traduction téléchargé.",
"translation_downloadStopped": "Le téléchargement a été interrompu.",
"translation_downloadFailed": "Échec du téléchargement : {error}",
"translation_enterUrlFirst": "Entrez d'abord l'URL du modèle.",
"@scanner_linuxPairingPinPrompt": {
"placeholders": {
"deviceName": {
"type": "String"
}
}
},
"@translation_translateTo": {
"placeholders": {
"language": {
"type": "String"
}
}
},
"translation_composerEnabledHint": "Les messages seront traduits avant d'être envoyés.",
"translation_translateBeforeSending": "Traduire avant d'envoyer",
"translation_composerDisabledHint": "Envoyez des messages dans la langue originale, telle que vous l'avez tapée.",
"translation_messageTranslation": "Traduction du message",
"translation_translateTo": "Traduire en {language}",
"translation_translationOptions": "Options de traduction",
"translation_systemLanguage": "Langue du système",
"scanner_linuxPairingPinTitle": "Code PIN pour la connexion Bluetooth",
"scanner_linuxPairingHidePin": "Masquer le code PIN",
"scanner_linuxPairingPinPrompt": "Entrez le code PIN pour {deviceName} (laissez vide si nécessaire).",
"scanner_linuxPairingShowPin": "Afficher le code PIN",
"repeater_cliQuickClockSync": "Synchronisation de l'horloge",
"repeater_cliQuickDiscovery": "Découvrir les voisins",
"@repeater_clockSyncAfterLogin": {
"description": "Repeater setting: auto sync device clock after successful login"
},
"@repeater_clockSyncAfterLoginSubtitle": {
"description": "Repeater setting subtitle: describes the clock sync after login behavior"
},
"repeater_clockSyncAfterLoginSubtitle": "Envoyer automatiquement une notification \"synchronisation de l'heure\" après une connexion réussie.",
"repeater_clockSyncAfterLogin": "Synchronisation de l'horloge après la connexion",
"repeater_guestTools": "Outils pour les invités",
"chat_sendMessage": "Envoyer un message",
"room_guest": "Informations sur le serveur",
"repeater_guest": "Informations sur les répéteurs",
"@notification_messagesCount": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"repeater_getCategory": "Obtenir des valeurs",
"repeater_powerMgmt": "Gestion de l'énergie",
"repeater_sensors": "Capteurs",
"repeater_cliHelpPowerOff": "Éteint l'appareil. (aucune réponse n'est attendue)",
"repeater_cliHelpClkReboot": "Réinitialise l'horloge à une époque connue et redémarre l'appareil.",
"repeater_cliHelpAdvertZeroHop": "Envoie une publicité sans intermédiaire (uniquement aux voisins immédiats).",
"repeater_cliHelpStartOta": "Démarre une mise à jour du firmware par voie radio sur les cartes prises en charge.",
"repeater_cliHelpTime": "Définit l'heure de l'appareil sur les secondes de l'époque Unix spécifiée. L'heure ne peut pas reculer.",
"repeater_cliHelpBoard": "Indique le fabricant du panneau / l'identifiant du matériel.",
"repeater_cliHelpDiscoverNeighbors": "Envoie une requête de découverte de nœuds aux voisins proches. (Uniquement pour les répéteurs)",
"repeater_cliHelpPowersaving": "Indique si le mode d'économie d'énergie est activé ou désactivé.",
"repeater_cliHelpPowersavingOnOff": "Active ou désactive le mode d'économie d'énergie (si pris en charge).",
"repeater_cliHelpErase": "(Uniquement pour les appareils) Formate le système de fichiers de l'appareil. Efface tous les paramètres et les contacts.",
"repeater_cliHelpSetDutyCycle": "Définit le cycle de transmission maximal autorisé en pourcentage (de 1 à 100). Ajuste automatiquement le facteur de temps d'émission.",
"repeater_cliHelpSetPrvKey": "(Uniquement pour les séries) Remplace la clé privée d'identification de l'appareil. Un redémarrage est nécessaire pour appliquer. Génère une nouvelle clé publique.",
"repeater_cliHelpSetRadioRxGain": "(Uniquement pour les SX126x) Active le gain RX amplifié pour une meilleure sensibilité à des courants plus élevés.",
"repeater_cliHelpSetOwnerInfo": "Définit la chaîne d'informations de contact du propriétaire, qui figure dans les annonces. Utilisez '|' pour les sauts de ligne.",
"repeater_cliHelpSetPathHashMode": "Définit le mode de hachage de chemin. 0 = mode ancien, 1 = mode standard, 2 = mode strict. Influence la façon dont les chemins de routage sont correspondus.",
"repeater_cliHelpSetLoopDetect": "Définit la sensibilité de la détection des boucles de routage : désactivée, minimale, modérée ou stricte.",
"repeater_cliHelpSetFreq": "(Uniquement pour les modèles série) Permet de régler rapidement la fréquence. Redémarrage nécessaire. Il est préférable d'utiliser l'option \"réglage radio\" pour configurer tous les paramètres radio.",
"repeater_cliHelpSetBridgeChannel": "(Uniquement pour le pont ESPNow) Définit le canal WiFi (de 1 à 14) utilisé par le pont.",
"repeater_cliHelpGetName": "Affiche le nom du nœud configuré.",
"repeater_cliHelpGetRole": "Indique le rôle du firmware (répéteur, serveur de pièce, etc.).",
"repeater_cliHelpGetPublicKey": "Affiche la clé publique du dispositif.",
"repeater_cliHelpGetPrvKey": "(Uniquement pour les séries) Affiche la clé privée de l'appareil. Traitez-la comme une information confidentielle.",
"repeater_cliHelpGetRepeat": "Indique si le transfert de paquets (en tant que routeur) est activé ou désactivé.",
"repeater_cliHelpGetTx": "Indique la puissance actuelle en dBm.",
"repeater_cliHelpGetFreq": "Affiche la fréquence radio configurée en MHz.",
"repeater_cliHelpGetRadio": "Affiche tous les paramètres radio : fréquence, largeur de bande, facteur de dispersion, taux de codage.",
"repeater_cliHelpGetRadioRxGain": "(Uniquement pour les SX126x) Affiche l'état du gain amplifié de la réception.",
"repeater_cliHelpGetAf": "Indique le facteur de temps d'antenne actuel.",
"repeater_cliHelpGetDutyCycle": "Affiche le cycle de fonctionnement actuel autorisé en pourcentage.",
"repeater_cliHelpGetIntThresh": "Indique le seuil d'interférence du canal en dB.",
"repeater_cliHelpGetAgcResetInterval": "Indique l'intervalle de réinitialisation de l'AGC en secondes.",
"repeater_cliHelpGetMultiAcks": "Indique si le mode \"double ACK\" est activé (1) ou désactivé (0).",
"repeater_cliHelpGetAllowReadOnly": "Indique si l'accès en lecture seule pour les invités est autorisé.",
"repeater_cliHelpGetAdvertInterval": "Indique l'intervalle publicitaire local en minutes.",
"repeater_cliHelpGetFloodAdvertInterval": "Indique l'intervalle publicitaire pour la diffusion de l'annonce en heures.",
"repeater_cliHelpGetGuestPassword": "Affiche le mot de passe invité configuré.",
"repeater_cliHelpGetLat": "Affiche la latitude configurée.",
"repeater_cliHelpGetLon": "Affiche la longitude configurée.",
"repeater_cliHelpGetRxDelay": "Affiche la valeur de base de rxdelay.",
"repeater_cliHelpGetTxDelay": "Indique le facteur de délai de transmission en mode flood.",
"repeater_cliHelpGetDirectTxDelay": "Indique le facteur de délai direct.",
"repeater_cliHelpGetFloodMax": "Indique le nombre maximal de fois où le niveau de l'eau a atteint son point culminant.",
"repeater_cliHelpGetOwnerInfo": "Affiche la chaîne d'informations de contact du propriétaire.",
"repeater_cliHelpGetPathHashMode": "Affiche le mode \"hash de chemin\" (0/1/2).",
"repeater_cliHelpGetLoopDetect": "Illustre la sensibilité à la détection des boucles.",
"repeater_cliHelpGetAcl": "(Uniquement pour les séries) Liste les entrées de contrôle d'accès sur un répéteur.",
"repeater_cliHelpGetBridgeEnabled": "Indique si le pont est activé.",
"repeater_cliHelpGetBridgeDelay": "Indique le délai du pont en millisecondes.",
"repeater_cliHelpGetBridgeSource": "Indique si le pont transmet des paquets RX ou TX.",
"repeater_cliHelpGetBridgeBaud": "(Uniquement pour le pont RS232) Affiche la vitesse de communication du pont.",
"repeater_cliHelpGetBridgeChannel": "(Uniquement pour le pont ESPNow) Affiche le canal WiFi du pont.",
"repeater_cliHelpGetBridgeSecret": "(Uniquement pour le pont ESPNow) Affiche la clé partagée du pont.",
"repeater_cliHelpGetBootloaderVer": "(Uniquement pour le NRF52) Affiche la version du chargeur initial.",
"repeater_cliHelpGetAdcMultiplier": "Affiche le multiplicateur de l'ADC (mise à l'échelle de la tension de la batterie).",
"repeater_cliHelpGetPwrMgtSupport": "Indique si le système dispose de fonctionnalités de gestion de l'alimentation.",
"repeater_cliHelpGetPwrMgtSource": "Indique la source d'alimentation actuelle : externe ou batterie.",
"repeater_cliHelpGetPwrMgtBootReason": "Indique les raisons les plus récentes de réinitialisation et d'arrêt.",
"repeater_cliHelpGetPwrMgtBootMv": "Affiche la tension de la batterie au démarrage, en millivolts (mV).",
"repeater_cliHelpSensorGet": "Lit une valeur de configuration personnalisée pour un capteur en utilisant une touche.",
"repeater_cliHelpSensorSet": "Crée une configuration personnalisée pour un capteur.",
"repeater_cliHelpSensorList": "Affiche toutes les configurations de capteurs personnalisées, avec une pagination à partir d'un index de départ optionnel.",
"repeater_cliHelpRegionDefault": "Affiche la portée régionale par défaut actuelle.",
"repeater_cliHelpRegionDefaultSet": "Définit la portée régionale par défaut. Utilisez \"<null>\" pour la réinitialiser.",
"repeater_cliHelpRegionListAllowed": "Énumère les régions autorisant la circulation des véhicules en cas de flood.",
"repeater_cliHelpRegionListDenied": "Liste les régions qui interdisent la circulation en cas de flood.",
"repeater_cliHelpStatsPackets": "(Uniquement pour les séries) Affiche des statistiques au niveau des paquets.",
"repeater_cliHelpStatsRadio": "(Uniquement pour les séries) Affiche les statistiques de la radio.",
"repeater_cliHelpStatsCore": "(Uniquement pour les séries) Affiche les statistiques du micrologicem intégré.",
"common_done": "Terminé",
"background_serviceTitle": "MeshCore en cours d'exécution",
"background_serviceText": "Maintien de la connexion BLE",
"appSettings_translationModelDeleted": "Supprimé {name}",
"@appSettings_translationModelDeleted": {
"placeholders": {
"name": {
"type": "String"
}
}
},
"appSettings_translationModelDeleteFailed": "Échec de la suppression : {error}",
"@appSettings_translationModelDeleteFailed": {
"placeholders": {
"error": {
"type": "String"
}
}
},
"channels_channelUpdateFailed": "Échec de la mise à jour du canal : {error}",
"@channels_channelUpdateFailed": {
"placeholders": {
"error": {
"type": "String"
}
}
},
"map_type": "Type",
"map_path": "Chemin",
"map_location": "Localisation",
"map_estLocation": "Localisation estimée",
"map_publicKey": "Clé publique",
"map_publicKeyPrefixHint": "p. ex. ab12",
"contact_typeChat": "Chat",
"contact_typeRepeater": "Répéteur",
"contact_typeRoom": "Room",
"contact_typeSensor": "Capteur",
"contact_typeUnknown": "Inconnu",
"channels_via": "via {path}",
"@channels_via": {
"placeholders": {
"path": {
"type": "String"
}
}
},
"chat_score": "Score",
"settings_multiAck": "Plusieurs accusés de réception",
"map_sharedAt": "Partagé",
"@losBlockedSpotChip": {
"placeholders": {
"distance": {
"type": "String"
},
"distanceUnit": {
"type": "String"
},
"obstruction": {
"type": "String"
},
"heightUnit": {
"type": "String"
}
}
},
"@losSelectedObstructionDetails": {
"placeholders": {
"obstruction": {
"type": "String"
},
"heightUnit": {
"type": "String"
},
"distanceFromA": {
"type": "String"
},
"distanceUnit": {
"type": "String"
},
"distanceFromB": {
"type": "String"
}
}
},
"losSelectedObstructionTitle": "Obstruction sélectionnée",
"losBlockedSpotsTitle": "Places occupés",
"losBlockedSpotsHint": "Sélectionnez un emplacement bloqué pour le mettre en évidence sur la carte.",
"losSelectedObstructionDetails": "Bloqué par {obstruction}, à une hauteur de {heightUnit}, à une distance de {distanceFromA} par rapport à A et à une distance de {distanceFromB} par rapport à B ({distanceUnit}).",
"losBlockedSpotChip": "{distance} {distanceUnit} • {obstruction} {heightUnit}",
"settings_companionDebugLog": "Journal de débogage associé",
"chat_markAsUnread": "Signaler comme non lu",
"chat_newMessages": "Nouveaux messages",
"settings_companionDebugLogSubtitle": "Commandes, réponses et données brutes pour les protocoles BLE/TCP/USB",
"repeater_chanUtil": "Utilisation du canal",
"@routing_lastWorked": {
"placeholders": {
"when": {
"type": "String"
}
}
},
"@routing_deliveryCounts": {
"placeholders": {
"successes": {
"type": "int"
},
"failures": {
"type": "int"
}
}
},
"@pathEditor_hopCounter": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"@pathEditor_invalidTokens": {
"placeholders": {
"tokens": {
"type": "String"
}
}
},
"@channels_communityShortId": {
"placeholders": {
"id": {
"type": "String"
}
}
},
"common_undo": "Annuler",
"messageStatus_sent": "Envoyé",
"messageStatus_delivered": "Livré",
"messageStatus_pending": "Envoi en cours",
"messageStatus_failed": "Échec de l'envoi",
"messageStatus_repeated": "Reçu plusieurs fois",
"contacts_searchOpen": "Rechercher des contacts",
"contacts_moreOptions": "Plus d'options",
"contacts_searchClose": "Recherche avancée",
"routing_title": "Routage",
"routing_modeAuto": "Auto",
"routing_modeFlood": "Flood",
"routing_modeManual": "Manuel",
"routing_modeFloodHint": "Diffusion via tous les répéteurs. La méthode la plus fiable, mais qui utilise plus de temps d'antenne.",
"routing_modeAutoHint": "Sélectionne automatiquement le meilleur chemin connu, et utilise le flood si aucun chemin n'est connu.",
"routing_modeManualHint": "Envoie toujours selon le chemin exact que vous avez défini.",
"routing_currentRoute": "Route actuelle",
"routing_directNoHops": "Direct — sans relais",
"routing_noPathYet": "Aucun chemin pour le moment. Le prochain message passera en flood jusqu'à ce qu'une route soit découverte.",
"routing_floodBroadcast": "Diffusion via tous les répéteurs",
"routing_editPath": "Modifier le chemin",
"routing_forgetPath": "Oublier le chemin",
"routing_knownPaths": "Chemins connus",
"routing_knownPathsHint": "Touchez un chemin pour l'utiliser.",
"routing_inUse": "En cours d'utilisation",
"routing_qualityStrong": "Premier saut fort",
"routing_qualityGood": "Premier saut correct",
"routing_qualityFair": "Premier saut moyen",
"routing_qualityWorked": "A déjà fonctionné",
"routing_qualityFlood": "Entendu via flood",
"routing_qualityUntested": "Non testé",
"routing_lastWorked": "a fonctionné {when}",
"routing_neverWorked": "jamais confirmé",
"routing_floodDelivery": "Livraison flood",
"pathEditor_hopCounter": "{count} sur 64 sauts",
"pathEditor_title": "Créer un chemin",
"pathEditor_noHops": "Aucun saut pour le moment. Touchez les répéteurs ci-dessous pour les ajouter dans l'ordre, ou enregistrez sans saut pour envoyer directement.",
"pathEditor_addHops": "Ajouter les sauts dans l'ordre",
"pathEditor_searchRepeaters": "Rechercher des répétiteurs",
"pathEditor_advancedHex": "Avancé : chemin hexadécimal brut",
"pathEditor_hexLabel": "Préfixes hexadécimaux",
"pathEditor_hexHelper": "Deux caractères hexadécimaux par saut, séparés par des virgules.",
"pathEditor_invalidTokens": "Invalide : {tokens}",
"pathEditor_tooManyHops": "Maximum 64 sauts",
"pathEditor_usePath": "Utiliser ce chemin",
"pathEditor_removeHop": "Supprimer le saut",
"pathEditor_unknownHop": "Répéteur non identifié",
"map_zoomIn": "Zoom avant",
"routing_deliveryCounts": "{successes} livrés, {failures} échoués",
"map_zoomOut": "Zoom arrière",
"map_centerMap": "Centrer la carte",
"chrome_bluetoothRequiresChromium": "Web Bluetooth nécessite un navigateur Chromium.",
"channels_communityShortId": "ID : {id}…",
"pathTrace_legendGpsConfirmed": "GPS confirmé",
"pathTrace_legendInferred": "Position déduite",
"@pathMap_hopOf": {
"placeholders": {
"current": {
"type": "int"
},
"total": {
"type": "int"
}
}
},
"@pathMap_observedPaths": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"@pathMap_alternate": {
"placeholders": {
"index": {
"type": "int"
}
}
},
"@pathMap_hopCount": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"@pathMap_gpsCount": {
"placeholders": {
"confirmed": {
"type": "int"
},
"total": {
"type": "int"
}
}
},
"@pathMap_sharedNodeCount": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"@pathMap_partialAnimation": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"scanner_bluetoothWebUnsupported": "La fonctionnalité Bluetooth n'est pas disponible dans le navigateur. Veuillez vous connecter via USB à la place.",
"map_activity": "Activité",
"map_searchHint": "Rechercher par nom ou ID de nœud",
"map_online": "En ligne",
"map_recent": "Récents",
"map_stale": "Rancide",
"map_visible": "Visible",
"map_hidden": "Masqué",
"map_centerOnNode": "Centrer sur le nœud",
"map_details": "Détails",
"map_noGps": "Aucun GPS",
"map_noResults": "Aucun nœud correspondant",
"pathMap_viewSingle": "Simple",
"pathMap_viewCombined": "Combiné",
"pathMap_play": "Lecture",
"pathMap_pause": "Pause",
"pathMap_replay": "Rejouer",
"pathMap_stepBack": "Saut précédent",
"pathMap_stepForward": "Saut suivant",
"pathMap_animationOn": "Afficher l'animation des paquets",
"pathMap_animationOff": "Masquer l'animation des paquets",
"pathMap_hopOf": "Saut {current} sur {total}",
"pathMap_observedPaths": "Chemins observés : {count}",
"pathMap_primary": "Principal",
"pathMap_alternate": "Alternative {index}",
"pathMap_hopCount": "{count, plural, =1{1 saut} other{{count} sauts}}",
"pathMap_legendShared": "Segment partagé",
"pathMap_legendEstimated": "Segment estimé",
"pathMap_sharedNodeCount": "Utilisé par {count} chemins",
"pathMap_partialAnimation": "{count, plural, =1{Un saut n'a pas de localisation — le chemin indiqué est partiel} other{{count} sauts n'ont pas de localisation — le chemin indiqué est partiel}}",
"pathMap_showAllPaths": "Afficher tout",
"pathMap_hidePath": "Masquer le chemin",
"pathMap_showPath": "Afficher le chemin",
"pathMap_collapsePanel": "Réduire le panneau",
"pathMap_expandPanel": "Développer le panneau",
"pathMap_noLocation": "Aucune localisation",
"pathMap_followPacket": "Verrouiller la vue sur le paquet",
"pathMap_unfollowPacket": "Déverrouiller la vue du paquet",
"pathMap_gpsCount": "{confirmed}/{total} GPS"
}