Files
BetterDesk/web-nodejs/lang/fr.json
T
UNITRONIX edba7c5da6 Improve password reset, auth logging, and i18n
Rework password reset flow and diagnostics: change reset-password.js argument order (password first, optional username) and update Docker/CLI scripts to call it accordingly; persist DEFAULT_ADMIN_PASSWORD to .env and restart betterdesk-console after resets to avoid overwrites. Add translations for an "invalid_credentials" message across supported locales. Harden reset-password.js with a bcrypt self-test, log hash info, and add additional data directory candidates. Enhance authService with detailed auth/logging (hash type, failures/success), safer admin-hash migration logic (avoid overwriting if admin has logged in), and self-tests when creating/updating admin password hashes to detect/retry corrupted hashes.

Co-Authored-By: MrBrodacz - Design <215021251+MrBrodacz2025@users.noreply.github.com>
Co-Authored-By: boruto79 <176351662+boruto79@users.noreply.github.com>
2026-03-05 00:55:58 +01:00

1056 lines
46 KiB
JSON

{
"meta": {
"lang": "fr",
"name": "French",
"native_name": "Français",
"direction": "ltr"
},
"common": {
"loading": "Chargement...",
"confirm": "Confirmer",
"alert": "Alerte",
"prompt": "Saisir une valeur",
"copied": "Copié dans le presse-papiers",
"save": "Enregistrer",
"saved": "Enregistré",
"error": "Erreur",
"success": "Succès",
"warning": "Avertissement",
"info": "Information",
"all": "Tous",
"cancel": "Annuler",
"delete": "Supprimer"
},
"nav": {
"main": "Principal",
"tools": "Outils",
"system": "Système",
"dashboard": "Tableau de bord",
"devices": "Appareils",
"keys": "Clés",
"generator": "Générateur",
"settings": "Paramètres",
"users": "Utilisateurs",
"inventory": "Inventaire",
"tickets": "Tickets",
"activity": "Activité",
"automation": "Automatisation",
"file_transfer": "Transfert de fichiers",
"network": "Réseau",
"dataguard": "DataGuard",
"reports": "Rapports",
"tenants": "Locataires",
"registrations": "Inscriptions",
"toggle_sidebar": "Basculer la barre latérale"
},
"auth": {
"login": "Connexion",
"logout": "Déconnexion",
"login_title": "Se connecter",
"login_subtitle": "Connectez-vous à la console BetterDesk",
"username": "Nom d'utilisateur",
"username_placeholder": "Entrez le nom d'utilisateur",
"password": "Mot de passe",
"password_placeholder": "Entrez le mot de passe",
"remember_me": "Se souvenir de moi",
"login_failed": "Échec de la connexion. Veuillez vérifier vos identifiants.",
"invalid_credentials": "Nom d'utilisateur ou mot de passe invalide.",
"fill_all_fields": "Veuillez remplir tous les champs",
"logout_confirm": "Êtes-vous sûr de vouloir vous déconnecter ?",
"change_password": "Changer le mot de passe",
"password_required": "Le mot de passe est requis",
"totp_title": "Authentification à deux facteurs",
"totp_subtitle": "Entrez le code à 6 chiffres de votre application d'authentification",
"totp_code": "Code de vérification",
"totp_verify": "Vérifier",
"totp_use_recovery": "Utiliser un code de récupération à la place",
"totp_use_code": "Utiliser le code d'authentification à la place",
"totp_recovery_code": "Code de récupération",
"totp_back_to_login": "Retour à la connexion",
"totp_invalid_code": "Code de vérification invalide. Veuillez réessayer.",
"totp_enter_code": "Veuillez entrer un code à 6 chiffres",
"totp_enter_recovery": "Veuillez entrer un code de récupération",
"totp_session_expired": "Session expirée. Veuillez vous reconnecter.",
"totp_already_enabled": "L'authentification à deux facteurs est déjà activée"
},
"dashboard": {
"title": "Tableau de bord",
"subtitle": "Vue d'ensemble de votre serveur RustDesk",
"total_devices": "Total des appareils",
"online_now": "En ligne maintenant",
"banned": "Bannis",
"active_connections": "Connexions actives",
"offline_devices": "Hors ligne",
"server_status": "État du serveur",
"quick_actions": "Actions rapides",
"manage_devices": "Gérer les appareils connectés",
"view_keys": "Voir les clés du serveur",
"generate_config": "Générer la configuration client",
"server_settings": "Configurer les paramètres"
},
"devices": {
"title": "Appareils",
"id": "ID",
"hostname": "Nom d'hôte",
"username": "Nom d'utilisateur",
"platform": "Plateforme",
"version": "Version",
"ip_address": "Adresse IP",
"note": "Note",
"last_seen": "Vu en dernier",
"last_online": "Dernière connexion",
"first_seen": "Première apparition",
"created": "Créé",
"status": "Statut",
"ban_reason": "Raison du bannissement",
"actions": "Actions",
"search_placeholder": "Rechercher des appareils...",
"filter_all": "Tous",
"filter_online": "En ligne",
"filter_offline": "Hors ligne",
"filter_banned": "Bannis",
"selected": "sélectionné(s)",
"showing": "Affichage",
"of": "sur",
"sync_status": "État de synchronisation",
"sync_success": "Statut synchronisé avec succès",
"empty_title": "Aucun appareil trouvé",
"empty_text": "Aucun appareil ne correspond à vos filtres actuels",
"edit_title": "Détails de l'appareil",
"delete_title": "Supprimer l'appareil",
"delete_confirm": "Êtes-vous sûr de vouloir supprimer l'appareil {id} ?",
"delete_warning": "Vous êtes sur le point de supprimer définitivement cet appareil :",
"delete_permanent": "Cette action est irréversible. Toutes les données associées à cet appareil seront définitivement supprimées de la base de données.",
"delete_success": "Appareil supprimé avec succès",
"details": "Détails de l'appareil",
"ban_title": "Bannir l'appareil",
"ban_confirm": "Êtes-vous sûr de vouloir bannir l'appareil {id} ?",
"ban_success": "Appareil banni avec succès",
"unban_title": "Débannir l'appareil",
"unban_confirm": "Êtes-vous sûr de vouloir débannir l'appareil {id} ?",
"unban_success": "Appareil débanni avec succès",
"change_id": "Changer l'ID",
"change_id_title": "Changer l'ID de l'appareil",
"new_id": "Nouvel ID",
"change_id_hint": "6-16 caractères, lettres, chiffres, tirets et underscores uniquement",
"change_id_success": "ID de l'appareil modifié avec succès",
"id_length_error": "L'ID doit contenir entre 6 et 16 caractères",
"id_format_error": "L'ID ne peut contenir que des lettres, des chiffres, des tirets et des underscores",
"bulk_delete_title": "Supprimer plusieurs appareils",
"bulk_delete_confirm": "Êtes-vous sûr de vouloir supprimer {count} appareils ?",
"bulk_delete_success": "{count} appareils supprimés avec succès",
"columns": "Colonnes",
"toggle_columns": "Basculer les colonnes visibles"
},
"keys": {
"title": "Clés du serveur",
"subtitle": "Clé publique et configuration pour les clients RustDesk",
"public_key": "Clé publique",
"qr_code": "Code QR",
"server_info": "Informations du serveur",
"download": "Télécharger la clé",
"show_qr": "Afficher le QR",
"qr_hint": "Scannez ce code QR avec l'application mobile RustDesk",
"no_key": "Aucune clé publique trouvée",
"no_key_to_copy": "Aucune clé à copier",
"no_qr": "Code QR non disponible",
"download_success": "Fichier de clé téléchargé"
},
"settings": {
"title": "Paramètres",
"subtitle": "Configuration de la console et paramètres du compte",
"tab_general": "Général",
"tab_server": "Serveur",
"tab_branding": "Image de marque",
"tab_backup": "Sauvegarde",
"language": "Langue",
"change_password": "Changer le mot de passe",
"password_desc": "Mettre à jour le mot de passe de votre compte",
"current_password": "Mot de passe actuel",
"new_password": "Nouveau mot de passe",
"confirm_password": "Confirmer le mot de passe",
"save_password": "Mettre à jour le mot de passe",
"password_changed": "Mot de passe modifié avec succès",
"fill_all_fields": "Veuillez remplir tous les champs",
"passwords_not_match": "Les mots de passe ne correspondent pas",
"password_requirements": "Exigences du mot de passe",
"password_requirements_not_met": "Le mot de passe ne répond pas aux exigences",
"req_length": "Au moins 8 caractères",
"req_uppercase": "Au moins une lettre majuscule",
"req_lowercase": "Au moins une lettre minuscule",
"req_number": "Au moins un chiffre",
"server_info": "Informations du serveur",
"version": "Version",
"database": "Base de données",
"uptime": "Temps de fonctionnement",
"audit_log": "Journal d'audit",
"audit_desc": "Activité récente de la console",
"no_audit_logs": "Aucun journal d'audit trouvé",
"backend_title": "Backend du serveur",
"backend_desc": "Choisissez le backend serveur à utiliser pour la gestion des appareils et les services signal/relais.",
"backend_original": "Original",
"backend_enhanced": "Amélioré",
"backend_rustdesk_desc": "Serveurs signal et relais RustDesk standard (hbbs + hbbr). API HTTP basique avec des points d'accès limités.",
"backend_betterdesk_desc": "Serveur amélioré basé sur Go avec API REST complète, authentification JWT, liste de blocage, tags, événements WebSocket en temps réel et journalisation d'audit.",
"backend_feature_signal": "Serveur signal (enregistrement ID)",
"backend_feature_relay": "Serveur relais (relais de connexion)",
"backend_feature_basic_api": "API REST basique",
"backend_feature_full_api": "API REST complète (34+ points d'accès)",
"backend_feature_jwt": "Authentification JWT & TOTP 2FA",
"backend_feature_blocklist": "Gestion de liste de blocage IP/ID",
"backend_feature_tags": "Tags et groupement d'appareils",
"backend_feature_audit": "Journalisation des événements d'audit",
"backend_feature_websocket": "Événements WebSocket en temps réel",
"backend_connection": "Connexion",
"backend_api_url": "URL de l'API",
"backend_test": "Tester la connexion",
"backend_testing": "Test en cours...",
"backend_save": "Appliquer le backend",
"backend_saved": "Backend serveur modifié avec succès. Les données des appareils seront désormais gérées par le nouveau backend.",
"backend_save_failed": "Échec du changement de backend serveur",
"backend_test_success": "Connexion réussie ! Le serveur est accessible.",
"backend_test_failed": "Échec de la connexion. Le serveur est inaccessible.",
"backend_confirm_switch": "Êtes-vous sûr de vouloir changer le backend serveur ? Cela modifiera la gestion des appareils.",
"backend_unreachable": "Changement impossible : le serveur cible est inaccessible. Démarrez d'abord le serveur.",
"invalid_backend": "Sélection de backend invalide. Choisissez 'rustdesk' ou 'betterdesk'.",
"backend_status_running": "Connecté",
"backend_status_unreachable": "Inaccessible",
"backend_status_error": "Erreur",
"backend_status_unknown": "Inconnu",
"totp_title": "Authentification à deux facteurs",
"totp_desc": "Ajoutez une couche de sécurité supplémentaire avec les applications d'authentification TOTP (Google Authenticator, Microsoft Authenticator, Authy, etc.)",
"totp_enabled": "2FA activée",
"totp_enabled_desc": "Votre compte est protégé par l'authentification à deux facteurs.",
"totp_disabled": "2FA non activée",
"totp_disabled_desc": "Activez l'authentification à deux facteurs pour une sécurité supplémentaire du compte.",
"totp_setup": "Activer la 2FA",
"totp_disable": "Désactiver la 2FA",
"totp_step1": "Installez une application d'authentification sur votre téléphone",
"totp_step2": "Scannez le code QR ci-dessous",
"totp_step3": "Entrez le code à 6 chiffres pour vérifier",
"totp_manual_key": "Clé manuelle",
"totp_enter_code": "Entrez le code de vérification",
"totp_verify_enable": "Vérifier & Activer",
"totp_enabled_success": "Authentification à deux facteurs activée !",
"totp_recovery_warning": "Conservez ces codes de récupération en lieu sûr. Chaque code ne peut être utilisé qu'une seule fois. Si vous perdez l'accès à votre application d'authentification, vous pouvez utiliser ces codes pour vous connecter.",
"totp_done": "Terminé",
"totp_disable_warning": "Désactiver l'authentification à deux facteurs rendra votre compte moins sécurisé. Entrez votre mot de passe pour confirmer.",
"totp_disabled_success": "L'authentification à deux facteurs a été désactivée."
},
"audit": {
"time": "Heure",
"user": "Utilisateur",
"action": "Action",
"details": "Détails"
},
"generator": {
"title": "Générateur de configuration client",
"subtitle": "Générer la configuration pour les clients RustDesk",
"config_options": "Options de configuration",
"server_address": "Adresse du serveur",
"server_address_hint": "Domaine ou adresse IP de votre serveur",
"custom_port": "Port personnalisé",
"port_hint": "Laisser vide pour le port par défaut (21116)",
"relay_server": "Serveur relais",
"relay_placeholder": "Identique au serveur ID si vide",
"relay_hint": "Optionnel : adresse de serveur relais séparée",
"include_key": "Inclure la clé publique dans la configuration",
"generate": "Générer la configuration",
"output": "Sortie de configuration",
"usage_title": "Détails de connexion",
"generated": "Configuration générée",
"server_required": "L'adresse du serveur est requise",
"nothing_to_copy": "Générez d'abord une configuration"
},
"server": {
"port": "Port",
"api_port": "Port API",
"id_server": "Serveur ID",
"relay_server": "Serveur relais",
"api_key": "Clé API"
},
"status": {
"online": "En ligne",
"offline": "Hors ligne",
"banned": "Banni",
"running": "En cours",
"stopped": "Arrêté",
"unknown": "Inconnu",
"checking": "Vérification..."
},
"actions": {
"refresh": "Actualiser",
"copy": "Copier",
"connect": "Connecter",
"connect_desktop": "Connecter via le client de bureau",
"details": "Détails",
"edit": "Modifier",
"delete": "Supprimer",
"ban": "Bannir",
"unban": "Débannir",
"save": "Enregistrer",
"cancel": "Annuler",
"confirm": "Confirmer",
"close": "Fermer",
"clear": "Effacer",
"ok": "OK"
},
"time": {
"just_now": "À l'instant",
"minutes_ago": "Il y a {count} minute(s)",
"hours_ago": "Il y a {count} heure(s)",
"days_ago": "Il y a {count} jour(s)"
},
"users": {
"title": "Gestion des utilisateurs",
"subtitle": "Gérer les utilisateurs et les permissions de la console",
"add_user": "Ajouter un utilisateur",
"edit_user": "Modifier l'utilisateur",
"username": "Nom d'utilisateur",
"username_placeholder": "Entrez le nom d'utilisateur",
"username_hint": "3-32 caractères, lettres, chiffres et underscores uniquement",
"password": "Mot de passe",
"password_placeholder": "Entrez le mot de passe",
"password_hint": "Minimum 8 caractères avec majuscules, minuscules, chiffres et symboles",
"password_leave_empty": "Laisser vide pour conserver l'actuel",
"role": "Rôle",
"role_admin": "Administrateur",
"role_operator": "Opérateur",
"role_viewer": "Observateur",
"role_hint": "Les observateurs peuvent uniquement consulter les données, les opérateurs peuvent gérer les appareils, les administrateurs ont un accès complet",
"created": "Créé",
"last_login": "Dernière connexion",
"never": "Jamais",
"actions": "Actions",
"create": "Créer un utilisateur",
"edit": "Modifier",
"reset_password": "Réinitialiser le mot de passe",
"new_password": "Nouveau mot de passe",
"delete_title": "Supprimer l'utilisateur",
"delete_confirm": "Êtes-vous sûr de vouloir supprimer l'utilisateur {username} ?",
"delete_success": "Utilisateur supprimé avec succès",
"user_created": "Utilisateur créé avec succès",
"user_updated": "Utilisateur mis à jour avec succès",
"password_reset_success": "Mot de passe réinitialisé avec succès",
"empty_title": "Aucun utilisateur trouvé",
"empty_text": "Ajoutez des utilisateurs pour gérer l'accès à la console",
"fill_required": "Veuillez remplir tous les champs obligatoires",
"invalid_username": "Le nom d'utilisateur doit contenir 3-32 caractères, lettres, chiffres et underscores uniquement",
"username_exists": "Le nom d'utilisateur existe déjà",
"weak_password": "Le mot de passe est trop faible",
"password_too_short": "Le mot de passe doit contenir au moins 8 caractères",
"invalid_role": "Rôle invalide",
"cannot_demote_self": "Vous ne pouvez pas vous rétrograder",
"cannot_delete_self": "Vous ne pouvez pas supprimer votre propre compte",
"last_admin": "Impossible de supprimer le dernier administrateur",
"admin_only": "Cette fonctionnalité est réservée aux administrateurs",
"password_required": "Le mot de passe est requis",
"not_found": "Utilisateur non trouvé",
"strength_weak": "Faible",
"strength_medium": "Moyen",
"strength_strong": "Fort",
"security_tips_title": "Bonnes pratiques de sécurité",
"tip_strong_passwords": "Utilisez des mots de passe forts et uniques pour chaque utilisateur",
"tip_unique_accounts": "Créez des comptes individuels pour chaque personne",
"tip_viewer_role": "Utilisez le rôle observateur pour les utilisateurs qui n'ont besoin que d'un accès en lecture",
"tip_operator_role": "Utilisez le rôle opérateur pour les utilisateurs qui doivent gérer les appareils mais pas les utilisateurs",
"tip_audit_logs": "Vérifiez régulièrement les journaux d'audit pour détecter les activités suspectes"
},
"folders": {
"title": "Dossiers",
"create": "Créer un dossier",
"edit": "Modifier le dossier",
"delete": "Supprimer le dossier",
"name": "Nom du dossier",
"name_placeholder": "Entrez le nom du dossier",
"name_required": "Le nom du dossier est requis",
"name_too_long": "Le nom du dossier est trop long (max 50 caractères)",
"color": "Couleur",
"icon": "Icône",
"not_found": "Dossier non trouvé",
"delete_confirm": "Êtes-vous sûr de vouloir supprimer ce dossier ? Les appareils seront désassignés.",
"delete_success": "Dossier supprimé avec succès",
"created": "Dossier créé avec succès",
"updated": "Dossier mis à jour avec succès",
"no_devices_selected": "Aucun appareil sélectionné",
"devices_moved": "Appareils déplacés avec succès",
"device_assigned": "Appareil assigné au dossier",
"unassigned": "Non assigné",
"all_devices": "Tous les appareils",
"drag_hint": "Glissez les appareils dans les dossiers pour les organiser",
"move_to": "Déplacer vers",
"toggle_sidebar": "Basculer la barre latérale"
},
"errors": {
"not_found_title": "Page non trouvée",
"not_found_message": "La page que vous recherchez n'existe pas ou a été déplacée.",
"server_error_title": "Erreur serveur",
"server_error_message": "Un problème est survenu. Veuillez réessayer plus tard.",
"go_home": "Accueil",
"try_again": "Réessayer",
"load_devices_failed": "Échec du chargement des appareils",
"load_key_failed": "Échec du chargement de la clé",
"load_qr_failed": "Échec du chargement du QR",
"load_audit_failed": "Échec du chargement du journal d'audit",
"load_users_failed": "Échec du chargement des utilisateurs",
"load_folders_failed": "Échec du chargement des dossiers",
"download_failed": "Échec du téléchargement",
"logout_failed": "Échec de la déconnexion",
"password_change_failed": "Échec du changement de mot de passe",
"language_change_failed": "Échec du changement de langue",
"ban_failed": "Échec du bannissement de l'appareil",
"unban_failed": "Échec du débannissement de l'appareil",
"delete_failed": "Échec de la suppression de l'appareil",
"change_id_failed": "Échec du changement d'ID de l'appareil",
"bulk_delete_failed": "Échec de la suppression des appareils",
"sync_failed": "Échec de la synchronisation"
},
"remote": {
"title": "Bureau à distance",
"connecting": "Connexion en cours...",
"waiting_password": "En attente du mot de passe",
"authenticating": "Authentification...",
"streaming": "Connecté",
"disconnected": "Déconnecté",
"error": "Erreur",
"status_idle": "Inactif",
"password_required": "Mot de passe requis",
"enter_password_for": "Entrez le mot de passe pour l'appareil",
"password_placeholder": "Mot de passe de l'appareil",
"connect": "Connecter",
"reconnect": "Reconnecter",
"disconnect": "Déconnecter",
"back_to_devices": "Retour aux appareils",
"fullscreen": "Plein écran",
"toggle_audio": "Basculer l'audio",
"send_keys": "Envoyer des touches",
"scale_mode": "Mode de mise à l'échelle",
"scale_fit": "Adapter à la fenêtre",
"scale_fill": "Remplir la fenêtre",
"scale_original": "Taille originale (1:1)",
"scale_stretch": "Étirer",
"actions": "Actions",
"lock_screen": "Verrouiller l'écran",
"restart_remote": "Redémarrer l'appareil distant",
"refresh_screen": "Rafraîchir l'écran",
"clipboard_paste": "Coller depuis le presse-papiers",
"block_input": "Bloquer la saisie",
"display_settings": "Paramètres d'affichage",
"image_quality": "Qualité d'image",
"quality_best": "Meilleure qualité",
"quality_balanced": "Équilibrée",
"quality_low": "Performance",
"show_cursor": "Afficher le curseur distant",
"lock_after_session": "Verrouiller après la session",
"privacy_mode": "Mode confidentialité",
"disable_clipboard": "Désactiver le presse-papiers",
"chat": "Discussion",
"chat_placeholder": "Tapez un message...",
"record": "Enregistrer l'écran",
"view_only": "Affichage seul",
"pin_toolbar": "Épingler la barre d'outils",
"confirm_restart": "Êtes-vous sûr de vouloir redémarrer l'appareil distant ?",
"webcodecs_not_supported": "Votre navigateur ne prend pas en charge l'API WebCodecs. Veuillez utiliser Chrome 94+ ou Edge 94+.",
"webcodecs_insecure_context": "WebCodecs indisponible en HTTP. La vidéo utilise un décodeur logiciel. Pour de meilleures performances, utilisez HTTPS.",
"webcodecs_fallback_active": "Décodeur vidéo logiciel actif (performances limitées)",
"click_to_start": "Cliquez pour démarrer",
"autoplay_blocked": "Le navigateur nécessite une interaction utilisateur pour démarrer la vidéo et l'audio.",
"start_playback": "Démarrer la lecture"
},
"branding": {
"identity_title": "Identité de marque",
"identity_desc": "Personnalisez le nom et la description de l'application affichés dans la console",
"app_name": "Nom de l'application",
"app_description": "Description de l'application",
"logo_title": "Logo",
"logo_desc": "Choisissez comment votre logo apparaît dans la barre latérale et la page de connexion",
"logo_type_icon": "Icône Material",
"logo_type_svg": "Code SVG",
"logo_type_image": "URL de l'image",
"logo_icon_name": "Nom de l'icône",
"logo_icon_hint": "Entrez un nom Material Icons (ex: dns, cloud, security). Voir fonts.google.com/icons",
"logo_svg_code": "Code SVG",
"logo_svg_hint": "Collez votre balisage SVG ici. Supporte les éléments <svg> complets avec chemins et styles.",
"logo_image_upload": "Télécharger une image",
"logo_image_choose": "Choisir un fichier image",
"logo_image_hint": "PNG, JPG, GIF, WebP ou SVG. Max 1,5 Mo. L'image est stockée en données base64.",
"logo_image_url": "Données / URL de l'image",
"logo_image_url_hint": "Rempli automatiquement lors du téléchargement ou collez une URL manuellement.",
"logo_image_too_large": "L'image est trop grande. Taille maximale : 1,5 Mo.",
"logo_image_invalid_type": "Type de fichier invalide. Utilisez PNG, JPG, GIF, WebP ou SVG.",
"preview": "Aperçu",
"colors_title": "Palette de couleurs",
"colors_desc": "Personnalisez la palette de couleurs. Laissez vide pour les valeurs par défaut.",
"colors_backgrounds": "Arrière-plans",
"colors_text": "Texte",
"colors_accents": "Couleurs d'accentuation",
"colors_borders": "Bordures",
"import_export_title": "Import / Export",
"import_export_desc": "Sauvegardez votre thème en fichier JSON ou importez-en un d'une autre instance",
"export_theme": "Exporter le thème",
"import_theme": "Importer un thème",
"reset_defaults": "Réinitialiser par défaut",
"save_branding": "Enregistrer l'image de marque",
"saved": "Image de marque enregistrée avec succès. Rechargement...",
"exported": "Thème exporté",
"imported": "Thème importé avec succès. Rechargement...",
"import_error": "Échec de l'import du thème. Format de fichier invalide.",
"reset_confirm": "Êtes-vous sûr de vouloir réinitialiser l'image de marque par défaut ? Cette action est irréversible.",
"reset_success": "Image de marque réinitialisée par défaut. Rechargement..."
},
"device_detail": {
"tab_overview": "Vue d'ensemble",
"tab_tags": "Tags & Notes",
"tab_actions": "Actions",
"section_identity": "Identité",
"section_network": "Réseau",
"section_timestamps": "Horodatages",
"section_connect": "Connexion",
"section_manage": "Gestion",
"folder": "Dossier",
"status_tier": "Niveau de statut",
"device_banned": "Cet appareil est banni",
"no_reason": "Aucune raison fournie",
"tags": "Tags",
"no_tags": "Aucun tag assigné à cet appareil",
"tag_placeholder": "Entrez un nom de tag...",
"add_tag": "Ajouter",
"tag_exists": "Ce tag existe déjà",
"notes": "Notes",
"notes_placeholder": "Ajoutez des notes sur cet appareil...",
"danger_zone": "Zone de danger",
"action_connect_web": "Bureau à distance Web",
"action_connect_web_desc": "Connexion via le bureau à distance du navigateur",
"action_native_remote": "BetterDesk Remote",
"action_native_remote_desc": "Flux JPEG natif — aucun plugin requis",
"action_connect_desktop": "Client de bureau",
"action_connect_desktop_desc": "Ouvrir dans l'application client de bureau",
"action_change_id_desc": "Changer l'ID d'enregistrement de l'appareil",
"action_ban_desc": "Empêcher cet appareil de se connecter",
"action_unban_desc": "Permettre à cet appareil de se reconnecter",
"action_delete_desc": "Supprimer définitivement cet appareil",
"tab_hardware": "Matériel",
"tab_metrics": "Métriques",
"section_system": "Système",
"section_cpu": "Processeur",
"section_memory": "Mémoire",
"section_displays": "Écrans",
"section_encoding": "Capacités d'encodage",
"section_live_metrics": "Métriques en direct",
"section_current_usage": "Utilisation actuelle",
"section_usage_history": "Historique d'utilisation",
"os": "Système d'exploitation",
"version": "Version du client",
"cpu_model": "Modèle CPU",
"cpu_cores": "Cœurs CPU",
"cpu_freq": "Fréquence CPU",
"total_memory": "Mémoire totale",
"metric_memory": "Mémoire",
"metric_disk": "Disque",
"metrics_updated": "Mis à jour",
"device_groups": "Groupes",
"no_sysinfo": "Aucune information matérielle disponible",
"no_sysinfo_hint": "Les infos système apparaîtront après que l'appareil aura envoyé un rapport sysinfo",
"no_metrics": "Aucune donnée de métriques disponible",
"no_metrics_hint": "Les métriques apparaîtront après que l'appareil aura envoyé des rapports de battement de cœur",
"chart_oldest": "← Plus ancien",
"chart_newest": "Plus récent →"
},
"inventory": {
"title": "Inventaire",
"subtitle": "Inventaire matériel et logiciel des appareils gérés",
"device_id": "ID de l'appareil",
"hostname": "Nom d'hôte",
"os": "Système d'exploitation",
"cpu": "CPU",
"cpu_cores": "Cœurs CPU",
"cpu_usage": "Utilisation CPU",
"memory": "Mémoire",
"memory_total": "Mémoire totale",
"memory_used": "Mémoire utilisée",
"memory_available": "Mémoire disponible",
"memory_usage": "Utilisation mémoire",
"swap": "Swap",
"disks": "Disques",
"disk_count": "Nombre de disques",
"network": "Réseau",
"network_interfaces": "Interfaces réseau",
"software": "Logiciels",
"software_count": "Logiciels installés",
"system": "Système",
"kernel": "Noyau",
"architecture": "Architecture",
"uptime": "Temps de fonctionnement",
"frequency": "Fréquence",
"physical_cores": "Cœurs physiques",
"logical_cores": "Cœurs logiques",
"model": "Modèle",
"usage": "Utilisation",
"total": "Total",
"used": "Utilisé",
"available": "Disponible",
"mount_point": "Point de montage",
"removable": "Amovible",
"mac_address": "Adresse MAC",
"ip_addresses": "Adresses IP",
"traffic": "Trafic",
"collect_now": "Collecter maintenant",
"collector_running": "Collecte en cours",
"collector_stopped": "Collecte arrêtée",
"last_upload": "Dernier envoi",
"total_uploads": "Total",
"last_seen": "Vu en dernier",
"collected_at": "Collecté le",
"no_data": "Aucune donnée d'inventaire disponible. Cliquez sur \"Collecter maintenant\" pour recueillir les informations système.",
"no_devices": "Aucun appareil avec des données d'inventaire trouvé",
"detail_title": "Détails d'inventaire de l'appareil",
"telemetry": "Télémétrie",
"view_detail": "Voir les détails",
"export": "Exporter",
"refresh": "Actualiser"
},
"tickets": {
"title": "Helpdesk",
"subtitle": "Tickets de support et suivi des problèmes",
"create": "Nouveau ticket",
"edit": "Modifier le ticket",
"delete": "Supprimer le ticket",
"detail": "Détails du ticket",
"ticket_id": "ID du ticket",
"ticket_title": "Titre",
"description": "Description",
"status": "Statut",
"priority": "Priorité",
"category": "Catégorie",
"assigned_to": "Assigné à",
"created_by": "Créé par",
"device": "Appareil",
"sla_due": "Échéance SLA",
"created_at": "Créé",
"updated_at": "Mis à jour",
"resolved_at": "Résolu",
"closed_at": "Fermé",
"status_open": "Ouvert",
"status_in_progress": "En cours",
"status_resolved": "Résolu",
"status_closed": "Fermé",
"priority_low": "Faible",
"priority_medium": "Moyen",
"priority_high": "Élevé",
"priority_critical": "Critique",
"category_general": "Général",
"category_hardware": "Matériel",
"category_software": "Logiciel",
"category_network": "Réseau",
"category_access": "Accès",
"category_other": "Autre",
"comments": "Commentaires",
"add_comment": "Ajouter un commentaire",
"comment_placeholder": "Écrire un commentaire...",
"internal_note": "Note interne (non visible par les utilisateurs finaux)",
"attachments": "Pièces jointes",
"upload_attachment": "Télécharger une pièce jointe",
"download": "Télécharger",
"connect_device": "Se connecter à l'appareil",
"no_tickets": "Aucun ticket trouvé",
"no_comments": "Aucun commentaire",
"no_attachments": "Aucune pièce jointe",
"title_required": "Le titre est requis",
"delete_confirm": "Êtes-vous sûr de vouloir supprimer le ticket #{id} ?",
"delete_success": "Ticket supprimé avec succès",
"created_success": "Ticket créé avec succès",
"updated_success": "Ticket mis à jour avec succès",
"sla_overdue": "SLA dépassé",
"filter_all": "Tous",
"search_placeholder": "Rechercher des tickets...",
"assign_to_me": "M'assigner",
"unassign": "Désassigner",
"stats_total": "Total",
"stats_open": "Ouverts",
"stats_in_progress": "En cours",
"stats_resolved": "Résolus",
"stats_closed": "Fermés"
},
"activity": {
"title": "Surveillance d'activité",
"subtitle": "Utilisation des applications et suivi de l'inactivité",
"device": "Appareil",
"hostname": "Nom d'hôte",
"sessions": "Sessions",
"idle_time": "Temps d'inactivité",
"active_time": "Temps actif",
"last_report": "Dernier rapport",
"top_apps": "Applications principales",
"app_name": "Application",
"window_title": "Titre de la fenêtre",
"category": "Catégorie",
"duration": "Durée",
"started_at": "Démarré",
"ended_at": "Terminé",
"session_count": "Nombre de sessions",
"total_active": "Total actif",
"total_idle": "Total inactif",
"detail_count": "Enregistrements détaillés",
"no_data": "Aucune donnée d'activité disponible",
"no_sessions": "Aucune session enregistrée",
"filter_from": "De",
"filter_to": "À",
"filter_apply": "Appliquer le filtre",
"hours": "heures",
"minutes": "minutes",
"seconds": "secondes",
"category_browser": "Navigateur",
"category_productivity": "Productivité",
"category_communication": "Communication",
"category_development": "Développement",
"category_media": "Médias",
"category_gaming": "Jeux",
"category_system": "Système",
"category_other": "Autre",
"summary": "Résumé",
"details": "Détails",
"refresh": "Actualiser"
},
"automation": {
"title": "Automatisation & Alertes",
"subtitle": "Règles d'alerte, commandes à distance et configuration SMTP",
"rules": "Règles d'alerte",
"rules_subtitle": "Définir les conditions qui déclenchent des notifications",
"alerts": "Historique des alertes",
"alerts_subtitle": "Voir et acquitter les alertes déclenchées",
"commands": "Commandes à distance",
"commands_subtitle": "Envoyer des commandes aux appareils distants",
"smtp": "Configuration SMTP",
"smtp_subtitle": "Paramètres de notification par e-mail",
"rule_name": "Nom de la règle",
"description": "Description",
"condition_type": "Type de condition",
"condition_op": "Opérateur",
"condition_value": "Seuil",
"severity": "Sévérité",
"scope_device": "Appareil cible",
"scope_all": "Tous les appareils",
"cooldown": "Temps de refroidissement (secondes)",
"notify_emails": "E-mails de notification",
"enabled": "Activé",
"disabled": "Désactivé",
"create_rule": "Créer une règle",
"edit_rule": "Modifier la règle",
"delete_rule": "Supprimer la règle",
"acknowledge": "Acquitter",
"acknowledged": "Acquitté",
"unacknowledged": "Non acquitté",
"triggered_at": "Déclenché le",
"severity_info": "Info",
"severity_warning": "Avertissement",
"severity_critical": "Critique",
"op_gt": "Supérieur à",
"op_gte": "Supérieur ou égal",
"op_lt": "Inférieur à",
"op_lte": "Inférieur ou égal",
"op_eq": "Égal à",
"op_neq": "Différent de",
"type_cpu_usage": "Utilisation CPU (%)",
"type_memory_usage": "Utilisation mémoire (%)",
"type_disk_usage": "Utilisation disque (%)",
"type_offline_duration": "Durée hors ligne (s)",
"type_idle_duration": "Durée d'inactivité (s)",
"type_custom": "Personnalisé",
"command_type": "Type de commande",
"command_payload": "Commande / Script",
"command_result": "Résultat",
"command_status": "Statut",
"send_command": "Envoyer la commande",
"status_pending": "En attente",
"status_running": "En cours",
"status_completed": "Terminé",
"status_failed": "Échoué",
"smtp_host": "Hôte SMTP",
"smtp_port": "Port",
"smtp_secure": "Utiliser TLS",
"smtp_user": "Nom d'utilisateur",
"smtp_pass": "Mot de passe",
"smtp_from": "Adresse d'expédition",
"smtp_test": "Tester la connexion",
"smtp_save": "Enregistrer la configuration",
"smtp_test_success": "Connexion réussie",
"smtp_test_failed": "Échec de la connexion",
"no_rules": "Aucune règle d'alerte configurée",
"no_alerts": "Aucune alerte déclenchée",
"no_commands": "Aucune commande envoyée"
},
"file_transfer": {
"title": "Transfert de fichiers",
"transfers": "Transferts",
"new_transfer": "Nouveau transfert",
"upload": "Télécharger vers",
"download": "Télécharger depuis",
"direction": "Direction",
"filename": "Nom du fichier",
"file_size": "Taille du fichier",
"mime_type": "Type MIME",
"progress": "Progression",
"status": "Statut",
"device": "Appareil",
"initiated_by": "Initié par",
"created_at": "Créé le",
"cancel": "Annuler",
"cancel_confirm": "Êtes-vous sûr de vouloir annuler ce transfert ?",
"download_file": "Télécharger le fichier",
"browse_files": "Parcourir les fichiers",
"select_file": "Sélectionner un fichier",
"select_device": "Sélectionner un appareil",
"no_transfers": "Aucun transfert de fichier",
"status_pending": "En attente",
"status_active": "Actif",
"status_completed": "Terminé",
"status_failed": "Échoué",
"status_cancelled": "Annulé",
"bytes_transferred": "Octets transférés",
"chunks": "Blocs",
"transfer_started": "Transfert démarré",
"transfer_completed": "Transfert terminé",
"transfer_failed": "Transfert échoué",
"transfer_cancelled": "Transfert annulé",
"max_file_size": "Taille maximale du fichier : 4 Go",
"error_too_large": "Le fichier est trop volumineux",
"error_no_device": "Aucun appareil sélectionné",
"error_no_file": "Aucun fichier sélectionné"
},
"network": {
"title": "Surveillance réseau",
"targets": "Cibles de surveillance",
"add_target": "Ajouter une cible",
"edit_target": "Modifier la cible",
"delete_target": "Supprimer la cible",
"delete_confirm": "Êtes-vous sûr de vouloir supprimer cette cible ?",
"target_name": "Nom",
"host": "Hôte",
"port": "Port",
"url": "URL",
"check_type": "Type de vérification",
"timeout": "Délai d'attente (ms)",
"interval": "Intervalle (ms)",
"enabled": "Activé",
"status": "Statut",
"last_check": "Dernière vérification",
"last_rtt": "Dernier RTT",
"rtt_ms": "RTT (ms)",
"status_up": "Accessible",
"status_down": "Inaccessible",
"status_unknown": "Inconnu",
"check_now": "Vérifier maintenant",
"history": "Historique des vérifications",
"stats": "Statistiques",
"total_targets": "Cibles totales",
"targets_up": "Cibles accessibles",
"targets_down": "Cibles inaccessibles",
"type_ping": "Ping (ICMP)",
"type_tcp": "Port TCP",
"type_http": "HTTP",
"type_https": "HTTPS",
"tools": "Outils réseau",
"ping_tool": "Test Ping",
"tcp_tool": "Vérification port TCP",
"http_tool": "Vérification HTTP",
"dns_tool": "Résolution DNS",
"monitor_start": "Démarrer la surveillance",
"monitor_stop": "Arrêter la surveillance",
"monitor_running": "Surveillance en cours",
"monitor_stopped": "Surveillance arrêtée",
"no_targets": "Aucune cible de surveillance configurée",
"no_history": "Aucun historique de vérification disponible",
"error_code": "Erreur",
"status_code": "Code de statut HTTP"
},
"dataguard": {
"title": "DataGuard — DLP",
"policies": "Politiques DLP",
"add_policy": "Ajouter une politique",
"edit_policy": "Modifier la politique",
"delete_policy": "Supprimer la politique",
"delete_confirm": "Êtes-vous sûr de vouloir supprimer cette politique ?",
"policy_name": "Nom",
"policy_description": "Description",
"enabled": "Activé",
"disabled": "Désactivé",
"rules": "Règles",
"add_rule": "Ajouter une règle",
"rule_type": "Type de règle",
"rule_type_usb": "Périphérique USB",
"rule_type_file": "Opération sur fichier",
"action": "Action",
"action_allow": "Autoriser",
"action_block": "Bloquer",
"action_log": "Journaliser uniquement",
"filter": "Filtre",
"vid": "ID fournisseur (VID)",
"pid": "ID produit (PID)",
"serial": "Numéro de série",
"device_class": "Classe d'appareil",
"drive_type": "Type de lecteur",
"file_extensions": "Extensions de fichier",
"events": "Événements DLP",
"event_source": "Source",
"event_source_usb": "USB",
"event_source_file": "Fichier",
"event_type": "Type d'événement",
"event_details": "Détails",
"no_policies": "Aucune politique DLP configurée",
"no_events": "Aucun événement DLP enregistré",
"stats": "Statistiques",
"total_events": "Total des événements",
"blocked_events": "Bloqués",
"logged_events": "Journalisés",
"usb_events": "Événements USB",
"file_events": "Événements fichier",
"device_id": "ID de l'appareil",
"policy_matched": "Politique correspondante",
"timestamp": "Horodatage",
"drive_removable": "Amovible",
"drive_fixed": "Fixe",
"drive_network": "Réseau",
"drive_cdrom": "CD-ROM",
"drive_unknown": "Inconnu"
},
"reports": {
"title": "Rapports",
"generate": "Générer un rapport",
"generate_csv": "Exporter CSV",
"report_type": "Type de rapport",
"type_devices": "Résumé des appareils",
"type_activity": "Résumé d'activité",
"type_security": "Rapport de sécurité",
"type_tickets": "Rapport de tickets",
"type_network": "Rapport réseau",
"type_inventory": "Rapport d'inventaire",
"type_alerts": "Rapport d'alertes",
"saved": "Rapports sauvegardés",
"save_report": "Sauvegarder le rapport",
"delete_report": "Supprimer le rapport",
"delete_confirm": "Êtes-vous sûr de vouloir supprimer ce rapport sauvegardé ?",
"no_saved": "Aucun rapport sauvegardé",
"report_title": "Titre",
"created_by": "Créé par",
"created_at": "Créé le",
"filters": "Filtres",
"date_from": "De",
"date_to": "À",
"device_filter": "ID de l'appareil",
"generated_at": "Généré le",
"section": "Section de données",
"total_devices": "Total des appareils",
"online": "En ligne",
"offline": "Hors ligne",
"banned": "Bannis",
"platform_distribution": "Distribution par plateforme",
"top_applications": "Applications principales",
"total_active": "Temps total actif",
"total_idle": "Temps total inactif",
"dlp_stats": "Statistiques DLP",
"banned_devices": "Appareils bannis",
"audit_logs": "Journaux d'audit",
"ticket_stats": "Statistiques des tickets",
"category_distribution": "Distribution par catégorie",
"priority_distribution": "Distribution par priorité",
"targets_status": "Statut des cibles",
"os_distribution": "Distribution des OS",
"avg_ram": "RAM moyenne",
"alert_rules": "Règles d'alerte",
"recent_alerts": "Alertes récentes"
},
"tenants": {
"title": "Multi-location",
"list": "Locataires",
"add_tenant": "Ajouter un locataire",
"edit_tenant": "Modifier le locataire",
"delete_tenant": "Supprimer le locataire",
"delete_confirm": "Êtes-vous sûr de vouloir supprimer ce locataire ? Toutes les affectations d'appareils et d'utilisateurs seront supprimées.",
"name": "Nom",
"slug": "Slug",
"contact_name": "Nom du contact",
"contact_email": "E-mail du contact",
"max_devices": "Max appareils",
"max_devices_hint": "0 = illimité",
"notes": "Notes",
"active": "Actif",
"inactive": "Inactif",
"devices": "Appareils",
"users": "Utilisateurs",
"assign_device": "Assigner un appareil",
"assign_devices": "Assigner des appareils",
"remove_device": "Retirer l'appareil",
"assign_user": "Assigner un utilisateur",
"remove_user": "Retirer l'utilisateur",
"no_tenants": "Aucun locataire configuré",
"no_devices": "Aucun appareil assigné à ce locataire",
"no_users": "Aucun utilisateur assigné à ce locataire",
"stats": "Statistiques du locataire",
"total_devices": "Total des appareils",
"online_devices": "Appareils en ligne",
"total_users": "Total des utilisateurs",
"created_at": "Créé le",
"updated_at": "Mis à jour le",
"slug_exists": "Le slug du locataire existe déjà"
},
"registrations": {
"title": "Inscriptions des appareils",
"subtitle": "Gérer les demandes d'inscription des appareils découverts via LAN",
"search_placeholder": "Rechercher par ID d'appareil, nom d'hôte ou IP...",
"no_registrations": "Aucune demande d'inscription",
"col_device_id": "ID de l'appareil",
"col_hostname": "Nom d'hôte",
"col_platform": "Plateforme",
"col_ip": "Adresse IP",
"col_version": "Version",
"col_status": "Statut",
"col_requested": "Demandé",
"col_actions": "Actions",
"status_pending": "En attente",
"status_approved": "Approuvé",
"status_rejected": "Rejeté",
"approve_btn": "Approuver",
"approve_confirm": "Êtes-vous sûr de vouloir approuver cet appareil ? Il recevra les identifiants du serveur et pourra se connecter automatiquement.",
"approved_success": "Inscription de l'appareil approuvée avec succès",
"reject_btn": "Rejeter",
"reject_title": "Rejeter l'inscription",
"reject_confirm": "Êtes-vous sûr de vouloir rejeter cette demande d'inscription ?",
"reject_reason": "Raison (optionnel)",
"reject_reason_placeholder": "Entrez la raison du rejet...",
"rejected_success": "Inscription de l'appareil rejetée",
"delete_confirm": "Êtes-vous sûr de vouloir supprimer cet enregistrement d'inscription ?",
"deleted_success": "Enregistrement d'inscription supprimé"
},
"backup": {
"title": "Sauvegarde",
"desc": "Téléchargez une sauvegarde complète de la configuration de votre console, utilisateurs, groupes et paramètres. Les données peer du serveur Go sont incluses lorsque le backend BetterDesk est actif.",
"restore_title": "Restaurer",
"restore_desc": "Téléchargez un fichier de sauvegarde précédemment téléchargé pour restaurer la configuration de la console. Sélectionnez ci-dessous les sections à restaurer.",
"stat_users": "Utilisateurs",
"stat_settings": "Paramètres",
"stat_folders": "Dossiers",
"stat_groups": "Groupes",
"stat_strategies": "Stratégies",
"stat_backend": "Backend",
"download": "Télécharger la sauvegarde",
"creating": "Création de la sauvegarde...",
"download_success": "Sauvegarde téléchargée avec succès",
"upload": "Envoyer la sauvegarde",
"restore_confirm": "Êtes-vous sûr de vouloir restaurer à partir de cette sauvegarde ? Les sections sélectionnées seront écrasées.",
"restore_success": "Sauvegarde restaurée avec succès. Certaines modifications peuvent nécessiter un rechargement de la page.",
"restored": "Restauré",
"skipped": "Ignoré",
"backup_date": "Date de sauvegarde",
"opt_settings": "Paramètres de la console",
"opt_branding": "Image de marque / Thème",
"opt_folders": "Dossiers d'appareils",
"opt_groups": "Groupes d'utilisateurs & d'appareils",
"opt_addressbooks": "Carnets d'adresses",
"opt_users": "Comptes utilisateurs",
"opt_users_warning": "Destructif : remplace TOUS les comptes utilisateurs par les données de sauvegarde. Vous pourriez être déconnecté.",
"no_file": "Aucun fichier de sauvegarde sélectionné",
"invalid_json": "Fichier de sauvegarde invalide : JSON non valide",
"invalid_format": "Fichier de sauvegarde invalide : pas une sauvegarde BetterDesk"
}
}