1.0.1 is the first desktop build that works on Linux at all. It also carries the desktop.callsNotHere string these dictionaries now define for it — calls are not available on the Linux desktop yet and the app says so rather than failing.
888 lines
55 KiB
JSON
888 lines
55 KiB
JSON
{
|
||
"htmlLang": "fr",
|
||
"ogLocale": "fr_FR",
|
||
"dir": "ltr",
|
||
"nativeName": "Français",
|
||
"abbr": "FR",
|
||
"meta": {
|
||
"title": "SecureBit.chat - Messagerie privée et chiffrée",
|
||
"description": "SecureBit.chat est une messagerie pair-à-pair gratuite et chiffrée de bout en bout, qui fonctionne entièrement dans votre navigateur. Aucun compte, aucun serveur ne conserve vos messages : ECDH P-384, AES-256-GCM et vérification SAS en personne.",
|
||
"keywords": "messagerie chiffrée, chiffrement de bout en bout, chat pair-à-pair, messagerie P2P, ECDH, DTLS, vérification SAS, WebRTC, chat privé, chat sécurisé, sans serveur, sans compte, protection MITM, PFS",
|
||
"ogTitle": "SecureBit.chat - Chat pair-à-pair chiffré de bout en bout",
|
||
"ogDescription": "Une messagerie sécurisée qui fonctionne entièrement dans votre navigateur. Aucun compte, aucun serveur ne conserve vos messages. Utilisez vos propres serveurs STUN/TURN : nous ne vous imposons rien.",
|
||
"ogImageAlt": "SecureBit.chat - chat pair-à-pair chiffré de bout en bout",
|
||
"twitterTitle": "SecureBit.chat - Chat pair-à-pair chiffré de bout en bout",
|
||
"twitterDescription": "Une messagerie sécurisée qui fonctionne entièrement dans votre navigateur. Aucun compte, aucun serveur ne conserve vos messages.",
|
||
"twitterImageAlt": "SecureBit.chat - chat pair-à-pair chiffré de bout en bout"
|
||
},
|
||
"schema": {
|
||
"siteDescription": "Chat pair-à-pair chiffré de bout en bout, fonctionnant entièrement dans le navigateur.",
|
||
"appDescription": "Une messagerie pair-à-pair gratuite et chiffrée de bout en bout. Aucun compte, aucun serveur ne conserve les messages : ECDH P-384, AES-256-GCM et vérification SAS en personne.",
|
||
"operatingSystem": "Toute plateforme (navigateur web moderne)",
|
||
"browserRequirements": "Nécessite WebRTC et l'API Web Crypto",
|
||
"featureList": [
|
||
"Chiffrement de bout en bout (ECDH P-384, AES-256-GCM)",
|
||
"Connexion pair-à-pair par WebRTC, sans serveur de messages",
|
||
"Vérification SAS en personne contre les attaques de l'intercepteur",
|
||
"Serveurs STUN/TURN personnels et mode de confidentialité relais uniquement",
|
||
"Transfert de fichiers chiffré",
|
||
"Application web progressive installable, utilisable hors ligne"
|
||
]
|
||
},
|
||
"ui": {
|
||
"language.label": "Langue",
|
||
"language.suggest.text": "Cette page est aussi disponible en français.",
|
||
"language.suggest.cta": "Lire en français",
|
||
"language.suggest.dismiss": "Fermer",
|
||
"community.title": "Construisez l'avenir de la vie privée",
|
||
"community.description": "SecureBit grandit grâce à sa communauté. Vos idées et vos retours façonnent l'avenir des communications sécurisées, développées à ciel ouvert, avec une validation ASN.1 complète de bout en bout.",
|
||
"community.github": "Dépôt GitHub",
|
||
"community.feedback": "Vos retours",
|
||
"unique.eyebrow": "Ce qui nous distingue",
|
||
"unique.heading": "Pourquoi SecureBit est unique",
|
||
"unique.s1.titleTop": "Cœur de chiffrement",
|
||
"unique.s1.titleBottom": "en couches",
|
||
"unique.s1.collapsed": "Cœur de chiffrement",
|
||
"unique.s1.desc": "Échange de clés ECDH P-384, charges utiles en AES-256-GCM, signatures ECDSA et validation ASN.1 complète, réunis en une seule chaîne durcie.",
|
||
"unique.s1.tags": [
|
||
"ECDH P-384",
|
||
"AES-256-GCM",
|
||
"ECDSA",
|
||
"ASN.1"
|
||
],
|
||
"unique.s2.titleTop": "Pur P2P",
|
||
"unique.s2.titleBottom": "sur WebRTC",
|
||
"unique.s2.collapsed": "Pur P2P sur WebRTC",
|
||
"unique.s2.desc": "Les messages passent directement d'un appareil à l'autre par WebRTC. Aucun relais ne retient vos données : le serveur aide seulement deux pairs à se trouver.",
|
||
"unique.s2.tags": [
|
||
"DTLS 1.3",
|
||
"Sans relais"
|
||
],
|
||
"unique.s3.titleTop": "Confidentialité",
|
||
"unique.s3.titleBottom": "persistante parfaite",
|
||
"unique.s3.collapsed": "Confidentialité persistante",
|
||
"unique.s3.desc": "Les clés de session tournent en continu et sont jetées après usage : une clé compromise n'ouvre jamais les conversations passées.",
|
||
"unique.s3.tags": [
|
||
"Clés éphémères",
|
||
"Rotation automatique"
|
||
],
|
||
"unique.s4.titleTop": "Brouillage",
|
||
"unique.s4.titleBottom": "du trafic",
|
||
"unique.s4.collapsed": "Brouillage du trafic",
|
||
"unique.s4.desc": "La taille des paquets et leur cadence sont complétées et rendues aléatoires, ce qui masque les motifs de métadonnées à quiconque observe la ligne.",
|
||
"unique.s4.tags": [
|
||
"Remplissage de paquets",
|
||
"Décalage temporel"
|
||
],
|
||
"unique.s5.titleTop": "Aucune collecte",
|
||
"unique.s5.titleBottom": "de données",
|
||
"unique.s5.collapsed": "Aucune collecte de données",
|
||
"unique.s5.desc": "Aucun compte, aucun journal, aucun message conservé. Il n'y a rien sur un serveur à faire fuiter, à saisir ou à vendre.",
|
||
"unique.s5.tags": [
|
||
"Sans compte",
|
||
"Sans journaux"
|
||
],
|
||
"partners.eyebrow": "Partenaires et écosystème",
|
||
"partners.heading": "Nos partenaires nous font confiance",
|
||
"partners.aegis.desc": "Partenaire financier qui protège les communications financières confidentielles de tout son portefeuille.",
|
||
"partners.aegis.role": "Investisseur stratégique",
|
||
"partners.furilabs.desc": "Téléphones Linux axés sur la vie privée, livrés avec SecureBit comme canal sécurisé par défaut.",
|
||
"partners.furilabs.role": "Partenaire technologique",
|
||
"partners.inviteTitle": "Devenir partenaire",
|
||
"partners.inviteDesc": "Vous construisez du matériel ou de l'infrastructure pour la vie privée ? Intégrons SecureBit.",
|
||
"partners.inviteCta": "Entamer la conversation",
|
||
"roadmap.eyebrow": "Feuille de route",
|
||
"roadmap.heading": "L'évolution de SecureBit",
|
||
"roadmap.subheading": "Du premier prototype à un réseau décentralisé résistant au quantique, avec une validation ASN.1 complète à chaque couche.",
|
||
"roadmap.progress": "{shipped} jalons sur {total} atteints",
|
||
"roadmap.upcoming": "{upcoming} à venir",
|
||
"roadmap.keyFeatures": "Fonctions clés",
|
||
"roadmap.status.released": "Publié",
|
||
"roadmap.status.current": "En cours",
|
||
"roadmap.status.dev": "En développement",
|
||
"roadmap.status.planned": "Planifié",
|
||
"roadmap.status.research": "Recherche",
|
||
"hero.headlineTop": "Une ligne directe",
|
||
"hero.headlineBottom": "que vous seuls pouvez lire.",
|
||
"hero.subheading": "Les clés sont créées sur votre appareil et échangées directement entre pairs. Aucun compte, aucun serveur ne conserve vos messages.",
|
||
"hero.diagramAlt": "Une ligne chiffrée directe vers un pair, rejointe par deux autres pairs",
|
||
"intro.createTitle": "Créer un canal",
|
||
"intro.createDesc": "Votre appareil génère les clés et une invitation à usage unique. Rien de tout cela ne passe par un serveur.",
|
||
"intro.createCta": "Générer les clés et l'invitation",
|
||
"intro.joinTitle": "Rejoindre un canal",
|
||
"intro.scanTitle": "Scanner le QR avec la caméra",
|
||
"intro.scanSubtitle": "Le plus rapide : visez l'écran de votre correspondant",
|
||
"intro.orPasteCode": "ou collez le code",
|
||
"intro.pastePlaceholder": "Collez ici le code d'invitation…",
|
||
"intro.connect": "Se connecter",
|
||
"intro.connecting": "Traitement…",
|
||
"roadmap.r1.title": "Début du développement",
|
||
"roadmap.r1.sub": "Idée, prototype et mise en place de l'infrastructure",
|
||
"roadmap.r1.date": "Début 2025",
|
||
"roadmap.r1.features": [
|
||
"Concept et exigences définis",
|
||
"Choix de la pile : WebRTC, P2P, cryptographie",
|
||
"Premiers prototypes de messagerie",
|
||
"Création du dépôt et de l'intégration continue",
|
||
"Architecture de chiffrement de base",
|
||
"Conception UX/UI"
|
||
],
|
||
"roadmap.r2.title": "Version alpha",
|
||
"roadmap.r2.sub": "Première alpha publique : chat simple et échange de clés",
|
||
"roadmap.r2.date": "Printemps 2025",
|
||
"roadmap.r2.features": [
|
||
"Messagerie P2P simple par WebRTC",
|
||
"Chiffrement de bout en bout simple (schéma de démonstration)",
|
||
"Signalisation et reconnexion stables",
|
||
"Interface minimale pour les tests",
|
||
"Retours des premiers testeurs"
|
||
],
|
||
"roadmap.r3.title": "Sécurité durcie",
|
||
"roadmap.r3.sub": "Renforcement de la sécurité et publication de la branche stable",
|
||
"roadmap.r3.date": "Été 2025",
|
||
"roadmap.r3.features": [
|
||
"ECDH/ECDSA en production",
|
||
"Confidentialité persistante et rotation des clés",
|
||
"Contrôles d'authentification améliorés",
|
||
"Chiffrement des fichiers et envoi de charges volumineuses",
|
||
"Audit des processus cryptographiques de base"
|
||
],
|
||
"roadmap.r4.title": "Montée en charge et stabilité",
|
||
"roadmap.r4.sub": "Mise à l'échelle du réseau et gains de stabilité",
|
||
"roadmap.r4.date": "Automne 2025",
|
||
"roadmap.r4.features": [
|
||
"Optimisation des connexions P2P et du passage de NAT",
|
||
"Mécanismes de reconnexion et files de messages",
|
||
"Consommation de batterie réduite sur mobile",
|
||
"Synchronisation entre plusieurs appareils",
|
||
"Outils de supervision et de journalisation pour les développeurs"
|
||
],
|
||
"roadmap.r5.title": "La vie privée d'abord",
|
||
"roadmap.r5.sub": "Priorité à la vie privée : réduire les métadonnées",
|
||
"roadmap.r5.date": "Hiver 2025",
|
||
"roadmap.r5.features": [
|
||
"Protection des métadonnées et empreinte réduite",
|
||
"Expériences de routage en oignon et de DHT",
|
||
"Options de connexion anonyme",
|
||
"Préparation de l'audit de code ouvert",
|
||
"Vérification des correspondants améliorée"
|
||
],
|
||
"roadmap.r6.title": "Enhanced Security Edition",
|
||
"roadmap.r6.sub": "Cryptographie de niveau militaire en 18 couches, avec validation ASN.1 complète",
|
||
"roadmap.r6.date": "Fin 2025",
|
||
"roadmap.r6.features": [
|
||
"Triple protection : ECDH + DTLS + SAS",
|
||
"Chiffrement ECDH P-384 et AES-GCM 256 bits",
|
||
"Vérification de l'empreinte DTLS",
|
||
"Vérification SAS (chaîne d'authentification courte)",
|
||
"Confidentialité persistante avec rotation des clés",
|
||
"Protection renforcée contre les attaques de l'intercepteur",
|
||
"Validation ASN.1 DER complète",
|
||
"Vérification des OID et des points EC",
|
||
"Validation de la structure SPKI",
|
||
"Architecture P2P sur WebRTC",
|
||
"Protection des métadonnées",
|
||
"Code ouvert à 100 %"
|
||
],
|
||
"roadmap.r7.title": "Desktop Edition",
|
||
"roadmap.r7.sub": "Applications de bureau natives pour Windows, macOS et Linux",
|
||
"roadmap.r7.date": "Début 2026",
|
||
"roadmap.r7.features": [
|
||
"Application Windows (Tauri v2)",
|
||
"Application macOS (Tauri v2)",
|
||
"AppImage Linux (Tauri v2)",
|
||
"Notifications en temps réel",
|
||
"Reconnexion automatique",
|
||
"Synchronisation entre appareils",
|
||
"Interface remaniée",
|
||
"Fichiers jusqu'à 100 Mo"
|
||
],
|
||
"roadmap.r8.title": "Voix et appels sécurisés",
|
||
"roadmap.r8.sub": "Messages vocaux, appels audio et vidéo chiffrés",
|
||
"roadmap.r8.date": "Début 2026",
|
||
"roadmap.r8.features": [
|
||
"Messages vocaux chiffrés de bout en bout",
|
||
"Appels audio chiffrés en tête-à-tête (WebRTC)",
|
||
"Appels vidéo chiffrés en tête-à-tête (WebRTC)",
|
||
"Confidentialité persistante pour le flux en direct",
|
||
"Flux média protégés par SRTP/DTLS",
|
||
"Vérification SAS pendant l'appel",
|
||
"Notifications d'appel et reconnexion automatique",
|
||
"Média P2P à faible latence"
|
||
],
|
||
"roadmap.r9.title": "Communication de groupe",
|
||
"roadmap.r9.sub": "Discussions de groupe sans renoncer à la vie privée",
|
||
"roadmap.r9.date": "Maintenant",
|
||
"roadmap.r9.features": [
|
||
"Groupes P2P jusqu'à 8 participants",
|
||
"Distribution en maillage, avec relais signé en secours",
|
||
"Un seul code de sécurité de groupe, comparé par tous",
|
||
"Cérémonie d'engagement puis de révélation, contre la recherche de codes",
|
||
"Clés d'identité propres au groupe, éphémères par conception",
|
||
"Composition signée, ordonnée par époques",
|
||
"Messages signés : une transcription divergente devient démontrable",
|
||
"Aucun serveur, aucune clé de groupe partagée, aucun historique"
|
||
],
|
||
"roadmap.r10.title": "Mobile Edition",
|
||
"roadmap.r10.sub": "Applications natives pour iOS et Android",
|
||
"roadmap.r10.date": "2e trimestre 2027",
|
||
"roadmap.r10.features": [
|
||
"Application iOS native (Swift/SwiftUI)",
|
||
"Application Android native (Kotlin/Jetpack Compose)",
|
||
"Prise en charge PWA sur les navigateurs mobiles",
|
||
"Notifications push en temps réel",
|
||
"Optimisation de la batterie",
|
||
"Interface adaptée au mobile",
|
||
"File d'attente des messages hors ligne",
|
||
"Authentification biométrique"
|
||
],
|
||
"roadmap.r11.title": "Édition résistante au quantique",
|
||
"roadmap.r11.sub": "Protection contre les ordinateurs quantiques",
|
||
"roadmap.r11.date": "4e trimestre 2027",
|
||
"roadmap.r11.features": [
|
||
"Cryptographie post-quantique CRYSTALS-Kyber",
|
||
"Signatures numériques SPHINCS+",
|
||
"Schéma hybride : classique et post-quantique",
|
||
"Échange de clés résistant au quantique",
|
||
"Algorithmes de hachage mis à jour",
|
||
"Migration des sessions existantes",
|
||
"Compatibilité avec la v5.x",
|
||
"Protocoles résistants au quantique"
|
||
],
|
||
"roadmap.r12.title": "Réseau décentralisé",
|
||
"roadmap.r12.sub": "Un réseau entièrement décentralisé",
|
||
"roadmap.r12.date": "2028",
|
||
"roadmap.r12.features": [
|
||
"Réseau maillé de nœuds",
|
||
"DHT pour la découverte des pairs",
|
||
"Routage en oignon intégré",
|
||
"Tokenomique et incitations pour les nœuds",
|
||
"Gouvernance par une DAO",
|
||
"Interopérabilité avec d'autres réseaux",
|
||
"Compatibilité multiplateforme",
|
||
"Réseau auto-réparateur"
|
||
],
|
||
"roadmap.r13.title": "Assistant de confidentialité par IA",
|
||
"roadmap.r13.sub": "L'IA au service de la vie privée et de la sécurité",
|
||
"roadmap.r13.date": "2028+",
|
||
"roadmap.r13.features": [
|
||
"Analyse locale des menaces par IA",
|
||
"Détection automatique de l'intercepteur",
|
||
"Cryptographie adaptative",
|
||
"Recommandations de sécurité personnalisées",
|
||
"Apprentissage automatique à divulgation nulle",
|
||
"Assistant IA privé",
|
||
"Sécurité prédictive",
|
||
"Protection autonome contre les attaques"
|
||
],
|
||
"handshake.step1": "Génération de la paire de clés ECDH P-384",
|
||
"handshake.step2": "Dérivation du code de vérification",
|
||
"handshake.step3": "Fixation de la confidentialité persistante",
|
||
"handshake.securingTitle": "Sécurisation de votre canal",
|
||
"handshake.answerTitle": "Préparation de votre réponse",
|
||
"handshake.securingDesc": "Nous forgeons des clés assez solides pour résister à toute altération.",
|
||
"handshake.shareTitle": "Partagez votre invitation",
|
||
"handshake.sendAnswerTitle": "Renvoyez votre réponse",
|
||
"handshake.shareDesc": "Montrez le QR ou envoyez le code à votre correspondant. Il est à usage unique et expire vite.",
|
||
"handshake.sendAnswerDesc": "Donnez cette réponse à la personne qui a créé le canal pour qu'elle termine la poignée de main.",
|
||
"handshake.establish": "Établir la connexion",
|
||
"handshake.thenReceive": "Recevez ensuite la réponse que votre correspondant renvoie",
|
||
"handshake.pasteAnswerPlaceholder": "Collez le code de réponse…",
|
||
"handshake.answerSentNote": "Envoyez cette réponse à la personne qui a créé le canal, puis patientez : la discussion s'ouvre dès qu'elle se connecte.",
|
||
"handshake.qrHint": "Gardez ceci ouvert jusqu'à ce que votre correspondant ait capturé le code.",
|
||
"handshake.qrHintFrames": "La poignée de main est répartie sur {frames} images : gardez ceci ouvert jusqu'à ce que votre correspondant les ait toutes capturées.",
|
||
"verify.title": "Vérification de sécurité",
|
||
"verify.desc": "Comparez ce code de sécurité avec votre correspondant par un autre canal (voix ou en personne), puis saisissez-le pour ouvrir la discussion.",
|
||
"verify.enterLabel": "Saisissez le code vérifié",
|
||
"verify.placeholder": "Tapez le code ici",
|
||
"verify.confirm": "Confirmer le code",
|
||
"verify.confirmed": "Confirmé",
|
||
"verify.mismatch": "Ne correspond pas",
|
||
"verify.yours": "Votre confirmation",
|
||
"verify.peer": "Confirmation du correspondant",
|
||
"verify.pending": "En attente",
|
||
"verify.waiting": "En attente du code…",
|
||
"verify.verified": "Canal vérifié",
|
||
"verify.bothConfirmed": "Les deux parties ont confirmé. Ouverture de la discussion sécurisée…",
|
||
"pwa.bannerTitle": "Installer SecureBit.chat",
|
||
"pwa.bannerDesc": "Profitez de l'expérience d'une application native, avec une sécurité renforcée",
|
||
"pwa.install": "Installer",
|
||
"pwa.dismiss": "Ignorer",
|
||
"pwa.close": "Fermer",
|
||
"pwa.iosTitle": "Installer sur iOS",
|
||
"pwa.iosStep1": "Touchez le bouton Partager",
|
||
"pwa.iosStep1Hint": "En général en bas de Safari",
|
||
"pwa.iosStep2": "Trouvez « Sur l'écran d'accueil »",
|
||
"pwa.iosStep2Hint": "Faites défiler le menu de partage",
|
||
"pwa.iosStep3": "Touchez « Ajouter »",
|
||
"pwa.iosStep3Hint": "Confirmez pour installer SecureBit.chat",
|
||
"pwa.genericTitle": "Installer SecureBit",
|
||
"pwa.genericDesc": "Chaque navigateur installe à sa manière. Choisissez les étapes qui correspondent au vôtre.",
|
||
"pwa.gotIt": "Compris",
|
||
"pwa.installedTitle": "Application installée !",
|
||
"pwa.installedIos": "Application iOS installée ! Ouvrez-la depuis l'écran d'accueil.",
|
||
"pwa.installedGeneric": "SecureBit.chat est maintenant sur votre appareil",
|
||
"pwa.anytimeTitle": "Installable à tout moment",
|
||
"pwa.anytimeDesc": "Vous pouvez installer SecureBit.chat depuis le menu de votre navigateur quand vous voulez, pour la meilleure expérience.",
|
||
"pwa.ok": "D'accord",
|
||
"step.open": "Étape 1 · ouvrir un canal",
|
||
"step.exchange": "Étape 2 · échange",
|
||
"step.verification": "Étape 3 · vérification",
|
||
"action.create": "Créer",
|
||
"action.join": "Rejoindre",
|
||
"action.back": "Retour",
|
||
"action.copy": "Copier",
|
||
"action.copied": "Copié",
|
||
"action.scan": "Scanner",
|
||
"action.downloadDesktop": "Télécharger l'application",
|
||
"action.advancedSettings": "Réglages avancés",
|
||
"cred.offerTag": "offre · ou copiez le texte",
|
||
"cred.answerTag": "réponse · ou copiez le texte",
|
||
"cred.reveal": "Cliquez pour afficher - gardez ce code privé",
|
||
"qr.title": "Scanner le QR",
|
||
"qr.subtitle": "Visez le QR de votre correspondant",
|
||
"qr.scanning": "Lecture…",
|
||
"qr.hint": "Restez stable jusqu'à ce que toutes les parties soient capturées. La caméra reste locale - rien n'est envoyé.",
|
||
"mesh.you": "vous",
|
||
"mesh.peer": "correspondant · session 1",
|
||
"mesh.joined2": "chloé a rejoint · +2",
|
||
"mesh.joined3": "hugo a rejoint · +3",
|
||
"ice.title": "Réglages réseau",
|
||
"ice.subtitle": "Configuré en local - jamais transmis à votre correspondant",
|
||
"ice.intro": "Par défaut, SecureBit utilise des serveurs STUN publics pour négocier le lien pair-à-pair. Indiquez vos propres STUN/TURN si vous les hébergez.",
|
||
"ice.publicTitle": "Serveurs publics (par défaut)",
|
||
"ice.publicDesc": "Sans configuration. Suffisant pour la plupart.",
|
||
"ice.customTitle": "Mes propres serveurs STUN/TURN",
|
||
"ice.customDesc": "Jusqu'à {max} serveurs.",
|
||
"ice.turnNote": "Un relais TURN voit l'adresse IP des deux pairs et le rythme du trafic, mais jamais le contenu des messages, qui reste chiffré de bout en bout. Préférez ",
|
||
"ice.turnNoteTls": " (TLS).",
|
||
"ice.test": "Tester les serveurs",
|
||
"ice.testing": "Test en cours…",
|
||
"ice.relayTitle": "Mode relais uniquement",
|
||
"ice.relayBadge": "CONFIDENTIALITÉ MAXIMALE",
|
||
"ice.relayDesc": "Fait passer tout le trafic par TURN : votre correspondant ne voit jamais votre adresse IP. Nécessite un serveur TURN.",
|
||
"ice.relayWarning": "Le mode relais uniquement est activé mais aucun serveur TURN n'est configuré. La connexion ne pourra pas démarrer.",
|
||
"ice.persist": "Enregistrer sur cet appareil",
|
||
"ice.persistDesc": "Stocké chiffré dans ce navigateur. Laissez désactivé pour n'utiliser ces réglages que le temps de la session.",
|
||
"ice.forget": "Oublier l'enregistrement",
|
||
"ice.cancel": "Annuler",
|
||
"ice.apply": "Appliquer",
|
||
"ice.errUnavailable": "WebRTC n'est pas disponible dans ce navigateur",
|
||
"ice.errInvalid": "Configuration de serveur invalide",
|
||
"update.title": "Mise à jour disponible",
|
||
"update.desc": "Une version plus récente de SecureBit a été détectée.",
|
||
"update.currentVersion": "Version actuelle",
|
||
"update.newVersion": "Nouvelle version",
|
||
"update.now": "Mettre à jour",
|
||
"update.later": "Plus tard",
|
||
"update.unknown": "n/d",
|
||
"update.stepSaving": "Enregistrement des données…",
|
||
"update.stepSwCaches": "Vidage des caches du Service Worker…",
|
||
"update.stepSwUnregister": "Désinscription des Service Workers…",
|
||
"update.stepBrowserCache": "Vidage du cache du navigateur…",
|
||
"update.stepVersion": "Mise à jour de la version…",
|
||
"update.stepReload": "Rechargement de l'application…",
|
||
"update.error": "Erreur de mise à jour. Rechargez la page manuellement (Ctrl+F5 ou Cmd+Maj+R)",
|
||
"update.confirmSkip": "Une nouvelle version est disponible. La mise à jour est recommandée pour la sécurité et la stabilité. Continuer sans mettre à jour ?",
|
||
"offline.backOnline": "De nouveau en ligne",
|
||
"offline.mode": "Mode hors ligne",
|
||
"offline.dismiss": "Fermer",
|
||
"offline.lostTitle": "Connexion perdue",
|
||
"offline.lostDesc": "SecureBit est maintenant hors ligne. Certaines fonctions sont limitées, mais vos données restent en sécurité.",
|
||
"offline.point1": "Votre session et vos clés sont conservées",
|
||
"offline.point2": "Aucune donnée n'est stockée sur un serveur",
|
||
"offline.point3": "Messages et fichiers se synchronisent à la reconnexion",
|
||
"offline.continue": "Continuer hors ligne",
|
||
"offline.restoredTitle": "À la reconnexion",
|
||
"offline.restoredDesc": "Une coupure ne vous coûte rien. SecureBit met tout en file d'attente en local et reprend la session chiffrée dès que vous revenez en ligne.",
|
||
"offline.r1Title": "Vos messages sont remis",
|
||
"offline.r1Desc": "Tout ce que vous avez écrit hors ligne part automatiquement à votre correspondant.",
|
||
"offline.r2Title": "Les fichiers finissent de partir",
|
||
"offline.r2Desc": "Les envois reprennent là où ils s'étaient arrêtés - rien à renvoyer.",
|
||
"offline.r3Title": "Leurs messages et fichiers arrivent",
|
||
"offline.r3Desc": "Tout ce que votre correspondant a envoyé pendant la coupure vous parvient dans l'ordre.",
|
||
"offline.r4Title": "Rien n'est perdu",
|
||
"offline.r4Desc": "Après la reconnexion il n'y a aucun trou - la conversation reprend exactement là où elle s'était arrêtée.",
|
||
"offline.gotIt": "Compris",
|
||
"qr.showTitle": "Afficher le QR",
|
||
"qr.showSubtitle": "Plein écran · laissez votre correspondant scanner",
|
||
"qr.showSubtitleFrames": "Plein écran · laissez votre correspondant scanner les {frames} images",
|
||
"notify.enabledBody": "Notifications activées. Vous serez prévenu des nouveaux messages.",
|
||
"notify.workingBody": "Les notifications fonctionnent. Vous serez prévenu des nouveaux messages.",
|
||
"pw.label": "Champ du mot de passe",
|
||
"pw.placeholder": "Saisissez le mot de passe…",
|
||
"pw.decrypt": "Déchiffrer",
|
||
"pw.cancel": "Annuler",
|
||
"file.title": "Transferts de fichiers",
|
||
"file.drop": "Déposez les fichiers ici",
|
||
"file.dropHint": "Chiffrés de bout en bout avant l'envoi · jusqu'à 100 Mo",
|
||
"file.browse": "Parcourir l'appareil",
|
||
"file.incoming": "Fichier entrant",
|
||
"file.accept": "Accepter",
|
||
"file.reject": "Refuser",
|
||
"file.download": "Télécharger",
|
||
"file.notReady": "Connexion pas encore prête",
|
||
"file.tooLarge": "Fichier trop volumineux",
|
||
"file.typeNotAllowed": "Type de fichier non autorisé",
|
||
"file.maxConcurrent": "Nombre maximal de transferts simultanés atteint",
|
||
"file.gone": "Ce fichier n'est plus disponible au téléchargement.",
|
||
"call.incoming": "Appel entrant",
|
||
"call.incomingVideo": "Appel vidéo entrant",
|
||
"call.encrypted": "Appel chiffré",
|
||
"call.encryptedShort": "Chiffré",
|
||
"call.peer": "Pair sécurisé",
|
||
"call.connecting": "Connexion…",
|
||
"call.ringing": "Sonnerie…",
|
||
"call.accept": "Accepter",
|
||
"call.decline": "Refuser",
|
||
"call.end": "Raccrocher",
|
||
"call.camera": "Caméra",
|
||
"call.cameraOff": "Caméra éteinte",
|
||
"call.peerCameraOff": "La caméra de votre correspondant est éteinte",
|
||
"call.flipCamera": "Changer de caméra",
|
||
"call.addVideo": "Ajouter la vidéo",
|
||
"call.video": "Vidéo",
|
||
"call.muted": "Micro coupé",
|
||
"call.expand": "Agrandir",
|
||
"call.minimize": "Réduire",
|
||
"call.quality": "Qualité de la connexion",
|
||
"call.qualityExcellent": "Excellente",
|
||
"call.videoPrefix": "Vidéo · ",
|
||
"call.voicePrefix": "Voix · ",
|
||
"group.new": "Nouveau groupe",
|
||
"group.create": "Créer le groupe",
|
||
"group.join": "Rejoindre le groupe",
|
||
"group.name": "Nom du groupe",
|
||
"group.nameTooLong": "Le nom du groupe est trop long.",
|
||
"group.capacity": "Jusqu'à {max} personnes, en pair-à-pair. Tout le monde comparera un seul code de sécurité avant l'ouverture du groupe.",
|
||
"group.invite": "Inviter",
|
||
"group.inviteMore": "Inviter d'autres membres",
|
||
"group.invitePeople": "Inviter {count} personnes",
|
||
"group.invitation": "Invitation au groupe",
|
||
"group.addMembers": "Ajouter des membres",
|
||
"group.roomFor": "Encore de la place pour {remaining}. À leur arrivée, tout le monde comparera un nouveau code de groupe.",
|
||
"group.membersCount": "{count} membres",
|
||
"group.member": "Membre",
|
||
"group.members": "Membres",
|
||
"group.remove": "Retirer {name}",
|
||
"group.message": "Écrire à {name}",
|
||
"group.leave": "Quitter",
|
||
"group.leaveThis": "Quitter ce groupe",
|
||
"group.cancel": "Annuler le groupe",
|
||
"group.close": "Fermer",
|
||
"group.cancelBtn": "Annuler",
|
||
"group.decline": "Refuser",
|
||
"group.working": "En cours…",
|
||
"group.sasTitle": "Code de sécurité du groupe",
|
||
"group.sasEveryone": "Tout le monde voit ce code",
|
||
"group.sasCompare": "Comparez le code du groupe avec chaque membre pour ouvrir ce groupe.",
|
||
"group.sasReadAloud": "Lisez ces chiffres à voix haute à ",
|
||
"group.sasWarning": "Si ne serait-ce qu'un membre lit un code différent, quelqu'un se trouve entre vous. Annulez le groupe - ne confirmez pas.",
|
||
"group.confirmFirst": "Confirmez d'abord le code du groupe",
|
||
"group.codeSuffix": " · code {code}",
|
||
"group.exchangingNonces": "Échange des valeurs à usage unique…",
|
||
"group.waitingCommit": "En attente de l'engagement de chaque membre…",
|
||
"group.waitingJoin": "En attente des autres membres…",
|
||
"group.emptyChat": "Rien ici pour l'instant. Chaque message est signé par son expéditeur et passe par le lien chiffré propre à chaque membre.",
|
||
"group.noVerified": "Aucune discussion vérifiée pour l'instant. Ouvrez d'abord une discussion en tête-à-tête et comparez son code de sécurité - un groupe se construit à partir de connexions déjà vérifiées.",
|
||
"group.noMoreToAdd": "Aucune autre discussion vérifiée à ajouter. Ouvrez une discussion en tête-à-tête et comparez d'abord son code de sécurité.",
|
||
"group.directLink": "Lien pair-à-pair direct",
|
||
"group.noDirectLink": "Pas encore de lien direct - les messages passent par un autre membre pendant qu'il s'établit",
|
||
"group.relayNote": "Certains membres n'ont pas encore de lien direct avec vous. Leurs messages passent par un autre membre, qui voit que vous discutez mais ne peut ni lire au-delà de la signature ni modifier vos propos. Le groupe continue d'essayer de les connecter directement.",
|
||
"group.relayOnlyOff": "Le mode relais uniquement est désactivé : chaque membre se connecte directement à vous et apprend votre adresse IP, y compris ceux invités par quelqu'un d'autre. Activez-le dans les réglages réseau si cela compte ici.",
|
||
"group.memberOffline": "{name} est hors ligne et ne recevra pas les messages. Cette personne reste membre : la retirer régénère les clés du groupe.",
|
||
"group.joinNote": "Les autres membres sauront que vous êtes dans ce groupe. Il n'y a pas d'historique à rattraper - un groupe démarre vide.",
|
||
"group.inviteSentNote": "Le groupe continue de fonctionner jusqu'à leur acceptation. Il n'y a pas d'historique à rattraper pour eux : ils ne verront que ce qui sera envoyé à partir de maintenant.",
|
||
"group.errNotCreated": "Groupe non créé",
|
||
"group.errNobodyAccepted": "Personne n'a accepté l'invitation à temps.",
|
||
"group.errNothingSent": "Rien n'a été envoyé ni vérifié. Fermez cette fenêtre et réessayez une fois tout le monde connecté.",
|
||
"group.errNotFormed": "Ce groupe n'a pas pu être formé.",
|
||
"group.errFull": "Ce groupe est complet.",
|
||
"group.errInviteFailed": "L'invitation n'a pas pu être envoyée - cette discussion n'est pas connectée.",
|
||
"group.errNoMemberList": "La personne qui a créé le groupe n'a jamais envoyé la liste des membres.",
|
||
"group.errUnsignedList": "La liste des membres n'a pas été signée par la personne qui a créé le groupe. Ne réessayez pas - prévenez-la.",
|
||
"group.errNotOwner": "Quelqu'un d'autre que le propriétaire du groupe a tenté de modifier les membres.",
|
||
"hdr.tagline": "Chiffré de bout en bout",
|
||
"hdr.netSettings": "Réglages réseau avancés",
|
||
"hdr.netSettingsTitle": "Réglages réseau avancés (STUN/TURN)",
|
||
"hdr.disconnect": "Se déconnecter",
|
||
"status.connected": "Connecté",
|
||
"status.connecting": "Connexion…",
|
||
"status.notConnected": "Non connecté",
|
||
"status.reconnecting": "Reconnexion…",
|
||
"status.retrying": "Nouvelle tentative…",
|
||
"status.verifying": "Vérification…",
|
||
"status.peerDisconnected": "Le correspondant s'est déconnecté",
|
||
"sec.replayProtection": "Protection contre le rejeu",
|
||
"sec.messageIntegrity": "Intégrité des messages (HMAC)",
|
||
"sec.forwardSecrecy": "Confidentialité persistante parfaite",
|
||
"sec.metadataProtection": "Protection des métadonnées",
|
||
"sec.trafficObfuscation": "Brouillage du trafic",
|
||
"sec.realTests": "Tests cryptographiques réels",
|
||
"sec.simulatedData": "Données simulées",
|
||
"sec.testPassed": "Test réussi",
|
||
"sec.testFailed": "Test échoué ou indisponible",
|
||
"sec.verificationDone": "Vérification cryptographique réelle terminée",
|
||
"sec.verificationInProgress": "Vérification de sécurité en cours…",
|
||
"sec.verificationWait": "Vérification de sécurité en cours…\nAttendez la fin de la vérification cryptographique en temps réel.",
|
||
"sec.verificationUnavailable": "Vérification de sécurité indisponible",
|
||
"chat.placeholder": "Écrivez un message chiffré…",
|
||
"chat.send": "Envoyer le message",
|
||
"chat.sendFiles": "Envoyer des fichiers",
|
||
"chat.hideFiles": "Masquer les fichiers",
|
||
"chat.recordVoice": "Enregistrer un message vocal",
|
||
"chat.sendVoice": "Envoyer le message vocal",
|
||
"chat.discard": "Abandonner",
|
||
"chat.codeBlock": "Envoyer comme bloc de code (agrandit le champ)",
|
||
"chat.codeHint": "Extrait de code · mise en forme conservée · ⌘↵ pour envoyer",
|
||
"chat.viewOnce": "Vue unique",
|
||
"chat.viewOnceTitle": "Vue unique - disparaît dès que votre correspondant l'a lu",
|
||
"chat.viewOncePrefix": "Vue unique · ",
|
||
"chat.viewOnceTap": "Vue unique · touchez pour afficher",
|
||
"chat.viewedOnce": "Déjà vu",
|
||
"chat.disappearing": "Message éphémère - supprimé des deux côtés",
|
||
"chat.disappearAfter": "Disparaît après",
|
||
"chat.visibleFor": "Visible pendant",
|
||
"chat.timerPrefix": "Minuteur · ",
|
||
"chat.expired": "Ce message a expiré",
|
||
"chat.deleteForEveryone": "Supprimer pour tout le monde",
|
||
"chat.sending": "Envoi",
|
||
"chat.delivered": "Remis",
|
||
"chat.notSent": "Non envoyé",
|
||
"chat.notSentReason": "Non envoyé - le canal sécurisé n'est pas prêt. Reconnectez-vous pour continuer.",
|
||
"chat.encrypted": "Chiffré",
|
||
"chat.decrypted": "Déchiffré",
|
||
"chat.encryptedOnDevice": "Chiffré sur votre appareil",
|
||
"chat.uploading": "Envoi",
|
||
"chat.downloading": "Téléchargement",
|
||
"chat.transferring": "Transfert…",
|
||
"chat.copied": "Copié !",
|
||
"chat.collapse": "Replier",
|
||
"chat.closeMenu": "Fermer le menu",
|
||
"chat.newChat": "Nouvelle discussion",
|
||
"chat.newGroup": "Nouveau groupe",
|
||
"chat.createGroup": "Créer un groupe",
|
||
"chat.groupChats": "Groupes",
|
||
"chat.secureChat": "Discussion sécurisée",
|
||
"chat.nameThis": "Nommez cette discussion",
|
||
"chat.rename": "Renommer la discussion (en local)",
|
||
"chat.renameHint": "Double-cliquez pour renommer",
|
||
"chat.localLabel": "Nom local · stocké uniquement sur cet appareil",
|
||
"chat.setStatus": "Choisissez votre statut",
|
||
"chat.yourStatusPrefix": "Votre statut - ",
|
||
"chat.meshHint": "Jusqu'à 8 pairs · maillage P2P",
|
||
"chat.offline": "Hors ligne",
|
||
"chat.noNetwork": "Pas de réseau · reconnexion",
|
||
"chat.startVoiceCall": "Lancer un appel vocal chiffré",
|
||
"chat.startVideoCall": "Lancer un appel vidéo chiffré",
|
||
"chat.verifyForCalls": "Vérifiez la session pour activer les appels",
|
||
"chat.e2eeNote": "Chaque message est chiffré de bout en bout sur votre appareil avant de partir.",
|
||
"chat.peersOnly": "Envoyé de bout en bout aux seuls pairs connectés - jamais stocké sur un serveur.",
|
||
"flow.invitationCreated": "Invitation sécurisée créée",
|
||
"flow.invitationCreatedBang": "Invitation sécurisée créée et chiffrée.",
|
||
"flow.responseCreated": "Réponse sécurisée créée",
|
||
"flow.responseCreatedBang": "Réponse sécurisée créée.",
|
||
"flow.sendInvitation": "Envoyez le code d'invitation à votre correspondant par un canal sûr (appel, SMS, etc.).",
|
||
"flow.sendResponse": "Envoyez le code de réponse à la personne qui a ouvert le canal par un canal sûr, ou laissez-la scanner le QR ci-dessous.",
|
||
"flow.sendEncryptedCode": "Envoyer le code chiffré",
|
||
"flow.sendTheResponse": "Envoyer la réponse",
|
||
"flow.pasteOrWrite": "Collez ou saisissez le code…",
|
||
"flow.processingInvitation": "Traitement de l'invitation sécurisée…",
|
||
"flow.processingResponse": "Traitement de la réponse sécurisée…",
|
||
"flow.finalizing": "Finalisation de la connexion sécurisée…",
|
||
"flow.channelEstablished": "Canal sécurisé établi",
|
||
"flow.channelReady": "Le canal sécurisé est prêt",
|
||
"flow.restoring": "Rétablissement de la connexion…",
|
||
"flow.invitationCaptured": "Invitation capturée.",
|
||
"err.needInvitation": "Vous devez coller le code d'invitation de votre correspondant.",
|
||
"err.needResponse": "Vous devez coller le code de réponse de votre correspondant.",
|
||
"err.responseFormat": "Format de réponse invalide - vérifiez le code",
|
||
"err.responseNoKey": "Code de réponse invalide - clé cryptographique manquante ou abîmée. Vérifiez le code et réessayez.",
|
||
"err.responseNoSignKey": "Code de réponse invalide - clé de vérification de signature manquante. Vérifiez le code et réessayez.",
|
||
"err.responseOutdated": "Les données de réponse sont périmées - utilisez une invitation récente",
|
||
"err.setupError": "Erreur lors de l'établissement de la connexion",
|
||
"err.notReady": "Connexion pas encore prête",
|
||
"err.securityBreach": "Faille de sécurité détectée - connexion refusée",
|
||
"err.securityValidation": "Échec du contrôle de sécurité - attaque possible",
|
||
"err.retiredQr": "Ce QR utilise un format abandonné qui n'a pas permis de transférer l'invitation. Demandez-en un nouveau, ou utilisez le copier-coller.",
|
||
"err.compressedQrNote": "Un QR compressé peut omettre le SDP par concision. Utilisez le copier-coller si la connexion échoue.",
|
||
"err.inviteNotConnected": "L'invitation n'a pas pu être envoyée. Cette discussion n'est pas connectée pour le moment.",
|
||
"err.inviteNotConnectedRetry": "L'invitation n'a pas pu être envoyée. Cette discussion n'est pas connectée pour le moment - rouvrez-la et réessayez.",
|
||
"err.nobodyAccepted": "Personne n'a accepté l'invitation. Le groupe est inchangé.",
|
||
"err.noAudio": "Aucun son enregistré - vérifiez l'autorisation du micro et réessayez.",
|
||
"err.voiceNeedsConnection": "Un message vocal demande une connexion sécurisée active. Reconnectez-vous et réessayez.",
|
||
"err.voiceRestoring": "Rétablissement de la connexion - réessayez d'envoyer le message vocal dans un instant.",
|
||
"err.fileTooLarge": "Fichier trop volumineux",
|
||
"sas.safetyNumber": "Numéro de sécurité",
|
||
"sas.incorrect": "Code incorrect. Vérifiez-le avec votre correspondant et réessayez.",
|
||
"sas.noMatch": "Les codes ne correspondent pas",
|
||
"sas.makeSure": "Assurez-vous que les codes correspondent exactement.",
|
||
"sas.tooManyAttempts": "Trop de tentatives incorrectes. La session a été réinitialisée par sécurité.",
|
||
"sas.verificationFailed": "Vérification échouée",
|
||
"sas.verified": "Vérifié · confidentialité persistante parfaite",
|
||
"sas.runVerification": "Lancer la vérification de sécurité",
|
||
"sec.panelTitle": "Détails réseau et cryptographie",
|
||
"sec.security": "Sécurité",
|
||
"sec.transport": "Transport",
|
||
"sec.keyExchange": "Échange de clés",
|
||
"sec.allEnabled": "Toutes les protections sont actives par défaut",
|
||
"sec.realTimeNote": "Vérification en temps réel avec de vraies fonctions cryptographiques - aucune donnée factice.",
|
||
"sec.simulatedWarning": "Attention : la connexion n'est peut-être pas entièrement établie - les valeurs peuvent être simulées.",
|
||
"dl.title": "Télécharger SecureBit",
|
||
"dl.free": "Gratuit · code ouvert",
|
||
"dl.soon": "Les applications mobiles (iOS, Android) et les extensions de navigateur (Chrome, Firefox, Opera) arrivent bientôt.",
|
||
"chatHdr.chat": "Discussion",
|
||
"chatHdr.chats": "Discussions",
|
||
"chatHdr.newChat": "+ Nouvelle",
|
||
"chatHdr.secure": "Sécurisé",
|
||
"chatHdr.p2pSub": "P2P · chiffré de bout en bout",
|
||
"chatHdr.save": "Enregistrer",
|
||
"chatHdr.close": "Fermer",
|
||
"chatHdr.expand": "Agrandir",
|
||
"chatHdr.you": "Vous",
|
||
"chatHdr.qrCode": "QR code",
|
||
"chat.disconnected": "Déconnecté",
|
||
"call.mute": "Couper le micro",
|
||
"call.endShort": "Fin",
|
||
"group.add": "Ajouter",
|
||
"group.send": "Envoyer",
|
||
"sec.pfsShort": "Confidentialité persistante parfaite",
|
||
"sec.cipher": "Chiffrement",
|
||
"chat.close": "Fermer",
|
||
"file.needConnection": "Le transfert de fichiers demande une connexion ouverte",
|
||
"presence.available": "Disponible",
|
||
"presence.away": "Absent",
|
||
"presence.busy": "Occupé",
|
||
"presence.offline": "Hors ligne",
|
||
"presence.invisible": "Invisible",
|
||
"presence.availableDesc": "En ligne et joignable",
|
||
"presence.awayDesc": "Inactif · momentanément absent",
|
||
"presence.busyDesc": "Ne pas déranger",
|
||
"presence.invisibleDesc": "Apparaître hors ligne pour les autres",
|
||
"presence.online": "En ligne",
|
||
"conn.p2p": "P2P · connecté",
|
||
"conn.verifying": "Vérification…",
|
||
"conn.connecting": "Connexion…",
|
||
"conn.reconnecting": "Reconnexion…",
|
||
"conn.peerDisconnected": "Le correspondant s'est déconnecté",
|
||
"conn.disconnected": "Déconnecté",
|
||
"chat.defaultLabel": "Discussion",
|
||
"groupPhase.forming": "Formation…",
|
||
"groupPhase.commitments": "Échange des engagements…",
|
||
"groupPhase.revealing": "Révélation…",
|
||
"groupPhase.compare": "Comparez le code du groupe",
|
||
"groupPhase.ready": "Groupe prêt",
|
||
"groupPhase.failed": "Groupe non créé",
|
||
"call.qualityGood": "Bonne",
|
||
"call.qualityFair": "Correcte",
|
||
"call.qualityWeak": "Faible",
|
||
"msg.code": "Code",
|
||
"msg.timer": "Minuteur",
|
||
"msg.voice": "Voix",
|
||
"msg.play": "Lire",
|
||
"msg.sent": "Envoyé",
|
||
"msg.read": "Lu",
|
||
"report.title": "Vérification de sécurité en temps réel",
|
||
"report.active": "Actif",
|
||
"report.testsPassed": "Tests réussis",
|
||
"report.verifiedAt": "Vérifié le",
|
||
"report.source": "Source",
|
||
"secTest.verifyECDHKeyExchange": "Échange de clés ECDH",
|
||
"secTest.verifyECDSASignatures": "Signatures numériques ECDSA",
|
||
"secTest.verifyEncryption": "Chiffrement AES-GCM",
|
||
"secTest.verifyMessageIntegrity": "Intégrité des messages",
|
||
"secTest.verifyPerfectForwardSecrecy": "Confidentialité persistante parfaite",
|
||
"secTest.verifyPFS": "Confidentialité persistante parfaite",
|
||
"secTest.verifyReplayProtection": "Protection contre le rejeu",
|
||
"secTest.verifyDTLSFingerprint": "Empreinte DTLS",
|
||
"secTest.verifySASVerification": "Vérification SAS",
|
||
"secTest.verifyMetadataProtection": "Protection des métadonnées",
|
||
"secTest.verifyTrafficObfuscation": "Brouillage du trafic",
|
||
"secTest.verifyPacketPadding": "Remplissage de paquets",
|
||
"secTest.verifyNestedEncryption": "Chiffrement imbriqué",
|
||
"secTest.verifyNonExtractableKeys": "Clés non extractibles",
|
||
"secTest.verifyRateLimiting": "Limitation du débit",
|
||
"secTest.verifyMutualAuth": "Authentification mutuelle",
|
||
"secTest.verifyAuthProof": "Preuve d'authentification",
|
||
"secTest.verifyEnhancedValidation": "Validation renforcée",
|
||
"secTest.verifyAdvancedFeatures": "Fonctions avancées",
|
||
"secTest.verifySignature": "Contrôle de signature",
|
||
"secDetail.Security system initializing...": "Démarrage du système de sécurité…",
|
||
"secDetail.Nested encryption active": "Chiffrement imbriqué actif",
|
||
"secDetail.Nested encryption failed": "Échec du chiffrement imbriqué",
|
||
"secDetail.Packet padding active": "Remplissage de paquets actif",
|
||
"secDetail.Packet padding failed": "Échec du remplissage de paquets",
|
||
"secDetail.Advanced features active": "Fonctions avancées actives",
|
||
"secDetail.Advanced features failed": "Échec des fonctions avancées",
|
||
"secDetail.No encryption key available": "Aucune clé de chiffrement disponible",
|
||
"secDetail.AES-GCM encryption/decryption working correctly": "Le chiffrement et le déchiffrement AES-GCM fonctionnent correctement",
|
||
"secDetail.No ECDH key pair available": "Aucune paire de clés ECDH disponible",
|
||
"secDetail.Key derivation failed": "Échec de la dérivation de clé",
|
||
"secDetail.No ECDSA key pair available": "Aucune paire de clés ECDSA disponible",
|
||
"secDetail.ECDSA digital signatures working correctly": "Les signatures numériques ECDSA fonctionnent correctement",
|
||
"secDetail.MAC key not available or invalid": "Clé MAC absente ou invalide",
|
||
"secDetail.Rate limiter did not block a message over the limit": "Le limiteur n'a pas bloqué un message au-delà de la limite",
|
||
"secDetail.Rate limiter is not available": "Le limiteur de débit n'est pas disponible",
|
||
"secDetail.Replay protection is working correctly": "La protection contre le rejeu fonctionne correctement",
|
||
"secDetail.Replay protection not enabled": "Protection contre le rejeu inactive",
|
||
"secDetail.SAS code not available": "Code SAS indisponible",
|
||
"secDetail.SAS verification code is valid and available": "Le code de vérification SAS est valide et disponible",
|
||
"secDetail.Traffic obfuscation is working correctly": "Le brouillage du trafic fonctionne correctement",
|
||
"secDetail.Traffic obfuscation not enabled": "Brouillage du trafic inactif",
|
||
"secDetail.No non-extractable ephemeral ECDH key pair for this session": "Aucune paire de clés ECDH éphémères non extractibles pour cette session",
|
||
"secDetail.Session-level PFS only: keys are ephemeral per session, but the Double Ratchet is not active for this connection (peer on an older version), so a compromised session key exposes the whole conversation": "Confidentialité persistante au niveau de la session seulement : les clés sont éphémères pour chaque session, mais le Double Ratchet n'est pas actif sur cette connexion (le correspondant utilise une version plus ancienne), donc une clé de session compromise expose toute la conversation.",
|
||
"msg.pause": "Pause",
|
||
"msg.failed": "Échec",
|
||
"groupErr.timeout": "Un membre a cessé de répondre avant que le code soit prêt.",
|
||
"groupErr.keyMismatch": "La clé d'un membre ne correspondait pas à l'identité annoncée.",
|
||
"groupErr.revealMismatch": "La valeur révélée par un membre ne correspondait pas à son engagement.",
|
||
"groupErr.commitChanged": "Un membre a changé son engagement en cours de route.",
|
||
"groupErr.missingKey": "Un membre figurait sur la liste alors que sa clé n'est jamais arrivée.",
|
||
"groupErr.outsider": "Une trame est arrivée de quelqu'un extérieur au groupe.",
|
||
"groupErr.limit": "Un groupe est limité à huit membres.",
|
||
"groupErr.tooLarge": "Un message était trop volumineux pour être envoyé au groupe.",
|
||
"fileType.text": "Texte brut",
|
||
"fileType.images": "Images",
|
||
"fileType.archives": "Archives",
|
||
"fileType.voice": "Messages vocaux",
|
||
"fileType.unsupported": "Non pris en charge",
|
||
"qrScan.title": "Scanner le QR",
|
||
"qrScan.auto": "Mode auto",
|
||
"qrScan.reset": "Réinitialiser",
|
||
"qrScan.autoScroll": "Défilement automatique activé",
|
||
"qrScan.starting": "Démarrage de la caméra…",
|
||
"qrScan.point": "Visez le QR de votre correspondant",
|
||
"qrScan.tapFocus": "Touchez l'écran pour faire la mise au point",
|
||
"qrScan.focusing": "Mise au point…",
|
||
"iceErr.notArray": "La liste de serveurs doit être un tableau",
|
||
"iceErr.invalidJson": "JSON invalide",
|
||
"iceErr.tooMany": "Trop de serveurs (maximum {max})",
|
||
"iceErr.invalidEntry": "{label} : entrée invalide",
|
||
"iceErr.urlCount": "{label} : entre 1 et {max} URL requises",
|
||
"iceErr.turnCreds": "{label} : les serveurs TURN demandent en général un nom d'utilisateur et un identifiant",
|
||
"iceUrl.notString": "L'URL doit être une chaîne",
|
||
"iceUrl.empty": "L'URL est vide",
|
||
"iceUrl.tooLong": "L'URL est trop longue",
|
||
"iceUrl.badChars": "L'URL contient des caractères invalides",
|
||
"iceUrl.badScheme": "L'URL doit commencer par stun:, stuns:, turn: ou turns:",
|
||
"iceUrl.badQuery": "L'URL contient une requête invalide",
|
||
"iceUrl.noHost": "Il manque un hôte à l'URL",
|
||
"iceUrl.badHost": "L'URL a un hôte ou un port invalide",
|
||
"iceUrl.badTransport": "La requête de l'URL doit être transport=udp ou transport=tcp",
|
||
"msg.off": "Désactivé",
|
||
"file.consentUnavailable": "Impossible de demander l'accord",
|
||
"secLevel.MAXIMUM": "MAXIMUM",
|
||
"secLevel.INITIALIZING": "DÉMARRAGE",
|
||
"secLevel.ERROR": "ERREUR",
|
||
"secLevel.UNKNOWN": "INCONNU",
|
||
"status.error": "Erreur",
|
||
"offline.disconnect": "Se déconnecter",
|
||
"offline.learnMore": "En savoir plus",
|
||
"pwa.installApp": "Installer l'application",
|
||
"chat.onWeb": "Vous êtes sur la version web",
|
||
"groupCall.startVoice": "Démarrer un appel vocal de groupe",
|
||
"groupCall.startVideo": "Démarrer un appel vidéo de groupe",
|
||
"groupCall.join": "Rejoindre",
|
||
"groupCall.dismiss": "Pas maintenant",
|
||
"groupCall.leave": "Quitter l'appel",
|
||
"groupCall.you": "Vous",
|
||
"groupCall.connecting": "Connexion…",
|
||
"groupCall.waitingLink": "En attente d'un lien direct…",
|
||
"groupCall.legFailed": "Connexion impossible",
|
||
"groupCall.startedVoice": "{name} a démarré un appel vocal",
|
||
"groupCall.startedVideo": "{name} a démarré un appel vidéo",
|
||
"groupCall.inCall": "{count} dans l'appel",
|
||
"groupCall.err.permission_denied": "L'appel n'a pas pu démarrer - l'accès au micro et à la caméra est bloqué. Autorisez-le pour ce site, puis réessayez.",
|
||
"groupCall.err.device_not_found": "L'appel n'a pas pu démarrer - aucun micro n'a été trouvé sur cet appareil.",
|
||
"groupCall.err.device_busy": "L'appel n'a pas pu démarrer - votre micro est utilisé par une autre application. Fermez-la et réessayez.",
|
||
"groupCall.err.media_failed": "L'appel n'a pas pu démarrer - le micro n'a pas pu être ouvert.",
|
||
"groupCall.err.call_in_progress": "Un appel est déjà en cours dans ce groupe. Rejoignez-le plutôt que d'en démarrer un autre.",
|
||
"groupCall.err.not_ready": "Confirmez le code du groupe avant d'appeler.",
|
||
"groupCall.speaking": "{name} parle",
|
||
"groupCall.pin": "Afficher {name} en grand",
|
||
"groupCall.unpin": "Revenir à tous",
|
||
"groupCall.showEveryone": "Tout le monde",
|
||
"msg.after5s": "5 s après lecture",
|
||
"msg.after15s": "15 s après lecture",
|
||
"msg.after30s": "30 s après lecture",
|
||
"msg.after1m": "1 min après lecture",
|
||
"msg.sec30": "30 secondes",
|
||
"msg.min5": "5 minutes",
|
||
"msg.hour1": "1 heure",
|
||
"desktop.shareDesc": "Envoyez le code à votre pair. Il est à usage unique et expire rapidement.",
|
||
"desktop.invitationCreated": "Invitation sécurisée créée - envoyez-la à votre pair.",
|
||
"desktop.joinDesc": "Collez le code d'invitation de votre pair pour construire votre réponse sécurisée.",
|
||
"desktop.offerTag": "invitation · copier le texte",
|
||
"desktop.answerTag": "réponse · copier le texte",
|
||
"desktop.offerPlaceholder": "Le code d'invitation apparaîtra ici…",
|
||
"desktop.answerPlaceholder": "Le code de réponse apparaîtra ici…",
|
||
"desktop.backToChats": "Retour aux discussions",
|
||
"desktop.sendFeedback": "Envoyer un retour",
|
||
"desktop.callsNeedVerified": "Les appels nécessitent un canal sécurisé vérifié.",
|
||
"desktop.noOpenChannel": "Aucun canal sécurisé ouvert.",
|
||
"desktop.chatCarriesCall": "Cette discussion porte un appel de groupe. Quittez l'appel de groupe avant de lancer un appel à deux.",
|
||
"desktop.err.permission_denied": "L'appel n'a pas pu démarrer - l'accès au micro et à la caméra est bloqué. Autorisez-le dans les réglages système, puis réessayez.",
|
||
"desktop.language": "Langue",
|
||
"desktop.languageHint": "S'applique immédiatement. Les messages déjà envoyés gardent leurs mots.",
|
||
"desktop.compareCode": "Comparez le code de vérification avec votre pair et confirmez s’il correspond.",
|
||
"desktop.verifyBeforeFiles": "Terminez la vérification avant d’envoyer des fichiers.",
|
||
"desktop.verifyBeforeSending": "Terminez la vérification avant d’envoyer des messages.",
|
||
"desktop.disconnectedByBackend": "Connexion fermée de façon sécurisée.",
|
||
"desktop.restoreFailed": "Impossible de rétablir la connexion. Fermeture de cette discussion.",
|
||
"desktop.channelNotReady": "Le canal de données n’est pas encore disponible. Attendez que la connexion soit établie.",
|
||
"desktop.enterCode": "Saisissez le code de vérification pour confirmer.",
|
||
"desktop.noOffer": "Aucune invitation trouvée. Créez-en une d’abord.",
|
||
"desktop.notInitiator": "Vous n’avez pas créé cette connexion, il n’y a donc aucune réponse à appliquer.",
|
||
"desktop.decryptFailed": "Un message n’a pas pu être déchiffré et a été écarté.",
|
||
"desktop.badMessageFormat": "Une trame mal formée est arrivée et a été écartée.",
|
||
"desktop.notSentNotReady": "Message non envoyé : le canal sécurisé n’est pas prêt. Attendez la fin de la vérification ou reconnectez-vous.",
|
||
"desktop.micDenied": "L’accès au micro a été refusé.",
|
||
"desktop.noChannelWait": "Aucun canal sécurisé ouvert - attendez que la connexion soit établie.",
|
||
"desktop.sasFailed": "Échec de la vérification. Un intermédiaire est peut-être présent : la connexion a été interrompue.",
|
||
"desktop.sasOk": "Vérification réussie. Ce canal est authentifié de bout en bout.",
|
||
"desktop.iceForgotten": "Serveurs enregistrés oubliés. Utilisation des serveurs ICE publics.",
|
||
"desktop.icePublic": "Utilisation des serveurs ICE publics.",
|
||
"desktop.verificationInProgress": "La vérification de sécurité est encore en cours. Attendez la fin.",
|
||
"desktop.fileGone": "Ce fichier n’est plus disponible au téléchargement.",
|
||
"desktop.codeMismatch": "Les codes de vérification ne correspondent pas. Déconnexion par sécurité.",
|
||
"desktop.noLocalCode": "Échec de la vérification : aucun code dérivé localement à comparer. Déconnexion par sécurité.",
|
||
"desktop.protocolViolation": "Le pair a affirmé que le code était confirmé avant que vous ne le confirmiez. Déconnexion par sécurité.",
|
||
"desktop.verificationRejected": "Vérification rejetée. La connexion a été interrompue par sécurité.",
|
||
"secLevel.HIGH": "ÉLEVÉ",
|
||
"secLevel.MEDIUM": "MOYEN",
|
||
"secLevel.LOW": "FAIBLE",
|
||
"desktop.rerun": "Relancer",
|
||
"desktop.ice.customDesc": "Jusqu'à {max} serveurs, une URL par ligne ou du JSON.",
|
||
"desktop.ice.persistDesc": "Enregistré localement sur cet appareil. Laissez désactivé pour ne l’utiliser que pendant cette session.",
|
||
"desktop.group.leaveNote": "Les autres membres sont informés de votre départ. Rien de ce groupe ne reste ensuite sur cet appareil - aucun serveur n’en garde de copie, il vous faudrait donc une nouvelle invitation.",
|
||
"desktop.sec.ecdsaOk": "Signature du paquet de clés du pair vérifiée pendant la poignée de main (ECDSA P-384 / SHA-384)",
|
||
"desktop.sec.ecdsaNone": "Aucune poignée de main achevée",
|
||
"desktop.sec.ecdhOk": "Clés de session dérivées d’un échange ECDH P-384 éphémère via HKDF-SHA-256",
|
||
"desktop.sec.ecdhNone": "Aucune clé de session dérivée",
|
||
"desktop.sec.encryptionOk": "Chiffrement et déchiffrement AES-GCM vérifiés dans le cœur",
|
||
"desktop.sec.encryptionNa": "L’autotest AES-GCM n’a pas pu être exécuté",
|
||
"desktop.sec.integrityOk": "Intégrité des messages vérifiée (authentification AES-GCM)",
|
||
"desktop.sec.integrityNa": "L’autotest d’intégrité n’a pas pu être exécuté",
|
||
"desktop.sec.pfsOk": "Double Ratchet actif - chaque message a sa propre clé",
|
||
"desktop.sec.pfsNa": "Non mesuré",
|
||
"desktop.sec.replayOk": "Les clés de message du ratchet sont détruites après usage : une trame capturée ne peut pas être rejouée",
|
||
"desktop.sec.replayNa": "Non mesuré",
|
||
"desktop.sec.dtlsPinned": "Empreinte DTLS du pair épinglée : {fp}",
|
||
"desktop.sec.dtlsNone": "Aucune empreinte DTLS distante disponible",
|
||
"desktop.sec.sasBoth": "Les deux pairs ont confirmé le code de sécurité hors bande",
|
||
"desktop.sec.sasIncomplete": "Le code de sécurité n’a pas été confirmé par les deux pairs",
|
||
"desktop.sec.metadataOk": "Une clé de métadonnées dédiée a été dérivée (HKDF metadata-protection-v4)",
|
||
"desktop.sec.metadataNone": "Aucune clé de métadonnées",
|
||
"desktop.sec.coverOn": "Trafic de couverture actif : trames factices aléatoires (32-128 o toutes les 15-30 s) sur le canal à ratchet",
|
||
"desktop.sec.coverOff": "Le générateur de trafic de couverture ne tourne pas",
|
||
"desktop.sec.coverUnsupported": "Le trafic de couverture exige une session Double Ratchet (le pair utilise une version plus ancienne)",
|
||
"desktop.tagline": "La liberté de bout en bout",
|
||
"desktop.callsNotHere": "Les appels ne sont pas encore disponibles dans cette version. Les messages, les fichiers et les discussions de groupe fonctionnent normalement."
|
||
},
|
||
"manifest": {
|
||
"name": "SecureBit.chat - Messagerie privée et chiffrée",
|
||
"short_name": "SecureBit",
|
||
"description": "Messagerie P2P protégée par ECDH, DTLS et SAS, avec une cryptographie de niveau militaire"
|
||
}
|
||
}
|