{
  "exportLoadFailed": "Échec du chargement des données d'export",
  "dryRunDone": "Simulation terminée (système inchangé)",
  "rebuildDone": "Demande de reconstruction terminée — voir le résultat ops",
  "exportWritten": "Export écrit / conf gérée listée",
  "rebuildFailed": "Échec de la reconstruction",
  "hostFallback": "Hôte",
  "mem": "Mémoire",
  "diskPeak": "Pic disque",
  "exportRebuild": "Export / Reconstruction",
  "dnsCerts": "DNS / certificats",
  "editIdentity": "Modifier l'identité",
  "power": "Alimentation",
  "metrics": "Métriques",
  "writeExports": "Écrire le répertoire d'export",
  "dryRunSync": "Synchronisation en simulation",
  "hostConsole": "Console hôte",
  "loadingHost": "Chargement de l'aperçu de l'hôte…",
  "identity": "Identité",
  "identityReadonly": "Lecture seule — nécessite YSK_EXECUTE + root pour appliquer",
  "identityTools": "Définir le nom d'hôte et le fuseau horaire via les outils système",
  "hostnameHint": "Nom d'hôte système",
  "writable": "Accessible en écriture",
  "locked": "Verrouillé",
  "hostname": "Nom d'hôte",
  "prettyName": "Nom convivial",
  "optional": "Facultatif",
  "prettyPh": "Nom d'affichage convivial",
  "timezone": "Fuseau horaire",
  "timezoneHint": "Choisissez un fuseau horaire IANA dans la liste (p. ex. Asia/Hong_Kong)",
  "timezoneNow": "Heure de l'hôte maintenant : {{time}} ({{tz}})",
  "timezoneBrowserDiff": "Cet hôte utilise {{host}} ; votre navigateur utilise {{browser}}. Changer le fuseau horaire ici modifie l'horloge de l'hôte, pas celle du navigateur.",
  "timezoneSelect": "Sélectionner le fuseau horaire",
  "notExported": "Pas encore exporté",
  "dns": "DNS",
  "updated": "Mis à jour",
  "applyIdentity": "Appliquer l'identité",
  "identitySetHostname": "Nom d'hôte défini sur {{name}}",
  "identitySetPretty": "Nom d'hôte convivial défini sur {{name}}",
  "identityClearPretty": "Nom d'hôte convivial effacé",
  "identitySetTimezone": "Fuseau horaire défini sur {{tz}}",
  "panelSsl": "SSL du panneau",
  "panelTls": {
    "title": "HTTPS du panneau",
    "sub": "Le plan de contrôle (ysk-server) sert le TLS sur listenPort ; WebAuthn/Passkeys nécessitent HTTPS",
    "domain": "Domaine du panneau",
    "domainHint": "Utilisé pour l'émission/la liaison de certificat, par ex. démo.ysk.hk",
    "email": "E-mail Let’s Encrypt",
    "status": "Statut",
    "enabled": "TLS activé dans la configuration",
    "disabled": "TLS désactivé (HTTP)",
    "serving": "Cette connexion : HTTPS",
    "servingHttp": "Cette connexion : HTTP",
    "expires": "Expiration du certificat",
    "certPath": "Chemin du certificat",
    "issueEnable": "Émettre le certificat et activer HTTPS",
    "enableExisting": "Activer avec le certificat existant",
    "disable": "Désactiver le HTTPS du panneau",
    "disableNeedConfirm": "Confirmation requise — saisissez DISABLE-HTTPS",
    "needDomain": "Saisissez d'abord le nom d'hôte / domaine",
    "needFqdn": "Besoin d'un nom de domaine complet (exemple.com), pas d'un simple nom d'hôte",
    "urlHint": "Après redémarrage, ouvrez {{url}}",
    "certMissing": "TLS activé mais fichiers cert/clé manquants",
    "restartToApply": "Redémarrez ysk-server pour appliquer HTTPS",
    "noConfig": "config.json introuvable (démarrer avec --config)",
    "usingExisting": "Utilisation du certificat local existant",
    "usingLe": "Utilisation des chemins live Let’s Encrypt",
    "needCertFirst": "Aucun certificat pour {{domain}} ; émettez-en un ou téléversez-en un d’abord",
    "configWritten": "Paramètres TLS du panneau enregistrés",
    "disabledNote": "TLS du panneau désactivé",
    "certAlreadyPresent": "Certificat déjà présent ; réémission ignorée",
    "restartManual": "Redémarrez manuellement : systemctl restart ysk-server",
    "restarted": "ysk-server redémarré",
    "restartFailed": "Échec du redémarrage : {{detail}}",
    "firewallHint": "Si accès depuis Internet, autorisez le port du panneau (par défaut 9287/tcp)",
    "restartNow": "Redémarrez ysk-server immédiatement après",
    "restartNowHint": "Ferme cette session ;",
    "restartConfirm": "Redémarrer le service du panneau maintenant ? Cette connexion peut être interrompue — rouvrez en HTTPS.",
    "manualRestart": "Redémarrez manuellement, puis ouvrez {{url}}",
    "reconnectHttps": "Le service a peut-être redémarré. Reconnectez-vous sur {{url}}.",
    "leStrategies": "Cert. panneau : essayer webroot → nginx certonly → standalone (sans --redirect)",
    "leOk": "Certificat Let’s Encrypt obtenu pour {{domain}}",
    "leFailed": "Échec de la demande de certificat : {{detail}}",
    "leHint": "Vérifiez que l’enregistrement DNS A pointe ici et que le port 80 est joignable (ou que nginx sert le domaine)",
    "openFirewall": "Si public : autorisez le port du panneau {{port}}/tcp (Pare-feu → ouvrir le port → 9287 Panel)",
    "disableConfirmTitle": "Désactiver le panneau HTTPS ?",
    "disableConfirmDesc": "Le panneau servira HTTP. WebAuthn/Passkey cessera de fonctionner jusqu'à ce que HTTPS soit réactivé.",
    "disablePasskeyWarn": "Les clés d'accès enregistrées nécessitent HTTPS – elles échoueront sur HTTP.",
    "listenPublic": "Le panneau écoute sur une adresse publique (0.0.0.0/::). Restreindre avec un pare-feu ou lier à 127.0.0.1.",
    "bootstrapCert": "Il s'agit du certificat d'amorçage auto-signé — les navigateurs vous avertiront. Émettez un certificat approuvé pour le domaine du panneau.",
    "cliNoSocket": "La CLI n'a pas de socket HTTP actif ; serveHttps est déduit des sockets de configuration et d'écoute (ss).",
    "listenHost": "Adresse d'écoute",
    "currentHost": "Cette séance",
    "replaceCert": "Remplacer par un certificat de confiance"
  },
  "timeNtp": "Heure et NTP",
  "clockStatus": "État de l’horloge système",
  "local": "Locale",
  "utc": "UTC",
  "source": "Source",
  "ntpService": "Service NTP",
  "ntpServiceActive": "En cours",
  "ntpServiceInactive": "Arrêté",
  "ntpServiceNa": "N / A",
  "ntpSync": "Synchro. horloge",
  "ntpSyncedYes": "Synchronisé",
  "ntpSyncedNo": "Non synchronisé",
  "ntpSyncedUnknown": "Inconnu",
  "ntpRequested": "Activation de la synchro NTP demandée",
  "ntpFailed": "Échec de l’activation de NTP",
  "enableNtp": "Activer la synchro NTP",
  "network": "Réseau",
  "networkSub": "Lecture seule · le netplan complet n’est pas sur cette page",
  "noIp": "Impossible de lire les IP",
  "storage": "Stockage",
  "metricsDetail": "Détail des métriques",
  "noDisk": "Impossible de lire les disques",
  "avail": "Disp. {{v}}",
  "shortcuts": "Raccourcis Ops",
  "shortcutsAria": "Raccourcis Ops",
  "scServices": "Matrice des services",
  "scServicesD": "cycle de vie de l’unité",
  "scUnit": "Unité du plan de contrôle",
  "scUnitD": "Unité systemd du panneau",
  "scReadiness": "Disponibilité",
  "scReadinessD": "Gate de production",
  "scUpdates": "Mises à jour système",
  "scUpdatesD": "Paquets / CVE",
  "scMetrics": "Métriques de l'hôte",
  "scMetricsD": "Alertes de charge",
  "scLogs": "Centre de journaux",
  "scLogsD": "journal / fichiers",
  "powerTitle": "Alimentation (zone de danger)",
  "powerWarn": "Le redémarrage/arrêt coupe tous les services et le panneau. Le panneau ne peut pas rallumer l’hôte — accès physique ou hyperviseur requis.",
  "unlocked": "Déverrouillé",
  "powerUnlock": "Débloquez la zone dangereuse",
  "powerLock": "Verrouiller la zone dangereuse",
  "noScheduledPower": "Aucun redémarrage ou mise hors tension n'est prévu",
  "powerCaps": "Nécessite YSK_EXECUTE=1 et root. Actuellement EXECUTE={{exec}}, root={{root}}.",
  "scheduledPower": "Arrêt/redémarrage planifié détecté",
  "cancelScheduleHint": ". Utilisez « Annuler la planification » pour retirer.",
  "rebootHost": "Redémarrer l’hôte…",
  "poweroffHost": "Éteindre…",
  "cancelled": "Annulé",
  "cancelFailed": "Échec de l’annulation",
  "cancelSchedule": "Annuler la planification",
  "confirmStrings": "Confirmer avec REBOOT / POWEROFF. Délai par défaut ~1 min pour poweroff et reboot (shutdown +N). Écrit dans l’audit.",
  "confirmReboot": "Confirmer le redémarrage de l’hôte ?",
  "confirmPoweroff": "Confirmer l’arrêt ?",
  "confirmRebootDesc": "Tous les services et sessions du panneau seront interrompus. Tapez REBOOT pour confirmer.",
  "confirmPoweroffDesc": "L’hôte s’éteindra ; le panneau ne peut pas le rallumer à distance. Tapez POWEROFF pour confirmer.",
  "typeToUnlock": "Tapez {{need}} pour déverrouiller",
  "confirmRebootBtn": "Confirmer le redémarrage",
  "confirmPoweroffBtn": "Confirmer l’arrêt",
  "sentDisconnect": "Envoyé — la connexion va se couper",
  "powerFailed": "Échec de l’action d’alimentation",
  "exportExplain": "Export = résumé JSON de la BD du panneau. Rebuild = conf gérée → /etc/nginx/conf.d + reload. Sync nécessite root + EXECUTE.",
  "controlSummary": "Résumé du plan de contrôle",
  "controlSummarySub": "Instantané BD en direct · prévisualiser / télécharger / écrire sur le serveur",
  "snapshotLoaded": "Résumé chargé · {{at}}",
  "previewSummary": "Prévisualiser le résumé",
  "downloadedJson": "JSON téléchargé dans le navigateur",
  "downloadJson": "Télécharger le JSON",
  "snapshotMeta": "Généré {{at}} · utilisateurs {{users}} · paquets {{packages}}",
  "previewHint": "Cliquez sur « Prévisualiser le résumé » pour charger l’instantané du plan de contrôle.",
  "managedNotEtc": "dataDir/nginx/conf.d — pas la même chose que ce qui est appliqué sous /etc",
  "nFiles": "{{count}} fichiers",
  "noManaged": "Aucune conf gérée pour l’instant",
  "noManagedDesc": "Apparaît après la publication du Nginx du projet",
  "readFailed": "Échec de la lecture",
  "preview": "Aperçu",
  "previewModalDesc": "Contenu de la conf gérée (dataDir)",
  "prevPage": "Précédent",
  "nextPage": "Suivant",
  "pageOf": "Page {{page}} / {{total}} · {{count}} fichiers",
  "managedPager": "Pages de conf gérée",
  "syncToSystem": "Synchroniser vers le système",
  "syncSub": "Copier vers /etc/nginx/conf.d et recharger — nécessite root + EXECUTE",
  "syncReload": "Synchronisation + rechargement",
  "syncReloadNeedConfirm": "Confirmation requise — écrit /etc/nginx/conf.d et recharge Nginx",
  "exportOnly": "Export seul + liste conf",
  "dryRun": "Simulation",
  "dryRunNote": "La simulation ne modifie pas le système.",
  "exportHistory": "Historique des exports serveur",
  "exportHistorySub": "dataDir/exports · téléchargement authentifié",
  "noExports": "Aucun fichier d’export serveur pour l’instant",
  "noExportsDesc": "Cliquez sur « Écrire le répertoire d’export » pour créer",
  "downloaded": "Téléchargé {{name}}",
  "download": "Télécharger",
  "syncConfirmTitle": "Synchroniser Nginx vers le système ?",
  "syncConfirmDesc": "Synchroniser la conf Nginx gérée vers /etc/nginx/conf",
  "uptime": "Disponibilité",
  "load1m": "Charger 1m",
  "executeLabel": "EXECUTE",
  "rootLabel": "Racine",
  "managedLabel": "Géré",
  "managedCount": "Géré",
  "exportsCount": "Exportations",
  "managedNginxTitle": "Nginx géré",
  "exportPath": "Chemin d’export",
  "mode": "Mode",
  "managedConf": "Conf gérée",
  "dryRunFlag": "Simulation",
  "timezoneSearch": "Filtrer les fuseaux horaires…",
  "resyncNtp": "Resynchroniser NTP",
  "storageSub": "Utilisation du disque",
  "nginxLeftover": "Reliquat",
  "nginxUnused": "Inutilisé",
  "nginxLeftoverHint": "Conf reliquat (ex. public-files). Incluse dans la sync tant que vous n’agissez pas.",
  "nginxUnusedHint": "Conf stock / catch-all (000-default). Incluse dans la sync tant que vous n’agissez pas.",
  "nginxRemoveLeftover": "Supprimer les restes",
  "nginxRemoveLeftoverTitle": "Supprimer la configuration nginx restante ?",
  "nginxRemoveLeftoverDesc": "Supprime {{name}} de l'inventaire du panneau. La copie live /etc/nginx est supprimée uniquement avec YSK_EXECUTE + root. 000-default n'est pas restant et ne peut pas être supprimé ici.",
  "needExecuteRoot": "Nécessite YSK_EXECUTE + racine"
}
