{
  "app": {
    "name": "PromptHub",
    "description": "Gestionnaire de Prompts local avec contrôle de version"
  },
  "filter": {
    "all": "Tout",
    "text": "Texte",
    "image": "Image"
  },
  "nav": {
    "allPrompts": "Tous les Prompts",
    "textPrompts": "Prompts texte",
    "imagePrompts": "Prompts image",
    "favorites": "Favoris",
    "folders": "Dossiers",
    "tags": "Tags",
    "resources": "Ressources recommandées",
    "installed": "Installées",
    "allSkills": "Toutes les compétences",
    "added": "Ajoutées",
    "deployed": "Déployées",
    "skillLibrary": "Bibliothèque de skills",
    "mySkills": "Mes compétences",
    "projects": "Compétences du projet",
    "libraryImported": "Depuis la bibliothèque",
    "platformDeployed": "Déployées sur la plateforme",
    "distribution": "Distribution",
    "skillStore": "Boutique de skills"
  },
  "header": {
    "search": "Rechercher un Prompt...",
    "new": "Nouveau",
    "settings": "Paramètres",
    "topbarWebTitle": "PromptHub Web",
    "searchProjectSkills": "Rechercher des skills du projet...",
    "searchSkill": "Rechercher des skills...",
    "resultsCount": "{{count}} résultats",
    "noResults": "Aucun résultat",
    "prevResult": "Précédent (Shift+Tab)",
    "nextResult": "Suivant (Tab)",
    "clearSearch": "Effacer la recherche"
  },
  "prompt": {
    "title": "Titre",
    "description": "Description",
    "systemPrompt": "Prompt système",
    "systemPromptEn": "Prompt système (anglais)",
    "userPrompt": "Prompt utilisateur",
    "userPromptEn": "Prompt utilisateur (anglais)",
    "addEnglishVersion": "Ajouter version anglaise",
    "addLocalizedVersion": "Add Localized Version",
    "alreadyEnglish": "Content is already in English",
    "translateDetectedEnglish": "English detected, translate to current language",
    "removeEnglishVersion": "Masquer la version anglaise",
    "showChinese": "Chinois",
    "showEnglish": "English",
    "showLocalized": "Show Localized",
    "bilingualHint": "Support bilingue pour une utilisation et modification faciles",
    "tags": "Tags",
    "media": "Média",
    "properties": "Propriétés",
    "basicInfo": "Infos de base",
    "moreSettings": "Plus de réglages",
    "type": "Prompt Type",
    "typeText": "Text",
    "typeImage": "Image",
    "typeTextDesc": "Test with chat models (e.g., GPT-4)",
    "typeImageDesc": "Test with image models (e.g., DALL-E). Generated images will be saved to preview.",
    "videoNotSupported": "Video generation coming soon!",
    "mismatchText": "Current Prompt is Text type, please configure a Chat Model in settings.",
    "mismatchImage": "Current Prompt is Image type, please configure an Image Model in settings.",
    "notesOptional": "Notes (optionnel)",
    "notes": "Notes",
    "notesPlaceholder": "Notes personnelles sur ce prompt...",
    "source": "Source",
    "sourceOptional": "Source (optionnel)",
    "sourcePlaceholder": "Où as-tu trouvé ce Prompt ? ex: URL, livre, etc.",
    "variables": "Variables",
    "preview": "Aperçu",
    "copy": "Copier le Prompt",
    "duplicate": "Créer un doublon",
    "duplicateSuffix": "Copie",
    "filterByTag": "Filtrer par tag",
    "copied": "Copié",
    "edit": "Modifier",
    "delete": "Supprimer",
    "save": "Enregistrer",
    "cancel": "Annuler",
    "create": "Créer",
    "noPrompts": "Aucun Prompt",
    "addFirst": "Cliquez sur \"Nouveau\" pour créer votre premier Prompt",
    "resizeListPaneAria": "Redimensionner la liste des prompts",
    "selectPrompt": "Sélectionnez un Prompt",
    "selectPromptDesc": "Sélectionnez un Prompt dans la liste pour voir les détails, ou cliquez sur \"Nouveau\"",
    "variableHint": "Utilisez {{nomVariable}} pour définir des variables",
    "history": "Historique des versions",
    "historyLoading": "Chargement...",
    "noHistory": "Aucun historique de version",
    "noHistoryHint": "Les versions sont automatiquement enregistrées lors de l'édition",
    "selectVersion": "Sélectionner une version",
    "selectCompareVersion": "Sélectionner une version à comparer",
    "versionCompare": "Comparer les versions",
    "exitCompare": "Quitter la comparaison",
    "restoreVersion": "Restaurer cette version",
    "restoreConfirm": "Voulez-vous vraiment restaurer la v{{version}} ? Le contenu actuel sera écrasé.",
    "currentVersion": "Version actuelle",
    "deleteVersionTitle": "Supprimer la version",
    "deleteVersionConfirm": "Supprimer la v{{version}} ? Cette entrée d’historique sera définitivement perdue.",
    "noChanges": "Aucun changement",
    "noContent": "(vide)",
    "changeNote": "Note de modification",
    "aiTest": "Test IA",
    "outputFormat": "Format de sortie",
    "outputFormatText": "Texte",
    "outputFormatJson": "Mode JSON",
    "outputFormatJsonSchema": "JSON Schema",
    "jsonSchemaName": "Nom du Schema",
    "jsonSchemaContent": "Définition du Schema",
    "jsonSchemaPlaceholder": "Entrez le JSON Schema, par ex. :\n{\n  \"type\": \"object\",\n  \"properties\": {\n    \"answer\": { \"type\": \"string\" }\n  },\n  \"required\": [\"answer\"]\n}",
    "jsonSchemaInvalid": "JSON Schema invalide",
    "jsonSchemaHint": "Définit la structure JSON de sortie, l'IA suivra strictement ce format",
    "testing": "Test en cours...",
    "selectModelsHint": "Sélectionnez plusieurs modèles pour comparer les réponses",
    "clearSelection": "Effacer la sélection",
    "selectAtLeast2": "Sélectionnez au moins 2 modèles pour comparer",
    "comparing": "Comparaison...",
    "compareModels": "Comparer {{count}} modèles",
    "updatedAt": "Mis à jour",
    "versionLabel": "Version {{version}}",
    "confirmDeletePrompt": "Êtes-vous sûr de vouloir supprimer ce Prompt ?",
    "promptDeleted": "Prompt supprimé",
    "promptDuplicated": "Copie du Prompt créée",
    "unsavedChanges": "Modifications non enregistrées",
    "unsavedChangesMessage": "Vous avez des modifications non enregistrées. Voulez-vous les enregistrer ?",
    "discardChanges": "Ne pas enregistrer",
    "imageDownloadFailed": "Échec du téléchargement de l'image",
    "imageDownloadFailedMessage": "Impossible de télécharger l'image depuis cette URL. Veuillez vérifier le lien.",
    "aiResponse": "Réponse IA",
    "callingAI": "Appel de l'IA...",
    "waitingResponse": "En attente de réponse...",
    "copyResponse": "Copier la réponse",
    "responseCopied": "Réponse IA copiée",
    "viewRaw": "Voir le texte brut",
    "viewMarkdown": "Rendu Markdown",
    "createPrompt": "Nouveau Prompt",
    "editPrompt": "Modifier le Prompt",
    "titleLabel": "Titre",
    "titlePlaceholder": "Donnez un nom à votre Prompt",
    "descriptionOptional": "Description (optionnel)",
    "descriptionPlaceholder": "Décrivez brièvement l'objectif de ce Prompt",
    "folderOptional": "Dossier (optionnel)",
    "noFolder": "Aucun dossier",
    "moveTo": "Déplacer vers...",
    "movedToNoFolder": "Retiré du dossier actuel",
    "tagsOptional": "Tags (optionnel)",
    "selectExistingTags": "Sélectionner des tags existants :",
    "enterTagHint": "Entrez un nouveau tag et appuyez sur Entrée",
    "addTag": "Ajouter",
    "referenceImages": "Images de référence",
    "uploadImage": "Télécharger/Coller/Lien",
    "uploadVideo": "Télécharger une vidéo",
    "addImageByUrl": "Ajouter par URL",
    "enterImageUrl": "Entrez l'URL de l'image",
    "pasteImageHint": "Vous pouvez coller des images directement",
    "referenceMedia": "Médias de référence",
    "videoLabel": "Vidéo",
    "videoOptional": "Vidéo de prévisualisation (optionnel)",
    "videoHint": "Prend en charge les formats MP4, WebM, MOV",
    "mediaHint": "Prend en charge les images (PNG/JPG/GIF) et les vidéos (MP4/WebM)",
    "mediaUploadHint": "Formats pris en charge : Images JPG/PNG/GIF/WEBP · Vidéos MP4/WebM/MOV/AVI/MKV · Délai de téléchargement URL 30s",
    "previewVideos": "Aperçu des vidéos",
    "downloadingImage": "Téléchargement de l'image...",
    "downloadTimeout": "Délai de téléchargement de l'image dépassé",
    "generating": "Génération...",
    "addToPrompt": "Ajouter au Prompt",
    "imageAddedToPrompt": "Image ajoutée au Prompt",
    "aiTestAttachments": "Pièces jointes de test",
    "aiTestAttachmentHint": "PNG, JPG, WebP ou GIF pour les modèles de chat multimodaux. Jusqu'à {{count}}, {{size}} chacune.",
    "aiTestAddImages": "Ajouter des images",
    "aiTestSelectReferenceImages": "Sélectionner les images de référence existantes",
    "aiTestUploadedReferenceImages": "Images de référence importées",
    "aiTestRemoveImage": "Supprimer l'image",
    "aiTestImageLimit": "Vous pouvez joindre jusqu'à {{count}} images",
    "aiTestImageUnsupported": "{{name}} n'est pas un fichier image",
    "aiTestImageTooLarge": "{{name}} dépasse {{size}}",
    "aiTestImageReadFailed": "Impossible de lire l'image",
    "systemPromptLabel": "System Prompt",
    "systemPromptOptional": "System Prompt (optionnel)",
    "systemPromptPlaceholder": "Définir le rôle et le comportement de l'IA...",
    "userPromptLabel": "User Prompt",
    "inlineEditSystemPromptAria": "Double-cliquez pour modifier le prompt système",
    "inlineEditUserPromptAria": "Double-cliquez pour modifier le prompt utilisateur",
    "userPromptPlaceholder": "Entrez votre Prompt, utilisez {{nomVariable}} ou {{nomVariable:exemple}} pour les variables...",
    "variableTip": "Astuce variables",
    "variableTipContent": "Utilisez {{nomVariable}} ou {{nomVariable:exemple}} pour les variables, ex: {{language}} ou {{nomCours:Informatique de base}}",
    "typeYourPrompt": "Type your prompt here...",
    "enterEnglishSystemPrompt": "Enter English System Prompt...",
    "enterEnglishUserPrompt": "Enter English User Prompt...",
    "translateToEnglish": "Translate to English",
    "translateFromEnglish": "Translate from English",
    "englishGenerated": "English version generated",
    "localizedGenerated": "Localized version generated",
    "noContentToTranslate": "No content to translate",
    "noEnglishContentToTranslate": "No English content to translate",
    "addTagPlaceholder": "Ajouter un tag...",
    "variablePreview": "Aperçu des variables",
    "copyResult": "Copier le résultat",
    "previewResult": "Aperçu du résultat",
    "inputVariable": "Entrez la valeur de {{name}}...",
    "variableInput": "Saisie des variables",
    "fillVariables": "Veuillez remplir les valeurs des variables suivantes",
    "noVariables": "Ce Prompt n'a pas de variables",
    "defaultValue": "Valeur par défaut",
    "exampleValue": "Valeur exemple",
    "exampleHint": "Exemple",
    "variableName": "Nom de variable",
    "fromHistory": "De l'historique",
    "systemVariables": "Variables système",
    "sortBy": "Trier par",
    "sortNewest": "Récent",
    "sortOldest": "Ancien",
    "sortTitleAsc": "Titre A-Z",
    "sortTitleDesc": "Titre Z-A",
    "sortMostUsed": "Plus utilisé",
    "sortLeastUsed": "Moins utilisé",
    "viewCard": "Vue carte",
    "viewList": "Vue liste",
    "viewGallery": "Vue galerie",
    "viewKanban": "Vue Kanban",
    "columns2": "2 colonnes",
    "columns3": "3 colonnes",
    "columns4": "4 colonnes",
    "columns5": "5 Columns",
    "pinnedPrompts": "Prompts épinglés",
    "pin": "Épingler",
    "unpin": "Désépingler",
    "expandAll": "Tout développer",
    "collapseAll": "Tout réduire",
    "unpinAll": "Tout effacer",
    "usageCount": "Nombre d'utilisations",
    "createdAt": "Créé",
    "promptCount": "{{count}} au total",
    "actions": "Actions",
    "columnConfig": "Paramètres des colonnes",
    "columnConfigHint": "Cliquez pour basculer la visibilité des colonnes",
    "columnDesc": {
      "title": "Nom/Titre du Prompt",
      "userPrompt": "Aperçu du contenu du User Prompt",
      "aiResponse": "Aperçu du contenu de la réponse de l'IA",
      "variables": "Nombre de variables remplaçables",
      "usageCount": "Statistiques de copies/utilisation"
    },
    "pageSize": "Par page",
    "movedToFolder": "Déplacé vers le dossier",
    "dataPathChanged": "Chemin des données modifié",
    "batchFavorited": "Ajoutés aux favoris",
    "batchMoved": "Déplacés en lot",
    "batchDeleted": "Supprimés en lot",
    "addToFavorites": "Ajouter aux favoris",
    "removeFromFavorites": "Retirer des favoris",
    "viewDetail": "Voir les détails",
    "enterValue": "Entrer une valeur",
    "selected": "{{count}} sélectionnés",
    "batchFavorite": "Favoris en lot",
    "batchMove": "Déplacer en lot",
    "batchDelete": "Supprimer en lot",
    "confirmBatchDelete": "Supprimer ces {{count}} Prompts ?"
  },
  "folder": {
    "new": "Nouveau dossier",
    "edit": "Modifier le dossier",
    "rename": "Renommer",
    "delete": "Supprimer",
    "empty": "Aucun dossier",
    "icon": "Icône",
    "name": "Nom",
    "namePlaceholder": "Saisir le nom du dossier",
    "setPrivate": "Définir comme dossier privé",
    "privateNeedPassword": "Veuillez d'abord définir un mot de passe maître dans Paramètres > Sécurité",
    "privateNeedPasswordInline": "Veuillez d'abord définir un mot de passe maître dans \"Paramètres - Sécurité\".",
    "privateHint": "Après l'enregistrement, ce dossier sera chiffré et nécessitera une vérification du mot de passe.",
    "unlockTitle": "Entrer le mot de passe maître",
    "unlockDesc": "Vous devez déverrouiller le mot de passe maître avant d'enregistrer un dossier privé",
    "unlockPlaceholder": "Entrer le mot de passe maître",
    "unlocking": "Déverrouillage...",
    "unlockSuccess": "Déverrouillage réussi",
    "unlockFailed": "Échec du déverrouillage",
    "wrongPassword": "Mot de passe incorrect",
    "deleteTitle": "Supprimer le dossier \"{{name}}\"",
    "containsPrompts": "Ce dossier contient {{count}} Prompts",
    "deleteFolderOnly": "Supprimer uniquement le dossier",
    "deleteFolderOnlyDesc": "Conserver {{count}} Prompts et les déplacer à la racine",
    "deleteAllContent": "Tout supprimer",
    "deleteAllContentDesc": "Supprimer le dossier et tous les {{count}} Prompts à l'intérieur",
    "confirmDelete": "Confirmer la suppression",
    "deletedWithPrompts": "Dossier supprimé avec {{count}} Prompts",
    "deletedMovedPrompts": "Dossier supprimé, {{count}} Prompts déplacés à la racine",
    "duplicateTitle": "Le nom du dossier existe déjà",
    "duplicateDesc": "Un dossier nommé \"{{name}}\" existe déjà. Voulez-vous quand même le créer ?",
    "confirmCreate": "Créer quand même",
    "masterPasswordRequired": "Veuillez entrer le mot de passe maître",
    "deletePrivateTitle": "Supprimer le dossier privé",
    "deletePrivateDesc": "Cette action supprimera le dossier privé \"{{name}}\" et tout le contenu chiffré. Entrez le mot de passe maître pour confirmer.",
    "deleting": "Suppression...",
    "wrongPasswordCannotDelete": "Mot de passe maître incorrect, suppression impossible",
    "privateUnlockTitle": "Déverrouiller le dossier privé",
    "privateUnlockMessage": "Le dossier \"{{name}}\" est privé. Entrez le mot de passe maître pour le déverrouiller et afficher son contenu.",
    "folderDeleted": "Dossier supprimé",
    "deleteFailed": "Échec de la suppression",
    "parentFolder": "Dossier parent",
    "uncategorized": "Non classé",
    "noParent": "Aucun (Racine)",
    "noAvailableParents": "Aucun dossier parent disponible",
    "parentHint": "Maximum {{depth}} niveaux d'imbrication"
  },
  "rules": {
    "title": "Rules",
    "sidebarTitle": "Espace de travail des règles",
    "platformSidebarTitle": "Règles",
    "sidebarHint": "Gérez les fichiers de règles globaux et les fichiers AGENTS.md des projets depuis un seul espace de travail.",
    "globalSection": "Règles globales",
    "projectSection": "Règles de projet",
    "addProjectRuleDirectory": "Ajouter un répertoire de projet",
    "addProjectRuleDirectoryHint": "Choisissez un dossier de projet et PromptHub créera et maintiendra automatiquement un fichier de règles AGENTS.md à l'intérieur, que les outils IA pourront lire.",
    "currentProjectBadge": "Actuel",
    "editorTitle": "Éditeur de règles",
    "editorCanvas": "Contenu des règles",
    "fileLabel": "Fichier de règles",
    "pathLabel": "Chemin",
    "diffAdded": "Ajouts",
    "diffRemoved": "Suppressions",
    "aiRewriteTitle": "Demander à l'IA d'améliorer cette règle",
    "aiRewriteHint": "Décrivez le changement souhaité. L'IA préparera un nouveau brouillon pour le fichier de règles sélectionné.",
    "aiRewritePlaceholder": "Exemple : ajouter des exigences de test, réorganiser les sections ou renforcer la formulation, tout en conservant si possible les titres markdown existants.",
    "aiRewriteAction": "Améliorer avec l'IA",
    "aiRewriteWorking": "Génération du brouillon...",
    "aiRewriteDone": "Brouillon IA prêt",
    "aiRewriteFailed": "Échec de l'amélioration IA",
    "rescanAction": "Rescanner les fichiers de règles",
    "rescanShortAction": "Scanner",
    "rescanWorking": "Analyse...",
    "rescanDone": "Règles réanalysées",
    "rescanFailed": "Échec de l'analyse",
    "stopTrackingAction": "Arrêter le suivi",
    "draftUnsavedStatus": "Le brouillon contient des modifications non enregistrées",
    "draftSyncedStatus": "Le brouillon correspond au fichier enregistré",
    "draftEditMode": "Éditeur de brouillon - rien n'est écrit avant l'enregistrement",
    "snapshotPreviewMode": "Aperçu d'instantané - lecture seule",
    "saveAndOverwrite": "Enregistrer et écraser le fichier",
    "saveOverwriteHint": "L'enregistrement écrit ce brouillon dans le vrai fichier de règles.",
    "versionTitle": "Instantanés de version",
    "versionHint": "Les instantanés sont un historique en lecture seule. Sélectionnez-en un pour l'apercevoir, puis restaurez-le dans le brouillon si nécessaire.",
    "versionPreviewTitle": "Aperçu de l'instantané",
    "versionPreviewReadonly": "Le mode aperçu est en lecture seule.",
    "versionEditingDraft": "Modification du brouillon en cours",
    "versionBackToDraft": "Retour au brouillon",
    "versionRestoreToDraft": "Restaurer dans le brouillon",
    "versionRestoreDone": "L'instantané a été restauré dans le brouillon",
    "versionSourceManualSave": "Enregistré",
    "versionSourceAiRewrite": "Brouillon IA",
    "versionSourceCreate": "Créé",
    "versionEmpty": "Aucun instantané pour le moment. Sauvegarder ou réécrire avec l'IA créera un historique local.",
    "searchPlaceholder": "Rechercher des fichiers de règles, plateformes ou chemins...",
    "exists": "Existe",
    "notExists": "Sera créé à l'enregistrement",
    "openLocation": "Ouvrir l'emplacement",
    "pathUnknown": "Chemin indisponible",
    "emptyHint": "Le contenu de la règle apparaîtra ici.",
    "diffSnapshotHeader": "Instantané → Brouillon actuel",
    "diffCurrentDraft": "Brouillon actuel",
    "editorLineCount": "{{count}} lignes",
    "editorCharCount": "{{count}} caractères",
    "aiRewriteSummary": "L'IA a généré un nouveau brouillon. Vérifiez-le et enregistrez quand vous êtes prêt.",
    "versionCurrentLabel": "Actuel",
    "versionDeleteAction": "Supprimer le snapshot",
    "versionDeleteConfirmMessage": "Êtes-vous sûr de vouloir supprimer ce snapshot ? Cette action est irréversible.",
    "versionDeleteDone": "Snapshot supprimé",
    "versionShowMore": "Voir {{count}} de plus",
    "versionShowLess": "Réduire"
  },
  "settings": {
    "developer": "Options pour les développeurs",
    "debugMode": "Mode débogage",
    "debugModeDesc": "Activer le débogage de la console (Supporte Ctrl+Shift+I / Cmd+Option+I)",
    "security": "Sécurité",
    "securityStatus": "Statut",
    "masterSet": "Mot de passe maître défini",
    "masterNotSet": "Mot de passe maître non défini",
    "unlocked": "Déverrouillé",
    "locked": "Verrouillé",
    "setMaster": "Définir le mot de passe maître (min. 4 caractères)",
    "masterPlaceholder": "Entrez le mot de passe maître",
    "masterConfirmPlaceholder": "Confirmez le mot de passe maître",
    "setMasterBtn": "Définir le mot de passe maître",
    "unlockTitle": "Déverrouiller / Verrouiller",
    "unlockPlaceholder": "Entrez le mot de passe maître pour déverrouiller",
    "unlock": "Déverrouiller",
    "lock": "Verrouiller",
    "refresh": "Actualiser le statut",
    "securityDesc": "Le mot de passe maître sert à déverrouiller le contenu privé. PromptHub stocke uniquement un hash salé du mot de passe, jamais le mot de passe en clair. Le contenu privé reste masqué tant qu'il n'est pas déverrouillé.",
    "pwdTooShort": "Le mot de passe maître doit comporter au moins 4 caractères",
    "pwdMismatch": "Les mots de passe ne correspondent pas",
    "masterSetSuccess": "Mot de passe maître défini et déverrouillé",
    "masterSetFail": "Échec de la définition du mot de passe maître",
    "enterMasterPwd": "Veuillez entrer le mot de passe maître",
    "unlockSuccess": "Déverrouillé avec succès",
    "pwdWrong": "Mot de passe incorrect",
    "unlockFail": "Échec du déverrouillage",
    "lockSuccess": "Verrouillé",
    "lockFail": "Échec du verrouillage",
    "enterCurrentPwd": "Veuillez entrer le mot de passe maître actuel",
    "newPwdTooShort": "Le nouveau mot de passe doit comporter au moins 4 caractères",
    "currentPwdWrong": "Le mot de passe maître actuel est incorrect",
    "changePwdSuccess": "Mot de passe maître modifié et redéverrouillé",
    "changePwdFail": "Échec de la modification",
    "statusFetchFail": "Impossible d'obtenir l'état de sécurité",
    "changePwd": "Changer le mot de passe maître",
    "changePwdBtn": "Changer le mot de passe",
    "oldPwdPlaceholder": "Entrez le mot de passe maître actuel",
    "newPwdPlaceholder": "Entrez le nouveau mot de passe maître (min. 4 caractères)",
    "newPwdConfirmPlaceholder": "Confirmez le nouveau mot de passe maître",
    "confirmChange": "Confirmer le changement",
    "title": "Paramètres",
    "back": "Retour",
    "general": "Paramètres de l'application",
    "appearance": "Apparence",
    "data": "Données et synchronisation",
    "platformPreview": "Platform Preview",
    "ai": "Services de modèles",
    "language": "Langue",
    "notifications": "Notifications",
    "languageAndRegion": "Langue et région",
    "about": "À propos",
    "startup": "Démarrage",
    "launchAtStartup": "Lancer au démarrage",
    "launchAtStartupDesc": "Exécuter PromptHub au démarrage du système",
    "minimizeOnLaunch": "Minimiser au lancement",
    "minimizeOnLaunchDesc": "Minimiser dans la barre des tâches au lancement",
    "closeAction": "Comportement de fermeture",
    "closeActionDesc": "Action lors du clic sur le bouton de fermeture",
    "askEveryTime": "Demander à chaque fois",
    "closeToTray": "Minimiser dans la barre des tâches",
    "closeApp": "Quitter l'application",
    "editor": "Éditeur",
    "autoSave": "Sauvegarde automatique",
    "autoSaveDesc": "Enregistrer automatiquement les modifications lors de l'édition",
    "showLineNumbers": "Afficher les numéros de ligne",
    "showLineNumbersDesc": "Afficher les numéros de ligne dans l'éditeur",
    "theme": "Thème",
    "themeMode": "Mode du thème",
    "light": "Clair",
    "dark": "Sombre",
    "system": "Système",
    "themeColor": "Couleur du thème",
    "desktopWorkspace": "Espace de travail du bureau",
    "homeModules": "Modules de l'accueil",
    "homeModulesHint": "Au moins un module reste activé pour que l'accueil du bureau garde toujours un espace accessible.",
    "homeModulesReorderHint": "Faites glisser les modules actifs pour réorganiser le rail de l'accueil bureau.",
    "desktopModulePromptsDesc": "Edition des prompts, dossiers, tags et recherche",
    "desktopModuleSkillsDesc": "My Skills, projets et parcours du store",
    "desktopModuleRulesDesc": "Espaces de travail des règles globales et projet",
    "backgroundImage": "Image d'arrière-plan",
    "backgroundImageTitle": "Fond du bureau",
    "backgroundImageDesc": "Choisissez une image locale et utilisez-la comme arrière-plan du bureau, donnez a PromptHub une ambiance qui vous ressemble, conservez le fichier dans la bibliotheque d'images de PromptHub, et gardez seulement une reference dans les reglages pour faciliter la sauvegarde et la migration.",
    "backgroundImageEmpty": "Aucune image d'arrière-plan sélectionnée",
    "backgroundImagePreviewAlt": "Aperçu de l'image d'arrière-plan",
    "selectBackgroundImage": "Choisir une image",
    "changeBackgroundImage": "Changer l'image",
    "enableBackgroundImage": "Activer",
    "disableBackgroundImage": "Désactiver",
    "backgroundImageEnabledHint": "L'image d'arrière-plan est actuellement activée pour le shell bureau.",
    "backgroundImageDisabledHint": "L'image d'arrière-plan est conservée, mais actuellement désactivée.",
    "backgroundImageOpacity": "Visibilité de l'arrière-plan",
    "backgroundImageBlur": "Intensité du flou",
    "customColor": "Personnalisé",
    "customColorDesc": "Choisissez une couleur et appliquez-la au thème global",
    "preview": "Aperçu",
    "primary": "Principal",
    "accent": "Accent",
    "neutral": "Neutre",
    "fontSize": "Taille de police",
    "colorRoyalBlue": "Bleu royal",
    "colorBlue": "Bleu",
    "colorPurple": "Violet",
    "colorGreen": "Vert",
    "colorOrange": "Orange",
    "colorTeal": "Sarcelle",
    "fontSmall": "Petit",
    "fontMedium": "Moyen",
    "fontLarge": "Grand",
    "motion": {
      "title": "Animation",
      "desc": "Contrôle l'intensité des animations dans le bureau. \"Standard\" remplace le réglage système \"Réduire les animations\".",
      "off": "Désactivé",
      "reduced": "Réduit",
      "standard": "Standard"
    },
    "dataSubmenuBasic": "Paramètres de base des données",
    "dataSubmenuCloudBackup": "Paramètres de sauvegarde cloud",
    "syncProviderTitle": "Source de synchronisation actuelle",
    "syncProviderDesc": "Vous pouvez activer plusieurs cibles de sauvegarde, mais la synchronisation automatique n'utilise qu'une seule source à la fois afin d'éviter les conflits.",
    "syncProviderManual": "Sauvegarde manuelle uniquement",
    "syncSourceInactiveDesc": "Cette cible reste disponible pour les sauvegardes et restaurations manuelles, mais la synchronisation automatique ne s'exécute que pour la source de synchronisation actuelle.",
    "dataSubmenuImportExport": "Paramètres d’import/export",
    "dataPath": "Répertoire des données",
    "dataPathDesc": "Emplacement de stockage des données Prompt",
    "openFolder": "Ouvrir le dossier",
    "openLogs": "Ouvrir les logs",
    "applicationData": "Données de l'application",
    "applicationLogs": "Logs de l'application",
    "rulesData": "Répertoire des règles",
    "skillsData": "Répertoire Skills",
    "backupsData": "Répertoire des sauvegardes",
    "cacheData": "Cache de l'application",
    "cacheDataDesc": "Cache du processus de rendu Electron, sans impact sur les données",
    "clearCache": "Vider le cache",
    "cacheClearedToast": "Cache vidé",
    "change": "Modifier",
    "confirmDataMigration": "Êtes-vous sûr de vouloir migrer les données vers le nouveau répertoire ?\n\nL'application doit redémarrer après la migration.",
    "existingDataPathTitle": "Le répertoire cible contient déjà des données PromptHub",
    "existingDataPathDesc": "Si ce répertoire a été copié depuis un autre ordinateur, choisissez « Basculer vers ce répertoire ». « Écraser et migrer » remplacera les données de ce répertoire par celles de cet ordinateur.",
    "detectedDataMarkers": "Données détectées",
    "targetDataSummary": "{{prompts}} prompts, {{folders}} dossiers, {{skills}} skills",
    "switchToExistingDataPath": "Basculer vers ce répertoire",
    "overwriteAndMigrateDataPath": "Écraser et migrer",
    "confirmOverwriteDataPath": "Écraser les données de ce répertoire avec celles de cet ordinateur ? PromptHub créera d'abord une sauvegarde du répertoire cible.",
    "dataPathSwitchSuccess": "Répertoire des données basculé",
    "dataPathOverwriteSuccess": "Données migrées et sauvegarde cible créée",
    "restartRequired": "Veuillez redémarrer l'application",
    "restartNow": "Migration des données terminée. Redémarrer l'application maintenant ?",
    "pendingDataPath": "Basculera vers ce répertoire après redémarrage :",
    "backup": "Sauvegarde et restauration",
    "export": "Exporter les données",
    "exportDesc": "Exporter toutes les données vers un fichier JSON",
    "selectiveExport": "Export sélectif",
    "selectiveExportDesc": "Exporter les données sélectionnées. Elles pourront ensuite être réimportées via l’action de restauration.",
    "fullBackup": "Sauvegarde complète / Restaurer",
    "fullBackupDesc": "Pour migration : inclut prompts, images, config IA, paramètres et compétences",
    "upgradeBackups": "Restauration des données",
    "upgradeBackupsDesc": "Points de restauration locaux créés automatiquement avant les mises à jour. La restauration sauvegarde d'abord l'état actuel puis effectue le retour en arrière et redémarre automatiquement.",
    "upgradeBackupsLoading": "Chargement des sauvegardes de mise à niveau...",
    "upgradeBackupsEmpty": "Aucune sauvegarde automatique de mise à niveau trouvée pour l’instant.",
    "upgradeBackupsSummary": "{{count}} instantané(s) de retour arrière",
    "upgradeBackupsSummaryCollapsed": "Seuls les {{count}} plus récents sont affichés par défaut",
    "upgradeBackupsSummaryExpanded": "L’historique complet est affiché dans une zone à défilement dédiée",
    "upgradeBackupsSummaryCompact": "Tous les instantanés tiennent dans la liste compacte",
    "upgradeBackupsShowAll": "Afficher les {{count}}",
    "upgradeBackupLoadFailed": "Échec du chargement des sauvegardes de mise à niveau",
    "upgradeBackupRestoreTitle": "Restaurer une sauvegarde de mise à niveau",
    "upgradeBackupRestoreAction": "Revenir à cet instantané",
    "upgradeBackupRestoreConfirm": "Restaurer l’instantané automatique créé le {{createdAt}} ({{from}}{{to}}) ? PromptHub sauvegardera d’abord l’état actuel, puis redémarrera automatiquement.",
    "upgradeBackupRestoreScheduled": "La sauvegarde de mise à niveau a été restaurée. PromptHub va redémarrer automatiquement.",
    "upgradeBackupRestoreFailed": "Échec de la restauration de la sauvegarde de mise à niveau",
    "upgradeBackupDeleteTitle": "Supprimer une sauvegarde de mise à niveau",
    "upgradeBackupDeleteConfirm": "Supprimer l’instantané automatique {{backupId}} ? Cette entrée d’historique sera définitivement perdue.",
    "upgradeBackupDeleteSuccess": "Sauvegarde de mise à niveau supprimée",
    "upgradeBackupDeleteFailed": "Échec de la suppression de la sauvegarde de mise à niveau",
    "upgradeBackupCreatedAt": "Date de l'instantané",
    "upgradeBackupItems": "Éléments inclus",
    "backupCompressed": "Sauvegarde compressée",
    "fullBackupExport": "Sauvegarde complète",
    "restore": "Restaurer",
    "exportPrompts": "Prompts",
    "exportFolders": "Dossiers",
    "exportImages": "Médias",
    "exportAiConfig": "Config IA",
    "exportSettings": "Paramètres",
    "exportVersions": "Historique",
    "exportSkills": "Compétences",
    "import": "Importer les données",
    "importDesc": "Importer les données depuis un fichier JSON",
    "importPreviewTitle": "Vérifier le résumé de l’import",
    "importPreviewFile": "Fichier",
    "importPreviewExportedAt": "Exporté le",
    "importPreviewCounts": "Sera importé",
    "importPreviewBackupNotice": "PromptHub créera automatiquement une sauvegarde locale de sécurité de l’état actuel avant l’import.",
    "importPreviewSkipped": "Enregistrements invalides qui seront ignorés",
    "importConfirmAction": "Sauvegarder les données actuelles puis importer",
    "recoveryScanner": "Récupération des données historiques",
    "recoveryScannerTitle": "Récupération des données historiques",
    "recoveryScannerDesc": "Recherche les données récupérables dans les anciens répertoires, dossiers spécifiés manuellement ou sauvegardes historiques, puis permet de choisir la source à restaurer.",
    "recoveryScanAction": "Analyser maintenant",
    "recoveryExtraPaths": "Répertoires d’analyse supplémentaires",
    "recoveryExtraPathsDesc": "Ajoutez d’anciens dossiers d’installation ou des répertoires de données copiés pour les inclure dans l’analyse de récupération.",
    "recoveryAddScanDir": "Ajouter un dossier",
    "recoveryManualPathPlaceholder": "Coller ou saisir un chemin…",
    "recoveryAddPathBtn": "Ajouter",
    "recoveryExtraPathsEmpty": "Aucun répertoire d’analyse supplémentaire n’a encore été ajouté.",
    "recoveryScanEmpty": "Aucune donnée historique récupérable n’a été trouvée dans les emplacements analysés.",
    "recoveryScanFailed": "Échec de l’analyse des sources de récupération",
    "manualRecoveryPathExists": "Ce répertoire d’analyse a déjà été ajouté.",
    "clear": "Effacer les données",
    "clearDesc": "Supprimer toutes les données locales",
    "clearNeedPassword": "L'effacement des données est une opération dangereuse. Définissez d'abord le mot de passe maître dans les paramètres de sécurité",
    "dangerOperation": "Opération dangereuse",
    "enterMasterPassword": "Entrez le mot de passe maître pour confirmer",
    "masterPasswordPlaceholder": "Entrez le mot de passe maître",
    "confirmClear": "Confirmer l'effacement",
    "enterPassword": "Veuillez entrer le mot de passe maître",
    "wrongPassword": "Mot de passe incorrect",
    "webdav": "Synchronisation WebDAV",
    "webdavSyncMenu": "WebDAV",
    "webdavEnabled": "Activer WebDAV",
    "webdavEnabledDesc": "Synchroniser les données avec le serveur WebDAV",
    "webdavUrl": "Adresse du serveur",
    "webdavUsername": "Nom d'utilisateur",
    "webdavPassword": "Mot de passe",
    "webdavAutoSync": "Synchronisation automatique au démarrage",
    "webdavAutoSyncDesc": "Synchroniser automatiquement dans les deux sens au démarrage (images incluses)",
    "webdavAutoRun": "Exécution automatique",
    "webdavAutoRunDesc": "Synchroniser automatiquement à intervalles. Peut affecter l'utilisation de la batterie.",
    "selfHostedAutoRun": "Synchronisation automatique",
    "selfHostedAutoRunDesc": "Maintient le desktop et votre espace PromptHub auto-hébergé alignés selon une planification en arrière-plan.",
    "webdavSyncOnStartup": "Exécuter une fois au démarrage",
    "webdavSyncOnStartupDesc": "Déclencher automatiquement la synchronisation après le démarrage",
    "selfHostedSyncOnStartup": "Exécuter une fois au démarrage",
    "selfHostedSyncOnStartupDesc": "Récupère automatiquement une fois depuis votre espace PromptHub auto-hébergé après le démarrage du desktop. Les changements prennent effet au prochain lancement.",
    "webdavSyncOnSave": "Synchroniser à l'enregistrement (expérimental)",
    "webdavSyncOnSaveDesc": "Tenter de synchroniser automatiquement lors de l'enregistrement des modifications",
    "webdavSyncOnSaveUnavailableDesc": "Réservé à une prise en charge future. L’enregistrement des données ne déclenche pas de synchronisation dans la version actuelle.",
    "every5min": "Toutes les 5 minutes",
    "every15min": "Toutes les 15 minutes",
    "every30min": "Toutes les 30 minutes",
    "every60min": "Toutes les 60 minutes",
    "startupImmediate": "Exécuter immédiatement après le démarrage",
    "startupDelay5s": "Exécuter 5 secondes après le démarrage",
    "startupDelay10s": "Exécuter 10 secondes après le démarrage",
    "startupDelay30s": "Exécuter 30 secondes après le démarrage",
    "webdavIncludeImages": "Inclure les images",
    "webdavIncludeImagesDesc": "Inclure tous les fichiers image lors de la synchronisation. Désactiver pour réduire la taille de la sauvegarde et le temps de synchronisation.",
    "webdavIncrementalSync": "Synchronisation incrémentielle",
    "webdavIncrementalSyncDesc": "Ne télécharger que les fichiers modifiés, réduisant considérablement l'utilisation de la bande passante. La première synchronisation téléchargera toutes les données.",
    "webdavEncryption": "Chiffrer la sauvegarde (Expérimental)",
    "webdavEncryptionDesc": "Chiffrer les données de sauvegarde avec AES-256. Attention : Oublier le mot de passe rendra les données irrécupérables !",
    "webdavEncryptionPassword": "Mot de passe de chiffrement",
    "webdavEncryptionPasswordPlaceholder": "Entrer le mot de passe de chiffrement (optionnel, laisser vide pour ignorer)",
    "s3Storage": "Stockage compatible S3",
    "s3SyncMenu": "Stockage compatible S3",
    "s3StorageDesc": "Configurez une cible de sauvegarde de stockage objet compatible S3, comme AWS S3, Cloudflare R2, OSS ou COS.",
    "s3StorageUnavailableDesc": "La synchronisation S3 n’est pas encore disponible dans cette version. Les actions de connexion, d’envoi, de téléchargement et d’automatisation restent désactivées.",
    "s3Endpoint": "Endpoint API",
    "s3Region": "Région",
    "s3Bucket": "Bucket",
    "s3AccessKeyId": "Access Key ID",
    "s3SecretAccessKey": "Secret Access Key",
    "s3BackupPrefix": "Répertoire de sauvegarde (optionnel)",
    "s3AutoSync": "Synchronisation automatique",
    "s3AutoSyncDesc": "Choisissez la fréquence d’utilisation de cette cible de sauvegarde compatible S3.",
    "selectImageModels": "Sélectionner les modèles d'image",
    "testConnection": "Tester la connexion",
    "upload": "Télécharger",
    "download": "Télécharger",
    "dbInfo": "Chemins des données locales",
    "aiConfig": "Configuration du modèle IA",
    "provider": "Fournisseur de service",
    "apiKey": "Clé API",
    "apiUrl": "Adresse API",
    "model": "Modèle",
    "selectModel": "Sélectionner un modèle prédéfini...",
    "customModel": "Ou entrer un nom de modèle personnalisé",
    "saveConfig": "Enregistrer la configuration",
    "aiConfigSaved": "Configuration IA enregistrée",
    "aiConfigDesc1": "Après avoir configuré le modèle IA, vous pouvez tester les effets sur la page de détails du Prompt",
    "aiConfigDesc2": "La clé API est stockée en toute sécurité localement, non téléchargée sur aucun serveur",
    "aiConfigDesc3": "Prend en charge les APIs compatibles OpenAI",
    "aiConfigDesc4": "Le nom du modèle peut être entré manuellement, non limité à la liste prédéfinie",
    "translationMode": "Mode de traduction",
    "translationModeDesc": "Choisissez comment l'IA traduit le contenu des compétences",
    "translationImmersive": "Traduction immersive",
    "translationImmersiveDesc": "Le texte original et traduit sont affichés en alternance, paragraphe par paragraphe",
    "translationFull": "Traduction complète",
    "translationFullDesc": "Remplace le texte original par le contenu entièrement traduit",
    "selectLanguage": "Sélectionner la langue de l'interface",
    "languageChangeHint": "Après avoir changé la langue, vous devez actualiser la page.",
    "refreshNow": "Actualiser maintenant",
    "enableNotifications": "Activer les notifications",
    "enableNotificationsDesc": "Autoriser l'application à envoyer des notifications de bureau",
    "copyNotification": "Notification de copie réussie",
    "copyNotificationDesc": "Afficher une notification après avoir copié le Prompt",
    "behaviorPreferences": "Comportement et préférences",
    "tagFilterMode": "Mode de clic sur les tags",
    "tagFilterModeDesc": "Choisissez si cliquer sur un tag remplace le filtre actuel ou l'ajoute à une sélection multiple",
    "tagFilterModeSingle": "Sélection unique",
    "tagFilterModeMulti": "Sélection multiple",
    "saveNotification": "Notification d'enregistrement réussi",
    "saveNotificationDesc": "Afficher une notification après avoir enregistré les modifications",
    "version": "Version",
    "checkUpdate": "Vérifier les mises à jour",
    "checking": "Vérification...",
    "updateAvailable": "Nouvelle version disponible",
    "updateAvailableDesc": "Version {{version}} disponible, télécharger ?",
    "newVersion": "v{{version}} disponible",
    "macManualInstall": "Téléchargement terminé ! En raison des restrictions de signature macOS, veuillez installer manuellement :\n\n1. Ouvrez le dossier Téléchargements\n2. Double-cliquez sur l'installateur DMG\n3. En cas d'avertissement de sécurité, autorisez dans Réglages Système > Confidentialité et sécurité\n\nSi vous avez installé via Homebrew, exécutez simplement :\nbrew upgrade --cask prompthub",
    "homebrewUpdateHint": "Cette installation de PromptHub provient de Homebrew. Veuillez la mettre à jour avec Homebrew plutôt qu'avec le flux DMG intégré.",
    "homebrewUpdateRequired": "Cette installation de PromptHub semble provenir de Homebrew. Exécutez 'brew upgrade --cask prompthub' au lieu d'utiliser le programme de mise à jour intégré.",
    "openReleasesPage": "Ouvrir Releases",
    "openDownloadFolder": "Ouvrir Téléchargements",
    "manualDownload": "Téléchargement manuel",
    "manualDownloadHint": "La mise à jour automatique a échoué ? Vous pouvez télécharger manuellement la dernière version :",
    "noUpdate": "Vous avez la dernière version",
    "noUpdateDesc": "La version actuelle {{version}} est la plus récente",
    "downloading": "Téléchargement...",
    "downloadProgress": "Progression du téléchargement : {{percent}}%",
    "downloadComplete": "Téléchargement terminé",
    "downloadCompleteDesc": "La nouvelle version a été téléchargée, installer maintenant ?",
    "installRestartHint": "L'installation fermera l'app et lancera l'installateur.",
    "installNow": "Installer maintenant",
    "installLater": "Installer plus tard",
    "downloadUpdate": "Télécharger la mise à jour",
    "backupBeforeUpgrade": "Créer une sauvegarde complète",
    "backupDropRestore": "Glisser pour restaurer une sauvegarde",
    "backupDropRestoreDesc": "Glissez une archive de sauvegarde PromptHub ici pour la prévisualiser et la restaurer rapidement.",
    "backupDropRestoreFormats": "Pris en charge : .json, .phub.gz, .gz, .zip",
    "backupDropUnsupported": "Déposez un fichier de sauvegarde PromptHub (.json, .phub.gz, .gz ou .zip).",
    "backupRequiredForUpgrade": "Une sauvegarde manuelle est requise avant la mise à niveau intégrée",
    "backupRequiredForUpgradeDesc": "Créez d'abord une sauvegarde manuelle de la version actuelle pour déverrouiller l'installation. Juste avant de lancer l'installateur, PromptHub créera quand même un instantané local automatique.",
    "backupOptionalForUpgradeDesc": "Si vous voulez exporter une sauvegarde complète supplémentaire, vous pouvez le faire ici. Vous pouvez aussi continuer l'installation sans cette exportation. PromptHub créera automatiquement un instantané local juste avant l'installation.",
    "backupMissingForUpgrade": "Une sauvegarde manuelle de la version {{version}} est requise avant l'installation. Dès que l'installation démarre, PromptHub créera aussi un instantané local automatique.",
    "backupReadyForUpgrade": "Sauvegarde manuelle enregistrée à {{time}}. L'installation est maintenant déverrouillée et PromptHub créera aussi un instantané local automatique avant l'installation.",
    "backupConfirmUpgrade": "J'ai sauvegardé les données concernées et je comprends que l'application se fermera pendant l'installation.",
    "backupConfirmRequired": "Confirmez la sauvegarde avant de poursuivre la mise à niveau.",
    "skipVersion": "Ignorer cette version",
    "releaseNotes": "Notes de version",
    "autoCheckUpdate": "Vérifier automatiquement les mises à jour",
    "autoCheckUpdateDesc": "Vérifier automatiquement les nouvelles versions au démarrage",
    "tryMirrorSource": "Utiliser un miroir",
    "usingMirrorSource": "Accès via le miroir d'accélération...",
    "mirrorSourceDesc": "Les miroirs d'accélération sont fournis par des tiers. Le contenu est généralement identique à l'officiel.",
    "mirrorSourceRisk": "Si activé, l'application essaiera automatiquement les miroirs lorsque la source officielle échoue. Les miroirs sont généralement sûrs mais non officiellement maintenus. Recommandé uniquement si le téléchargement officiel est lent.",
    "projectInfo": "Info projet",
    "projectInfoDesc1": "Une boîte à outils IA tout-en-un pour la gestion des prompts, des skills et des assets d'agents",
    "projectInfoDesc2": "Réutilisez vos prompts, distribuez vos skills en un clic et gérez vos assets d'agents au même endroit",
    "projectInfoDesc3": "Prise en charge de la synchronisation cloud, des sauvegardes, du contrôle de version et d'une confidentialité locale d'abord",
    "cliTitle": "CLI",
    "cliShortDesc": "Installez l'outil en ligne de commande pour gérer les prompts et les skills depuis le terminal.",
    "cliFeatureTitle": "Fonctionnalités",
    "cliFeatureDesc": "Une fois installé, utilisez la commande prompthub dans votre terminal :\n• Créer, modifier et rechercher des prompts\n• Installer, mettre à jour et désinstaller des skills\n• Gérer les règles et les règles de projet\n• Exporter/importer l'espace de travail complet",
    "cliStandaloneDesc": "PromptHub CLI est distribué comme package autonome et peut être installé globalement sans construction depuis les sources.",
    "cliInstallHint": "L'installateur utilise le tarball de la release GitHub courante et exécute une commande standard d'installation globale npm ou pnpm.",
    "cliInstallStatus": "État de l'installation",
    "cliCheckingStatus": "Vérification de la disponibilité de la commande `prompthub`...",
    "cliInstalled": "Installé",
    "cliInstalledDesc": "La commande `prompthub` est disponible sur cette machine. Version actuelle : {{version}}",
    "cliNotInstalled": "Non installé",
    "cliNotInstalledDesc": "La commande `prompthub` n'est pas encore disponible sur cette machine.",
    "cliCommandLabel": "Commande CLI",
    "cliCommandDesc": "La commande shell disponible après l'installation",
    "cliInstallSourceLabel": "Source d'installation",
    "cliInstallSourceDesc": "Le tarball GitHub release utilisé pour l'installation en un clic",
    "cliInstallSourcePending": "Le tarball de la release courante n'est pas encore disponible",
    "cliVersionLabel": "Version",
    "cliPackageManagerLabel": "Gestionnaire de paquets détecté",
    "cliPackageManagerDesc": "PromptHub privilégie pnpm lorsque disponible, sinon npm",
    "cliPackageManagerMissing": "Ni pnpm ni npm n'ont été détectés dans le PATH",
    "cliActionsTitle": "Installer et actualiser",
    "cliInstallWith": "Installer avec {{manager}}",
    "cliRefreshStatus": "Actualiser l'état",
    "cliInstallSuccess": "PromptHub CLI a été installé avec succès",
    "cliInstallFailed": "Échec de l'installation de PromptHub CLI",
    "cliStatusLoadFailed": "Échec du chargement de l'état de PromptHub CLI",
    "openSource": "Projet open source",
    "projectRepository": "Dépôt du projet",
    "projectRepositoryDesc": "Parcourir le code source et les versions de PromptHub sur GitHub",
    "communityTitle": "Communauté",
    "communityDiscord": "Communauté Discord",
    "communityDiscordDesc": "Rejoignez la communauté Discord de PromptHub pour les annonces et les échanges",
    "communityQQ": "Groupe QQ",
    "communityQQDesc": "Essayez d'abord d'ouvrir directement le groupe QQ. Si QQ ne bascule pas, recherchez manuellement le numéro de groupe {{group}} dans le client",
    "communityQQCopy": "Copier l’ID",
    "communityQQCopied": "Numéro du groupe QQ {{group}} copié",
    "viewOnGithub": "Voir sur GitHub",
    "reportIssue": "Signaler un problème",
    "reportIssueDesc": "Soumettre des problèmes ou suggestions sur GitHub",
    "author": "Info auteur",
    "contactAuthor": "Contacter l'auteur",
    "overseas": "Services internationaux",
    "domestic": "Services nationaux",
    "other": "Autres",
    "description": "Description",
    "compareModels": "Test de comparaison de modèles",
    "enableCompare": "Activer le mode comparaison",
    "runCompare": "Démarrer le test de comparaison",
    "modelType": "Type de modèle",
    "chatModel": "Modèle de chat",
    "imageModel": "Modèle d'image",
    "imageSize": "Taille de l'image",
    "imagePrompt": "Prompt d'image",
    "imageQuality": "Qualité de l'image",
    "imageStyle": "Style de l'image",
    "qualityStandard": "Standard",
    "qualityHD": "HD",
    "styleVivid": "Vif",
    "styleNatural": "Naturel",
    "testImage": "Tester la génération d'image",
    "configImageModel": "Veuillez d'abord configurer un modèle d'image",
    "imageGenSuccess": "Image générée avec succès",
    "generatedImages": "Images générées",
    "noImageModel": "Aucun modèle d'image configuré",
    "noImageModelHint": "Veuillez d'abord configurer un modèle d'image dans les paramètres",
    "multiModelCompare": "Comparaison multi-modèles",
    "chatModels": "Modèles de chat",
    "imageModels": "Modèles d'image",
    "addChatModel": "Ajouter un modèle de chat",
    "addImageModel": "Ajouter un modèle d'image",
    "editChatModel": "Modifier le modèle de chat",
    "editImageModel": "Modifier le modèle d'image",
    "customName": "Nom personnalisé",
    "customNameOptional": "Nom personnalisé (optionnel)",
    "customNamePlaceholder": "Ex: Mon GPT-4o, Pour le travail",
    "providerName": "Fournisseur",
    "modelName": "Nom du modèle",
    "modelNamePlaceholder": "Ex: gpt-4o, deepseek-chat",
    "fetchModels": "Récupérer les modèles",
    "fillApiFirst": "Veuillez d'abord remplir la clé API et l'adresse API",
    "modelsLoaded": "{{count}} modèles chargés",
    "noModelsFound": "Aucun modèle disponible trouvé",
    "selectModels": "Sélectionner les modèles",
    "searchModels": "Rechercher l'ID ou le nom du modèle...",
    "totalModels": "{{count}} modèles au total",
    "filteredModels": "{{count}} correspondances",
    "noModelsMatch": "Aucun modèle correspondant",
    "modelAlreadyAdded": "Déjà ajouté",
    "endpointPreview": "Aperçu",
    "addedCount": "{{count}} ajoutés",
    "addAll": "Tout ajouter",
    "apiKeyPlaceholder": "Entrez la clé API",
    "apiUrlPlaceholder": "https://api.example.com/v1",
    "saveChanges": "Enregistrer les modifications",
    "addModel": "Ajouter un modèle",
    "setDefault": "Définir par défaut",
    "deleteModel": "Supprimer",
    "confirmDelete": "Êtes-vous sûr de vouloir supprimer cette configuration de modèle ?",
    "modelAdded": "Modèle ajouté",
    "modelUpdated": "Modèle mis à jour",
    "autoFillDisabled": "Remplissage automatique désactivé (#)",
    "apiUrlHint": "Terminez par # pour désactiver totalement le remplissage automatique",
    "aiWorkbenchApiUrlGuide": "Saisissez uniquement l'URL de base du fournisseur ou la racine de version. PromptHub complétera automatiquement le chemin final de requête. Si vous voulez conserver exactement l'adresse saisie, ajoutez # à la fin et PromptHub n'ajoutera plus aucun chemin ni dans l'URL enregistrée ni dans l'aperçu de requête.",
    "aiWorkbenchApiUrlExamplesLabel": "Exemples",
    "aiWorkbenchApiUrlBaseLabel": "Base URL enregistrée",
    "aiWorkbenchApiUrlRequestLabel": "Aperçu de l'endpoint demandé",
    "aiWorkbenchApiUrlDetectedFullEndpoint": "Un chemin d'endpoint complet a été détecté. PromptHub le normalisera vers l'URL de base au blur ou à l'enregistrement.",
    "fillComplete": "Veuillez remplir la configuration complète du modèle",
    "noModelsHint": "Après avoir ajouté des modèles, vous pouvez effectuer des tests de comparaison multi-modèles sur la page de détails du Prompt",
    "testConnectionBtn": "Tester la connexion",
    "aiWorkbenchTitle": "Atelier de modèles IA",
    "aiWorkbenchDescription": "Gérez les modèles IA globaux et définissez le modèle par défaut selon chaque scénario.",
    "aiWorkbenchTestDefault": "Tester le modèle par défaut",
    "aiWorkbenchStatusOverview": "Vue d'ensemble de l'état",
    "aiWorkbenchScenarioDefaults": "Modèles par défaut par scénario",
    "aiWorkbenchEndpoints": "Comptes / points d'accès configurés",
    "aiWorkbenchNoModels": "Aucun modèle n'est encore configuré. Ajoutez d'abord un modèle de chat ou d'image.",
    "aiWorkbenchDefaultLabel": "Par défaut",
    "aiWorkbenchUsingLabel": "Utilise",
    "aiWorkbenchTranslationCapability": "Capacité de traduction",
    "aiWorkbenchEnabled": "Activé",
    "aiWorkbenchPending": "À confirmer",
    "aiWorkbenchNotConfigured": "Non configuré",
    "aiWorkbenchUnverified": "Non vérifié",
    "aiWorkbenchConnected": "Connecté",
    "aiWorkbenchModelCount": "{{count}} modèles",
    "aiWorkbenchMissingModelConfig": "Configuration complète du modèle manquante",
    "aiWorkbenchFollowGlobalDefault": "Suivre le modèle global par défaut de ce type",
    "aiWorkbenchScenarioQuickAdd": "Analyse Quick Add",
    "aiWorkbenchScenarioQuickAddDesc": "Analyse une saisie libre et génère un premier brouillon de Prompt.",
    "aiWorkbenchScenarioPromptTest": "Test texte du Prompt",
    "aiWorkbenchScenarioPromptTestDesc": "Utilisé par la page de détail du Prompt et les tests IA textuels.",
    "aiWorkbenchScenarioImageTest": "Test image du Prompt",
    "aiWorkbenchScenarioImageTestDesc": "Modèle par défaut pour les tests de Prompt image.",
    "aiWorkbenchScenarioTranslation": "Traduction / édition bilingue",
    "aiWorkbenchScenarioTranslationDesc": "Utilisé par les flux de traduction de Prompt et Skill.",
    "aiWorkbenchBadgeQuickAdd": "Quick Add par défaut",
    "aiWorkbenchBadgePromptTest": "Test texte par défaut",
    "aiWorkbenchBadgeImageTest": "Test image par défaut",
    "aiWorkbenchBadgeTranslation": "Traduction par défaut",
    "aiWorkbenchLegacyBannerTitle": "Configuration héritée à modèle unique détectée",
    "aiWorkbenchLegacyBannerDesc": "Les fonctions IA existantes continuent de fonctionner, mais le nouvel atelier doit importer cette configuration dans la liste multi-modèles.",
    "aiWorkbenchImportLegacy": "Importer l'ancienne configuration",
    "aiWorkbenchLegacyImported": "Ancienne configuration par défaut importée",
    "aiWorkbenchFetchModelsFailed": "Échec du chargement de la liste des modèles",
    "aiWorkbenchFetchModelsUnsupported": "Ce fournisseur n'a pas renvoyé de point d'accès de liste de modèles compatible. Vous pouvez toujours saisir l'identifiant du modèle manuellement.",
    "aiWorkbenchFetchModelsNetworkError": "Impossible d'atteindre le point d'accès de liste des modèles. Vérifiez l'URL API, le réseau, le proxy ou la politique CORS.",
    "aiWorkbenchFetchModelsAuthError": "La requête de liste des modèles a été refusée. Vérifiez votre clé API et les autorisations du fournisseur.",
    "aiWorkbenchFetchModelsEmpty": "Le fournisseur n'a renvoyé aucun modèle. S'il masque ce point d'accès, saisissez l'identifiant du modèle manuellement.",
    "aiWorkbenchConnectionNetworkError": "La requête a échoué avant toute réponse du fournisseur. Vérifiez l'URL API, le réseau, le proxy ou la politique CORS.",
    "aiWorkbenchConnectionAuthError": "Le fournisseur a refusé cette requête. Vérifiez votre clé API, les droits du compte et le chemin de l'endpoint.",
    "aiWorkbenchCorsBlocked": "Le navigateur a bloqué cette requête cross-origin (CORS) vers {{target}}. Activez CORS côté fournisseur ou passez par un proxy applicatif.",
    "aiWorkbenchCorsBlockedDev": "Le navigateur a bloqué cette requête cross-origin (CORS). La page actuelle {{origin}} ne peut pas appeler directement {{target}}. Activez CORS côté fournisseur ou faites passer la requête par le processus principal Electron.",
    "aiWorkbenchInvalidCustomParams": "Les paramètres personnalisés doivent être un objet JSON avec uniquement des valeurs chaîne, nombre ou booléen",
    "aiWorkbenchModelDeleted": "Modèle supprimé",
    "aiWorkbenchIncompleteModel": "Cette configuration de modèle est incomplète et ne peut pas être testée",
    "aiWorkbenchEndpointNotTestable": "Aucun modèle complet testable n'est encore disponible sous ce point d'accès",
    "aiWorkbenchEndpointConnected": "Point d'accès connecté ({{latency}}ms)",
    "aiWorkbenchEndpointUpdated": "Point d'accès mis à jour",
    "aiWorkbenchModelTestSuccess": "test reussi",
    "aiWorkbenchModelTestFailed": "test echoue",
    "aiWorkbenchNoDefaultModel": "Aucun modèle par défaut disponible à tester pour le moment",
    "aiWorkbenchTypeDefault": "Défaut de ce type",
    "aiWorkbenchAdvancedParamsDesc": "La température, la sortie en flux, le mode réflexion et les autres paramètres restent configurés par modèle.",
    "aiWorkbenchConfigure": "Configurer",
    "aiWorkbenchEditModel": "Modifier le modèle",
    "aiWorkbenchModelModalSubtitle": "Les modifications enregistrées sont appliquées immédiatement et participent au routage par scénario.",
    "aiWorkbenchChatParamsDesc": "Configurez les paramètres de génération pour ce modèle de chat.",
    "aiWorkbenchImageParamsDesc": "Configurez les paramètres de génération d'image pour ce modèle.",
    "aiWorkbenchTestDraft": "Tester la configuration actuelle",
    "aiWorkbenchEditEndpoint": "Modifier le point d'accès",
    "aiWorkbenchEditEndpointSubtitle": "Met à jour en une fois le provider, la clé API et l'URL API de tous les modèles de ce point d'accès.",
    "aiWorkbenchTestAction": "Tester",
    "aiWorkbenchEndpointAddressMissing": "Adresse non configurée",
    "protocol": "Protocole",
    "protocolOpenAICompatible": "Compatible OpenAI",
    "protocolGeminiCompatible": "Compatible Gemini",
    "protocolAnthropicCompatible": "Compatible Anthropic",
    "advancedParams": "Paramètres avancés",
    "showAdvancedParams": "Afficher les paramètres avancés",
    "hideAdvancedParams": "Masquer les paramètres avancés",
    "temperature": "Température",
    "temperatureDesc": "Contrôle l'aléatoire, valeurs plus élevées = plus aléatoire (0-2)",
    "maxTokens": "Tokens max",
    "maxTokensDesc": "Limite le nombre maximum de tokens de sortie",
    "topP": "Top P",
    "topPDesc": "Paramètre d'échantillonnage nucléaire, contrôle la diversité (0-1)",
    "topK": "Top K",
    "topKDesc": "Limite le nombre de candidats par étape",
    "frequencyPenalty": "Pénalité de fréquence",
    "frequencyPenaltyDesc": "Réduit la répétition des mots (-2 à 2)",
    "presencePenalty": "Pénalité de présence",
    "presencePenaltyDesc": "Encourage la discussion de nouveaux sujets (-2 à 2)",
    "streamOutput": "Sortie en streaming",
    "streamOutputDesc": "Afficher la réponse IA en temps réel au lieu d'attendre la réponse complète",
    "enableThinking": "Mode réflexion",
    "enableThinkingDesc": "Voir le processus de raisonnement du modèle (nécessite le support du modèle)",
    "thinkingContent": "Processus de réflexion",
    "imageN": "Nombre d'images",
    "imageNDesc": "Nombre d'images à générer à la fois",
    "shortcuts": "Raccourcis",
    "globalShortcuts": "Raccourcis globaux",
    "shortcutShowApp": "Afficher/Masquer l'application",
    "shortcutShowAppDesc": "Afficher rapidement la fenêtre de l'application depuis n'importe où",
    "shortcutNewPrompt": "Nouveau Prompt",
    "shortcutNewPromptDesc": "Créer rapidement un nouveau Prompt",
    "shortcutSearch": "Recherche",
    "shortcutSearchDesc": "Ouvrir rapidement la boîte de recherche",
    "shortcutSettings": "Ouvrir les paramètres",
    "shortcutSettingsDesc": "Ouvrir rapidement la page des paramètres",
    "shortcutOptions": "Options de raccourcis",
    "shortcutMode": "Mode",
    "shortcutModeGlobal": "Global",
    "shortcutModeLocal": "Local",
    "shortcutModeDesc": "Les raccourcis globaux fonctionnent dans n'importe quelle application. Les raccourcis locaux fonctionnent uniquement lorsque PromptHub est actif",
    "enableGlobalShortcuts": "Activer les raccourcis globaux",
    "enableGlobalShortcutsDesc": "Permettre l'utilisation des raccourcis dans d'autres applications",
    "shortcutTips": "Conseils",
    "shortcutTip1": "Cliquez sur le champ de saisie et appuyez sur la combinaison de touches souhaitée",
    "shortcutTip2": "Les raccourcis doivent inclure une touche de modification (Ctrl/Cmd/Alt/Shift) et une touche normale",
    "shortcutTip3": "Certains raccourcis peuvent entrer en conflit avec le système ou d'autres applications",
    "notSet": "Non défini",
    "pressKeys": "Appuyez sur les touches...",
    "clearShortcut": "Effacer le raccourci",
    "shortcutConflict": "Le raccourci est en conflit avec \"{{key}}\"",
    "conflictWith": "Conflit avec \"{{key}}\"",
    "shortcutUpdated": "Raccourci mis à jour",
    "shortcutCleared": "Raccourci effacé",
    "customParams": "Paramètres personnalisés",
    "addCustomParam": "Ajouter un paramètre",
    "customParamsDesc": "Ajouter des paramètres de requête personnalisés, ex: max_completion_tokens",
    "paramName": "Nom du paramètre",
    "paramValue": "Valeur du paramètre",
    "clipboardImport": "Import automatique du presse-papiers",
    "clipboardImportDesc": "Détecter le JSON Prompt dans le presse-papiers et proposer l'importation lorsque la fenêtre est active",
    "shareJSON": "Partager en JSON",
    "skill": "Gestion des agents",
    "platformSkillPaths": "Répertoires cibles par plateforme",
    "platformSkillPathsDesc": "Remplace le répertoire Skill par défaut pour chaque outil IA. Cela affecte l'analyse, la distribution, la désinstallation et la détection de l'état d'installation.",
    "platformSkillPathPlaceholder": "Laissez vide pour utiliser le chemin par défaut, par ex. ~/.trae-cn/skills",
    "defaultPathLabel": "Chemin par défaut",
    "resetPlatformSkillPath": "Utiliser le défaut",
    "trackRulesPlatform": "Afficher cette plateforme",
    "platformEnabled": "Activée",
    "platformDisabled": "Désactivée",
    "extraSkillScanPaths": "Répertoires d'analyse supplémentaires",
    "extraSkillScanPathsDesc": "Ajoutez des répertoires Skill supplémentaires pour l'import et la découverte. Ils ne remplacent pas les répertoires par défaut des plateformes.",
    "customSkillScanPaths": "Chemins de scan personnalisés",
    "customSkillScanPathsDesc": "Ajoutez des répertoires contenant vos fichiers de compétences pour les inclure dans les analyses.",
    "customSkillScanPathPlaceholder": "Entrez le chemin, ex: ~/myskills",
    "addPath": "Ajouter",
    "noCustomPaths": "Aucun chemin personnalisé ajouté",
    "skillBackupHint": "Pour sauvegarder et restaurer les compétences, allez dans le panneau « Données » → Sauvegarde complète / Restaurer",
    "skillBackupHintLink": "Aller au panneau Données",
    "builtinSkillScanPaths": "Chemins de scan intégrés (lecture seule)",
    "builtinSkillScanPathsDesc": "Les répertoires de compétences d'outils IA suivants sont automatiquement analysés par PromptHub.",
    "githubTokenTitle": "Jeton d'accès GitHub",
    "githubTokenDesc": "Optionnel. Configurez un jeton d'accès personnel GitHub (classique ou fine-grained) pour que les requêtes du Skill Store utilisent votre quota authentifié (5 000 req/h) au lieu de la limite anonyme (60 req/h). Le jeton n'est envoyé qu'à api.github.com et raw.githubusercontent.com.",
    "githubTokenPlaceholder": "ghp_… ou github_pat_…",
    "githubTokenShow": "Afficher le jeton",
    "githubTokenHide": "Masquer le jeton",
    "githubTokenLearnMore": "Créer un jeton d'accès personnel",
    "githubTokenScopeHint": "Un jeton en lecture seule (sans aucun scope, pour les dépôts publics) suffit pour le Skill Store.",
    "skillInstallMethod": "Méthode d'installation des compétences",
    "skillInstallMethodDesc": "Choisissez comment installer les compétences de PromptHub vers les plateformes d'outils IA.",
    "skillInstallSymlink": "Lien symbolique",
    "skillInstallSymlinkDesc": "Crée un lien symbolique dans le répertoire de la plateforme pointant vers le dossier Skills de PromptHub. Plus efficace pour les mises à jour synchronisées.",
    "skillInstallCopy": "Copier le fichier",
    "skillInstallCopyDesc": "Copie SKILL.md directement dans le répertoire de la plateforme. Indépendant du répertoire PromptHub.",
    "platformDisplayOrder": "Ordre des plateformes",
    "platformDisplayOrderDesc": "Contrôle quelles plateformes d'agent sont activées et leur ordre d'affichage dans Skills et Rules.",
    "resetPlatformDisplayOrder": "Réinitialiser",
    "movePlatformUp": "Monter",
    "movePlatformDown": "Descendre",
    "addNModels": "Ajouter {{count}} modèles",
    "selectedModels": "{{count}} sélectionné(s)",
    "webWorkspace": "Espace web",
    "webRuntime": "Runtime web",
    "selfHostedWeb": "Web auto-hébergé",
    "selfHostedSyncMenu": "PromptHub auto-hébergé",
    "selfHostedWebDesc": "Cet espace est le déploiement web auto-hébergé de PromptHub. Il reprend l’expérience principale du desktop tout en exposant les commandes et limites propres au navigateur.",
    "webSkillSettingsDesc": "L’espace web auto-hébergé conserve le contenu des Skills dans le même jeu de sauvegarde, mais ne gère pas les répertoires de plateforme locaux, les liens symboliques ni les flux de distribution réservés au desktop.",
    "webDataPathPlaceholder": "Répertoire de données web auto-hébergé PromptHub",
    "webOrigin": "Origine du site",
    "browserSession": "Session navigateur",
    "browserSessionDesc": "L’authentification et l’accès sont gérés par cette session navigateur, et non par les services runtime du desktop.",
    "currentUser": "Utilisateur actuel",
    "connectedClient": "Client connecté",
    "connectedClientDesc": "Le navigateur et le système d’exploitation actuellement connectés à cet espace PromptHub auto-hébergé.",
    "connectedDevices": "Appareils connectés",
    "connectedDevicesDesc": "Les clients desktop et navigateur récemment connectés à cet espace PromptHub auto-hébergé.",
    "deviceManagement": "Gestion des appareils",
    "deviceManagementDesc": "Gérez les clients connectés, la cadence de sauvegarde desktop et le rafraîchissement du Skill Store.",
    "currentDevice": "Appareil actuel",
    "clientSync": "Synchronisation des clients",
    "deviceSyncCadence": "Cadence de synchronisation des clients",
    "deviceSyncCadenceDesc": "Définissez à quelle fréquence les clients desktop et navigateur doivent se synchroniser avec cet espace PromptHub auto-hébergé.",
    "deviceType": "Type d’appareil",
    "deviceTypeDesktop": "Client desktop",
    "deviceTypeBrowser": "Client navigateur",
    "devicePlatform": "Plateforme",
    "deviceVersion": "Version",
    "deviceLastSeen": "Dernière activité",
    "noConnectedDevices": "Aucun appareil connecté n’a encore été signalé.",
    "refreshDevices": "Actualiser",
    "syncCadenceManual": "Manuel uniquement",
    "syncCadence15m": "Toutes les 15 minutes",
    "syncCadence1h": "Toutes les heures",
    "syncCadence1d": "Tous les jours",
    "storeSync": "Synchronisation du store",
    "storeAutoSync": "Auto-sync du Skill Store",
    "storeAutoSyncDesc": "Actualisez automatiquement les sources officielles et connectées afin que le web et le desktop voient les mêmes Skills installables.",
    "storeSyncCadence": "Cadence de rafraîchissement du store",
    "storeSyncCadenceDesc": "Définissez la fréquence de rafraîchissement des sources Skill connectées dans le web auto-hébergé.",
    "storeSyncHint": "Les sources du Skill Store doivent rester à jour en arrière-plan pour garder le web et les clients desktop alignés.",
    "registrationMode": "Mode d’inscription",
    "registrationOpen": "Inscription publique activée",
    "registrationClosed": "Inscription publique désactivée",
    "signOut": "Se déconnecter",
    "webUpdatesManagedDesc": "Les mises à jour du web auto-hébergé se font via votre processus de déploiement. Récupérez la nouvelle version puis redéployez le service au lieu d’utiliser la mise à jour intégrée du desktop.",
    "selfHostedSyncDesc": "Utilisez votre PromptHub Web déployé comme cible de sauvegarde et source de restauration des données desktop, sans WebDAV.",
    "webLoginPassword": "Mot de passe de connexion",
    "webLoginPasswordDesc": "Modifiez le mot de passe utilisé pour vous connecter à cet espace web auto-hébergé.",
    "webPasswordTooShort": "Le nouveau mot de passe doit contenir au moins 8 caractères",
    "webPasswordChangeSuccess": "Mot de passe de connexion modifié avec succès",
    "webPasswordChangeFailed": "Échec de la modification du mot de passe de connexion",
    "webNewLoginPasswordPlaceholder": "Saisissez le nouveau mot de passe (8 caractères min.)",
    "webConfirmLoginPasswordPlaceholder": "Confirmez le nouveau mot de passe",
    "skillSafetyChecks": "Contrôles de sécurité des Skills",
    "skillSafetyChecksDesc": "Configure les analyses de sécurité automatiques pour les Skills installées ainsi que les vérifications avant installation depuis la boutique.",
    "autoScanInstalledSkills": "Analyser automatiquement les Skills installées",
    "autoScanInstalledSkillsDesc": "Lance automatiquement une analyse de sécurité lors de l’ouverture d’une page de détail d’une Skill afin de détecter les changements à haut risque.",
    "autoScanStoreSkillsBeforeInstall": "Analyse de sécurité avant installation",
    "autoScanStoreSkillsBeforeInstallDesc": "Désactivé par défaut. Une fois activée, une analyse de sécurité est lancée avant d’ajouter une Skill depuis la boutique afin de bloquer les contenus manifestement dangereux.",
    "batchScanInstalledSkills": "Analyser maintenant toutes les Skills installées",
    "batchScanInstalledSkillsDesc": "Lance manuellement une analyse de sécurité sur toutes les Skills de votre bibliothèque afin d’identifier rapidement les contenus à haut risque.",
    "batchScanInstalledSkillsResult": "{{total}} Skills vérifiées · bloquées {{blocked}} · risque élevé {{highRisk}} · avertissement {{warn}}",
    "stableChannel": "Canal stable",
    "previewChannel": "Canal d’aperçu",
    "joinPreviewChannel": "Canal d’aperçu",
    "joinPreviewChannelDesc": "Une fois activé, PromptHub recherche uniquement les builds d’aperçu / prerelease de GitHub Releases. Les versions stables seront à nouveau vérifiées après désactivation.",
    "previewChannelWarning": "Les builds d’aperçu peuvent être instables. Sauvegardez vos données avant la mise à jour et utilisez-les surtout pour tester les correctifs.",
    "previewChannelConfirmTitle": "Activer les mises à jour d’aperçu ?",
    "previewChannelConfirmSubtitle": "Les mises à jour d’aperçu sont optionnelles. Une fois activées, PromptHub vérifie uniquement les builds prerelease et ne bascule pas automatiquement vers les versions stables.",
    "previewChannelConfirmRisk": "Les builds d’aperçu peuvent inclure des régressions, des comportements inachevés ou des cas de migration pas encore totalement validés.",
    "previewChannelConfirmBackup": "Avant l’activation, créez une sauvegarde manuelle ou un export afin de pouvoir revenir en arrière en toute sécurité en cas de problème.",
    "previewChannelConfirmConsent": "Désactivez le canal d’aperçu pour revenir aux mises à jour stables. Si votre version d’aperçu est plus récente que la dernière version stable, PromptHub ne rétrogradera pas automatiquement.",
    "previewChannelConfirmCancel": "Rester sur le canal stable",
    "previewChannelConfirmEnable": "Activer les mises à jour d’aperçu",
    "previewChannelActiveDesc": "Version : {{version}} · Mises à jour d’aperçu uniquement"
  },
  "import": {
    "clipboardTitle": "Importer un Prompt depuis le presse-papiers",
    "detectedPrompt": "Données de Prompt détectées",
    "detectedDesc": "Le contenu du presse-papiers correspond au format Prompt. Voulez-vous l'importer dans votre bibliothèque ?"
  },
  "auth": {
    "loginTitle": "Connexion à PromptHub",
    "registerTitle": "Créer un compte",
    "username": "Nom d'utilisateur",
    "password": "Mot de passe",
    "signIn": "Se connecter",
    "register": "S'inscrire",
    "needAccount": "Besoin d'un compte ? S'inscrire",
    "haveAccount": "Vous avez déjà un compte ? Se connecter",
    "loginError": "Nom d'utilisateur ou mot de passe invalide",
    "registerError": "Échec de l'inscription",
    "setupBadge": "Configuration initiale",
    "setupTitle": "Initialiser votre PromptHub auto-hébergé",
    "setupDescription": "Cette instance n’a pas encore été initialisée. Créez le premier compte administrateur pour activer l’espace web.",
    "setupHint": "Le premier compte devient l’administrateur local de cette instance auto-hébergée. Après l’initialisation, gérez les données et la restauration de cet espace via les réglages et les sauvegardes.",
    "confirmPassword": "Confirmer le mot de passe",
    "completeSetup": "Créer l’administrateur",
    "setupPasswordMismatch": "Les deux mots de passe ne correspondent pas.",
    "setupError": "La configuration initiale a échoué",
    "setupRegistrationLocked": "L’inscription est actuellement indisponible. Vérifiez la configuration du serveur."
  },
  "resources": {
    "title": "Ressources recommandées",
    "promptGuides": "Guides d'ingénierie de Prompts",
    "agentSkills": "Bonnes pratiques Agent / Skill",
    "openaiGuideDesc": "Guide officiel OpenAI sur les prompts",
    "openaiPromptEngineeringDesc": "Stratégies de fiabilité et modèles de prompts",
    "anthropicGuideDesc": "Guide officiel Anthropic de prompt engineering",
    "learnPromptingDesc": "Cours gratuit de Prompt engineering",
    "claudeCodeOverviewDesc": "Entrée unique vers la doc officielle, les workflows, les hooks et les réglages",
    "openaiAgentsGuideDesc": "Guide pratique OpenAI pour des agents prêts pour la production",
    "anthropicToolUseDesc": "Patterns d'usage d'outils, garde-fous et conseils d'implémentation",
    "mcpQuickstartDesc": "Démarrage rapide du protocole pour outils, skills et intégrations"
  },
  "common": {
    "confirm": "Confirmer",
    "cancel": "Annuler",
    "save": "Enregistrer",
    "preview": "Aperçu",
    "content": "Source/Contenu",
    "delete": "Supprimer",
    "edit": "Modifier",
    "add": "Ajouter",
    "select": "Sélectionner",
    "selected": "Sélectionné",
    "selectAll": "Tout sélectionner",
    "clear": "Effacer",
    "close": "Fermer",
    "minimize": "Réduire",
    "maximize": "Agrandir",
    "expand": "Développer",
    "collapse": "Réduire",
    "loading": "Chargement...",
    "saving": "Enregistrement...",
    "error": "Erreur",
    "success": "Succès",
    "optional": "Optionnel",
    "back": "Retour",
    "backToTop": "Retour en haut",
    "done": "Terminé",
    "yesterday": "Hier",
    "daysAgo": " jours",
    "off": "Désactivé",
    "upload": "Télécharger",
    "download": "Télécharger",
    "downloadSuccess": "Téléchargement réussi",
    "downloadFailed": "Échec du téléchargement",
    "imageLoadFailed": "Échec du chargement de l’image",
    "showAll": "Tout",
    "chars": "caractères",
    "reset": "Réinitialiser",
    "fullscreen": "Plein écran",
    "exitFullscreen": "Quitter le plein écran",
    "markdownSupported": "Markdown Supported",
    "prompts": "Prompts",
    "skills": "Skills",
    "deselectAll": "Tout désélectionner",
    "refresh": "Actualiser",
    "refreshing": "Actualisation...",
    "enabled": "Activé",
    "disabled": "Désactivé",
    "enable": "Activer",
    "disable": "Désactiver"
  },
  "skill": {
    "title": "Compétence",
    "name": "Nom de la compétence",
    "description": "Description",
    "version": "Version",
    "author": "Auteur",
    "tags": "Tags",
    "files": "Fichiers",
    "instructions": "Instructions (SKILL.md)",
    "instructionsSection": "Instructions",
    "instructionsPlaceholder": "Saisissez les instructions de la compétence ou le contenu SKILL.md...",
    "noInstructions": "No instructions available",
    "mcpConfigSection": "MCP Configuration",
    "metadata": "Metadata",
    "id": "ID",
    "createdAt": "Created At",
    "updatedAt": "Updated At",
    "localStorage": "Local Storage",
    "defaultDescriptionLong": "This is an AI agent skill containing instructions and configurations for specific tasks.",
    "platformIntegration": "Integration des plateformes",
    "installed": "Installed",
    "clickToInstall": "Click to select",
    "clickToSelect": "Click to select",
    "selectedForInstall": "Pending install",
    "selectAll": "Select All",
    "deselectAll": "Deselect All",
    "selected": "Selected",
    "batchInstall": "Install All",
    "installing": "Installing...",
    "uninstall": "Uninstall",
    "export": "Export",
    "exportSkillMd": "Claude compatible format",
    "exportJson": "Backup/Share format",
    "exportZip": "Archive complete du dépôt local",
    "edit": "Edit Skill",
    "editing": "Editing",
    "cancel": "Cancel",
    "saveChanges": "Save Changes",
    "copyMd": "Copy MD",
    "copyRaw": "Copy Raw",
    "copied": "Copied",
    "visitRepo": "Visit Skill Repository",
    "updateFailed": "Update failed",
    "allSkills": "All Skills",
    "favorites": "Favorites",
    "create": "Créer la compétence",
    "createTitle": "Créer une nouvelle compétence",
    "editTitle": "Edit Skill",
    "search": "Search skills...",
    "empty": "No skills yet",
    "emptyDesc": "Create your first AI agent skill",
    "scanLocal": "Scanner local",
    "scanLocalDesc": "Scanner les compétences locales existantes",
    "installFromGithub": "Installer depuis GitHub",
    "galleryView": "Gallery View",
    "listView": "List View",
    "quickInstall": "Install to Platforms",
    "selectPlatforms": "Select platforms to install",
    "installSelected": "Install Selected",
    "noPlatformsDetected": "No platforms detected",
    "allPlatformsInstalled": "Installed on all platforms",
    "alreadyInstalled": "This skill is already installed on all detected platforms",
    "notInstalled": "Not installed",
    "imported": "Imported",
    "deployed": "Distributed",
    "noSkills": "No skills yet",
    "noSkillsHint": "Import skills from Skill Store, scan local environments, or create one manually to get started",
    "noFavorites": "No favorite skills",
    "noFavoritesHint": "Click the star on skill cards to add favorites",
    "noImportedSkills": "Aucune compétence importée pour l'instant",
    "noImportedSkillsHint": "Après un import depuis la boutique de skills, un scan local, GitHub ou une création manuelle, elles apparaîtront ici.",
    "noDeployedSkills": "Aucune compétence distribuée pour l'instant",
    "noDeployedSkillsHint": "Après distribution vers Claude, Cursor ou d'autres plateformes, elles s'afficheront ici.",
    "pendingDeployment": "En attente de distribution",
    "noPendingSkills": "Aucune compétence en attente",
    "noPendingSkillsHint": "Les compétences qui n'ont encore été distribuées vers aucune plateforme apparaîtront ici.",
    "noDistributionSkillsHint": "Import skills first, then install, sync, or uninstall them to Claude, Cursor, and other platforms here.",
    "webSkillLibrary": "Espace de skills",
    "webLibraryHint": "Créez ou importez vos propres skills ici. La distribution vers les plateformes et les boutiques de skills sont réservées à l'application desktop.",
    "checkPlatformDirs": "Vérifier si Claude Code, Cursor et d'autres plateformes sont installés",
    "customPathsHint": "Ajoutez des répertoires supplémentaires à scanner (par exemple ~/mytools/skills). Cliquez sur Re-scanner pour appliquer.",
    "deletePathConfirm": "Voulez-vous vraiment supprimer ce fichier ou ce dossier ? Cette action est irréversible.",
    "detailRenderErrorHint": "L'affichage du détail a échoué. Revenez à la liste puis réessayez.",
    "importTagsOptional": "Optionnel : ajouter des tags pendant l'import",
    "orAddCustomPath": "Ou ajoutez un chemin personnalisé ci-dessus puis relancez le scan",
    "searchImportPlaceholder": "Rechercher par nom, description, tags, plateforme ou chemin",
    "unsavedChangesWarning": "Vous avez des modifications non enregistrées. Les ignorer et fermer ?",
    "webLibrarySubtitle": "Gérez votre bibliothèque personnelle de Skills dans l’espace web auto-hébergé.",
    "workspaceHint": "Gérez toutes les compétences importées au même endroit, quelle que soit leur provenance.",
    "protocol": "Protocole",
    "distributionHint": "Gérez l'installation, la synchronisation et la désinstallation sur les plateformes connectées.",
    "addPath": "Ajouter un chemin",
    "addProject": "Ajouter un projet",
    "editProject": "Modifier le projet",
    "projectName": "Nom du projet",
    "projectNamePlaceholder": "Projet d'espace de travail",
    "projectRootPath": "Chemin racine du projet",
    "projectRootPathPlaceholder": "/path/to/project",
    "projectRootPathFirstHint": "Choisissez d'abord la racine du projet. PromptHub peut déduire le nom du projet et lancer le scan immédiatement.",
    "browseFolder": "Parcourir",
    "projectScanPaths": "Chemins de scan",
    "projectScanPathPlaceholder": "Répertoires supplémentaires à scanner",
    "projectScanPathsHint": "PromptHub scanne toujours la racine du projet ainsi que les dossiers par défaut comme .claude/skills, .agents/skills, skills et .gemini. Ajoutez des chemins supplémentaires seulement si votre projet stocke ses skills ailleurs.",
    "projectScanPathsEmpty": "Aucun chemin de scan supplémentaire configuré. PromptHub scannera quand même automatiquement la racine du projet.",
    "projectFormRequired": "Le nom du projet et le chemin racine sont obligatoires.",
    "projectRootPathExists": "Ce chemin racine de projet est déjà enregistré.",
    "projectUpdated": "Projet mis à jour",
    "projectCreated": "Projet ajouté",
    "projectCreatedAndScanning": "Projet ajouté. Scan en cours...",
    "projectSaveFailed": "Échec de l'enregistrement du projet",
    "projectScanComplete": "{{count}} skills scannés",
    "projectScanFailed": "Échec du scan des skills du projet",
    "projectImportSuccess": "Importé dans Mes compétences",
    "projectsSidebarHint": "Enregistrez des répertoires de projet et gérez leurs compétences locales.",
    "noProjects": "Aucun projet pour le moment",
    "noProjectsHint": "Ajoutez une racine de projet pour scanner et gérer les skills locaux du projet.",
    "projectSkillCount": "{{count}} skills",
    "projectImportableCount": "{{count}} importables",
    "projectWorkspaceHint": "Scannez les dossiers de skills du projet, importez ceux voulus dans PromptHub, ou ouvrez directement les chemins source.",
    "projectImportHint": "Importez d'abord cette compétence locale du projet dans Mes compétences. Vous pourrez ensuite la distribuer comme n'importe quelle compétence PromptHub normale.",
    "projectLastScan": "Dernier scan",
    "projectDetectedSkills": "Skills détectés",
    "openProjectFolder": "Ouvrir le projet",
    "projectNoScanResults": "Aucun skill scanné pour le moment",
    "projectNoScanResultsHint": "Lancez un scan pour découvrir les fichiers SKILL.md de ce projet, puis choisissez de les importer dans PromptHub ou simplement de gérer les chemins source.",
    "scanProjectSkills": "Scanner les skills du projet",
    "projectSearchEmptyHint": "Essayez un autre mot-clé pour trouver des skills locaux au projet.",
    "selectProject": "Sélectionner un projet",
    "selectProjectHint": "Choisissez un projet enregistré à gauche ou ajoutez-en un nouveau pour commencer à scanner les skills locaux du projet.",
    "selectProjectSkill": "Sélectionner un skill",
    "selectProjectSkillHint": "Choisissez un skill local au projet pour voir son contenu, sa traduction et ses fichiers avec la même vue détaillée que Mes Skills.",
    "projectDeleted": "Projet supprimé",
    "deleteProjectTitle": "Supprimer le projet",
    "deleteProjectMessage": "Retirer le projet « {{name}} » de PromptHub ? Cela supprime seulement l'enregistrement de l'espace de travail du projet et ne supprime aucun fichier.",
    "all": "Toutes",
    "confirmDelete": "Voulez-vous vraiment supprimer la compétence « {{name}} » ?",
    "defaultDescription": "Description de la compétence pour aider l'IA à comprendre quand l'utiliser",
    "icon": "Icône",
    "iconHint": "Téléversez votre propre icône ou choisissez-en une directement parmi les préréglages.",
    "presetIcons": "Icônes prédéfinies",
    "uploadIcon": "Téléverser une icône",
    "useDefaultIcon": "Utiliser l'icône par défaut",
    "iconBackground": "Fond de l'icône",
    "iconBackgroundHint": "Choisissez une couleur de fond plus stable pour éviter l'effet flottant sur la page de détail.",
    "useDefaultBackground": "Par défaut",
    "addFavorite": "Ajouter aux favoris",
    "removeFavorite": "Retirer des favoris",
    "delete": "Supprimer",
    "confirmInstallTitle": "Confirmer l'installation",
    "confirmInstallMessage": "Installer la compétence sur les plateformes suivantes :",
    "confirmUninstallTitle": "Confirmer la désinstallation",
    "confirmUninstallMessage": "Voulez-vous vraiment désinstaller cette compétence de {{platform}} ?",
    "installSuccess": "Opération réussie",
    "installPartialFailure": "Certaines plateformes n'ont pas pu être installées\n{{details}}",
    "installFailureRow": "{{platform}} : {{reason}}",
    "uninstallSuccess": "Désinstallation réussie",
    "aiGenerate": "Génération IA",
    "generating": "Génération...",
    "configureAiFirst": "Veuillez d'abord configurer un modèle IA dans les paramètres",
    "aiGenerateHint": "La génération IA est activée après la configuration d'un modèle IA dans les paramètres",
    "descriptionRequired": "Veuillez saisir une description pour la génération IA",
    "noAiModelConfigured": "Veuillez d'abord configurer un modèle IA dans les paramètres",
    "generateFailed": "Échec de la génération",
    "store": "Boutique de skills",
    "storeHint": "Découvrez et importez des skills depuis les boutiques officielles, communautaires et personnalisées.",
    "searchStore": "Rechercher des skills...",
    "installedSection": "Dans Mes compétences",
    "recommendedSection": "Disponibles à ajouter",
    "importedSection": "Imported",
    "availableSection": "Available",
    "install": "Ajouter",
    "addToLibrary": "Importer dans Mes compétences",
    "addedToLibrary": "Importé",
    "openInMySkills": "Ouvrir dans Mes compétences",
    "removeFromLibrary": "Retirer de Mes compétences",
    "openSkillFolder": "Ouvrir le dossier",
    "importAndDistribute": "Distribuer",
    "officialStore": "Boutique officielle",
    "communityStore": "Boutique communautaire",
    "claudeCodeStore": "Boutique Claude Code",
    "openaiCodexStore": "Boutique OpenAI Codex",
    "customStores": "Mes boutiques",
    "communityStoreHint": "Cette zone regroupera les sources communautaires de skills tierces. L'entrée est déjà prête pour connecter ensuite un registre communautaire.",
    "claudeCodeStoreHint": "Source Claude Code intégrée avec prise en charge prioritaire du dépôt officiel de skills et des index marketplace.json courants.",
    "claudeCodeStoreDetail": "Cette source intégrée est destinée à l'écosystème Claude Code. Elle vise d'abord le dépôt officiel de skills et les index marketplace.json, puis pourra évoluer vers une boutique distante navigable.",
    "openaiCodexStoreHint": "Source OpenAI Codex intégrée avec prise en charge prioritaire du catalogue sélectionné openai/skills.",
    "openaiCodexStoreDetail": "Cette source intégrée est destinée à l'écosystème OpenAI Codex. Elle se concentre sur le catalogue sélectionné openai/skills et reste compatible avec les dépôts SKILL.md de type répertoire.",
    "customStoresHint": "Ajoutez ici vos propres points d'accès de boutique. Une prochaine étape pourra connecter des manifests ou registres distants.",
    "customStoreEmpty": "Aucune compétence dans ce store personnalisé pour l'instant",
    "customStoreEmptyHint": "Cette source est connectée, mais aucune compétence n'a encore été chargée. Essayez d'actualiser en haut à droite ou ouvrez Modifier pour vérifier la configuration de la source.",
    "addStoreSource": "Ajouter une boutique",
    "storeNamePlaceholder": "Nom de la boutique",
    "storeUrlPlaceholder": "URL de la boutique / URL du manifest",
    "sourceTypeMarketplace": "Marketplace JSON",
    "sourceTypeGit": "Dépôt Git",
    "sourceTypeLocal": "Répertoire local",
    "sourceTypeMarketplaceHint": "Idéal pour une URL marketplace.json directe. PromptHub lira l'index et chargera les entrées de la boutique.",
    "sourceTypeGitHint": "Idéal pour une URL GitHub ou de dépôt Git. PromptHub détectera les dossiers SKILL.md ou un index de boutique à l'intérieur.",
    "sourceTypeLocalHint": "Idéal pour un chemin de dossier local. PromptHub analysera les dossiers de skills qu'il contient.",
    "storeExamples": "Exemples",
    "storeExampleMarketplace": "Exemple de Marketplace JSON",
    "storeExampleGit": "Exemple de dépôt Git",
    "storeExampleLocal": "Exemple de répertoire local",
    "supportedFormat": "Formats pris en charge",
    "formatDirectoryRepo": "`SKILL.md` directory-style repository",
    "formatIndexStore": "`marketplace.json` index-style store",
    "formatCuratedSubdir": "Curated subdirectory inside a larger Git repository",
    "formatCommunityLeaderboard": "skills.sh community leaderboard",
    "formatSkillDetailPage": "skills.sh skill detail page",
    "exampleSources": "Sources de référence intégrées",
    "customStorePendingHint": "Cette zone affichera les skills récupérées depuis la boutique sélectionnée à l'étape suivante. La version actuelle se concentre sur la gestion des sources et la hiérarchie de gauche.",
    "loadingRemoteStore": "Chargement des skills Claude Code depuis la source distante...",
    "loadingOpenAiStore": "Chargement des skills OpenAI Codex depuis la source distante...",
    "remoteStoreLoadFailed": "Échec du chargement de la boutique distante",
    "storeSourceAdded": "Boutique ajoutée",
    "storeSourceRequired": "Veuillez saisir à la fois un nom de boutique et une URL",
    "noCustomStores": "Aucune boutique personnalisée",
    "noCustomStoresHint": "Cliquez sur l'entrée en pointillés « Ajouter une boutique » dans la barre latérale gauche pour connecter vos propres sources de compétences.",
    "loadingCommunityStore": "Chargement de la liste des compétences de la communauté skills.sh...",
    "loadingCustomStore": "Chargement du contenu de la boutique personnalisée...",
    "remoteStoreRetry": "Réessayer",
    "remoteStoreRateLimitHint": "Limite de taux de l'API GitHub atteinte. Réessayez dans quelques minutes ou changez de réseau avant de réessayer.",
    "remoteStoreNetworkHint": "Impossible de joindre GitHub. Vérifiez votre connexion réseau ou changez de réseau puis réessayez.",
    "remoteStoreInvalidRepoHint": "Dépôt introuvable ou URL invalide. Vérifiez l’adresse du dépôt GitHub puis réessayez.",
    "invalidGitRepo": "Veuillez saisir une URL de dépôt GitHub ou utiliser un chemin de répertoire local",
    "skillsCount": "compétences",
    "adding": "Ajout en cours...",
    "noResults": "Aucune skill trouvée",
    "tryDifferentSearch": "Essayez une autre recherche ou une autre catégorie",
    "prerequisites": "Prérequis",
    "source": "Source",
    "sourceGithubStore": "Importé depuis GitHub / Skill Store",
    "sourceGithubRepo": "Importé depuis un dépôt GitHub",
    "sourceRemoteStore": "Importé depuis un Skill Store distant",
    "sourceRemoteLink": "Importé depuis un lien distant",
    "sourceLocalFolder": "Importé depuis un dossier local",
    "sourceClaudeLocalFolder": "Importé depuis le dossier local de skills Claude Code",
    "sourceCursorLocalFolder": "Importé depuis le dossier local de skills Cursor",
    "compatibility": "Compatible avec",
    "navigationHint": "La navigation entre skills arrive bientôt",
    "symlink": "Lien symbolique",
    "copyMode": "Copie",
    "symlinkDesc": "Lien symbolique : crée un lien pointant vers le fichier source. Toutes les plateformes partagent la même source ; les modifications se synchronisent immédiatement, mais cela nécessite la prise en charge du système de fichiers.",
    "copyModeDesc": "Copie : recopie le fichier SKILL.md dans chaque répertoire de plateforme. Chaque copie est indépendante ; les modifications faites dans PromptHub ne se synchronisent pas automatiquement.",
    "rawContent": "Contenu SKILL.md",
    "noContent": "Aucun contenu",
    "translate": "Traduire avec l'IA",
    "translating": "Traduction...",
    "showOriginal": "Afficher l'original",
    "showTranslation": "Afficher la traduction",
    "translateSuccess": "Traduction terminée",
    "translateFailed": "Échec de la traduction",
    "translationOutdatedTitle": "La traduction enregistree est obsolete",
    "translationOutdatedMessage": "Le fichier SKILL.md de cette competence a change depuis la derniere traduction. Retraduire maintenant ?",
    "translationOutdatedBadge": "La traduction enregistree doit etre actualisee",
    "retranslateNow": "Retraduire maintenant",
    "aiNotConfigured": "Veuillez d'abord configurer un modèle d'IA dans les paramètres",
    "aiNotConfiguredDetailed": "Aucun modele de traduction IA utilisable n'est configure. Configurez un modele de chat dans les parametres ou corrigez le modele de traduction selectionne.",
    "translateGatewayTimeout": "Le service IA a expire pendant la traduction. Reessayez dans un instant ou choisissez un endpoint de modele plus rapide et plus stable.",
    "translateNetworkError": "La requete de traduction n'a pas pu atteindre le service IA. Verifiez votre reseau et l'endpoint API, puis reessayez.",
    "addSkill": "Ajouter une compétence",
    "chooseAddMethod": "Choisissez comment ajouter une compétence :",
    "aiCreate": "Brouillon IA",
    "aiCreateDesc": "Décrivez vos besoins, l'IA prépare d'abord un brouillon de SKILL.md à relire",
    "aiCreateHint": "Utilise le Skill Creator pour rédiger un brouillon professionnel de SKILL.md. Vous pouvez le relire et le modifier avant l'enregistrement.",
    "aiDescPlaceholder": "Décrivez ce que cette compétence doit faire, son objectif et quand la déclencher...",
    "generateAndReview": "Générer et prévisualiser",
    "createManually": "Créer manuellement",
    "manualDesc": "Écrire une compétence à partir de zéro",
    "githubDesc": "Collez l'URL du dépôt GitHub pour installer",
    "scanLocalTitle": "Scanner les compétences locales",
    "scanLocalHint": "Détecte automatiquement les fichiers SKILL.md dans les dossiers gérés par PromptHub, Claude, Cursor, Windsurf et d'autres outils IA.",
    "dropImportTitle": "Glisser pour importer des skills",
    "dropImportDesc": "Deposez ici un dossier de skill ou un fichier nomme SKILL.md pour ouvrir le flux existant de previsualisation et d'import.",
    "dropImportUnsupported": "Seuls les dossiers locaux ou un fichier nomme exactement SKILL.md peuvent etre importes comme skills.",
    "dropImportEmpty": "Aucun fichier SKILL.md importable n'a ete trouve dans les elements deposes.",
    "dropImportFailed": "Echec de l'analyse des fichiers de skill deposes",
    "nameRequired": "Veuillez saisir un nom de compétence",
    "namePlaceholder": "my-skill",
    "githubUrl": "URL du dépôt GitHub",
    "githubUrlHint": "Utilisez l'URL racine du dépôt. PromptHub clonera le dépôt et privilégiera SKILL.md, sinon README.md.",
    "githubConstraintHint": "Seules les URL racine de dépôt sont prises en charge pour le moment, par exemple https://github.com/owner/repo",
    "githubFallbackHint": "Si SKILL.md est absent, PromptHub essaiera README.md. Pour réinstaller, il faut actuellement supprimer l'ancienne copie d'abord.",
    "enterGithubUrl": "Veuillez saisir une URL GitHub",
    "invalidGithubUrl": "Format d'URL GitHub invalide",
    "installFailed": "Échec de l'installation",
    "installReturnedEmpty": "L'installation GitHub n'a renvoyé aucune skill valide",
    "createFailed": "Échec de la création",
    "createReturnedEmpty": "La création n'a renvoyé aucun résultat de skill valide",
    "noSkillsFound": "Aucun nouveau fichier SKILL.md local trouvé.",
    "scanFailed": "Échec du scan : ",
    "skillName": "Nom de la compétence",
    "skillDescription": "Description de la compétence",
    "nameHint": "Lettres minuscules, chiffres et tirets uniquement, ex. my-skill-name",
    "descriptionPlaceholder": "Décrivez brièvement la fonction de la compétence",
    "authorPlaceholder": "Nom de l'auteur",
    "tagsOptional": "Tags (optionnel)",
    "selectExistingTags": "Sélectionner des tags existants :",
    "enterTagHint": "Entrez un nouveau tag et appuyez sur Entrée",
    "importTags": "Tags d'import",
    "addTag": "Ajouter un tag",
    "uploadMd": "Importer .md",
    "aiPolish": "Polissage IA",
    "polishing": "Polissage...",
    "polishNeedsContent": "Veuillez écrire du contenu avant de polir",
    "polishFailed": "Échec du polissage",
    "aiPolishHint": "Polir le contenu selon le format standard SKILL.md",
    "instructionsHint": "Prend en charge le format Markdown pour guider l'IA dans l'utilisation de cette compétence",
    "startScan": "Lancer le scan",
    "scanning": "Scan en cours...",
    "scanFound": "{{count}} compétence(s) trouvée(s)",
    "rescan": "Relancer le scan",
    "importSelected": "Importer la sélection",
    "importing": "Importation...",
    "scanImportSummary": "{{imported}} / {{total}} importés, {{skipped}} ignorés, {{failed}} échecs.",
    "allDuplicates": "Toutes les compétences sélectionnées existent déjà dans votre bibliothèque.",
    "allAlreadyImported": "All scanned skills already exist in your library.",
    "versionHistory": "Historique des versions",
    "versionManagement": "Gestion des versions",
    "currentVersion": "Version actuelle",
    "restoreVersion": "Restaurer cette version",
    "restoreConfirm": "Êtes-vous sûr de vouloir restaurer la v{{version}} ? Le contenu actuel sera sauvegardé comme nouvelle version.",
    "deleteVersionTitle": "Supprimer le snapshot de version",
    "deleteVersionConfirm": "Supprimer la v{{version}} ? Cette entrée d’historique ne pourra pas être récupérée.",
    "noVersions": "Aucun historique de version",
    "compareVersions": "Comparer les versions",
    "filesInVersion": "Fichiers de la version",
    "versionNote": "Note de version",
    "initialVersion": "Version initiale",
    "fileEditor": "Éditeur de fichiers",
    "newFile": "Nouveau fichier",
    "newFolder": "Nouveau dossier",
    "deleteFile": "Supprimer le fichier",
    "deleteFileConfirm": "Êtes-vous sûr de vouloir supprimer ce fichier ? Cette action est irréversible.",
    "openInExplorer": "Ouvrir dans le gestionnaire de fichiers",
    "unsavedFile": "Le fichier a des modifications non enregistrées",
    "fileSaved": "Fichier enregistré",
    "noFiles": "Aucun fichier local pour cette compétence",
    "binaryFile": "Le fichier binaire ne peut pas être édité",
    "enterFileName": "Entrez le nom du fichier",
    "enterFolderName": "Entrez le nom du dossier",
    "createVersion": "Créer une version",
    "versionNotePlaceholder": "Décrivez les modifications...",
    "versionCreated": "Version créée",
    "creating": "Création...",
    "batchTags": "Gérer les tags en lot",
    "batchTagsHint": "Ajouter ou supprimer des tags sur {{count}} skills sélectionnés.",
    "batchTagAffected": "{{count}} skills seront mis à jour",
    "batchTagPartialFailure": "Mise à jour groupée des tags terminée : {{updated}} réussis, {{failed}} échoués",
    "batchTagAddSuccess": "Tag ajouté à {{count}} skills",
    "batchTagRemoveSuccess": "Tag supprimé de {{count}} skills",
    "batchManage": "Gestion par lot",
    "batchDeploy": "Synchronisation groupée",
    "selectionMode": "Mode lot",
    "selectedCount": "{{count}} sélectionnés",
    "detectedPlatforms": "Plateformes détectées",
    "selectedPlatforms": "{{count}} sélectionné(s)",
    "distributionStats": "{{deployed}} distribués / {{total}} au total",
    "progressiveRendering": "Rendu progressif {{rendered}}/{{total}}",
    "batchDeployDefaultsHint": "Les plateformes détectées sont sélectionnées par défaut. Vérifiez les cibles avant la synchronisation groupée.",
    "batchUndeployDefaultsHint": "Supprime uniquement les skills distribués par PromptHub des plateformes choisies. Le dépôt local reste intact.",
    "executionPlan": "Plan d'exécution",
    "noPlatformSelected": "Aucune plateforme sélectionnée",
    "compareAgainst": "Comparer avec",
    "compareSummary": "{{from}} -> {{to}}",
    "createSnapshot": "Créer un snapshot",
    "snapshot": "Snapshot",
    "snapshotPrompt": "Saisissez une note pour ce snapshot",
    "snapshotCreated": "Snapshot de version créé",
    "snapshotDefaultNote": "Snapshot manuel {{timestamp}}",
    "versionTimeline": "Chronologie",
    "noVersionHistory": "Aucun historique de version pour le moment",
    "noVersionHistoryHint": "Modifier SKILL.md ou l’arborescence des fichiers créera automatiquement des snapshots restaurables ici.",
    "versionRestoreHint": "Sélectionnez une version à restaurer",
    "selectedVersion": "Version sélectionnée",
    "diffView": "Diff",
    "noChanges": "Aucun changement",
    "filesChanged": "{{count}} fichier(s) modifié(s)",
    "expandAll": "Tout développer",
    "collapseAll": "Tout réduire",
    "importedBadge": "Déjà importé",
    "noLocalRepo": "Aucun dépôt local trouvé",
    "safetyAssessment": "Analyse de sécurité",
    "safetyAssessmentDesc": "Analyse de sécurité par IA du contenu du Skill et de son contexte de provenance.",
    "safetyAssessmentEmpty": "Aucune analyse disponible. Lancez un scan pour vérifier ce Skill.",
    "safetyScanning": "Analyse...",
    "runSafetyAssessment": "Scanner",
    "safetyLevelLabel": "Niveau de risque",
    "safetyModalTitle": "Rapport de sécurité",
    "safetyRescan": "Rescanner",
    "safetyFilesChecked": "{{count}} fichier(s) vérifié(s)",
    "safetyScanMethod": "Méthode",
    "safetyScanMethodAI": "Assisté par IA",
    "safetyScanMethodAIDesc": "L'analyse IA examine le SKILL.md et les fichiers du dépôt avec le contexte du modèle. C'est donc le signal principal pour décider d'une installation.",
    "safetyScore": "Score",
    "safetyScoreDesc": "Score de 0 à 100 (plus élevé = plus sûr). Basé sur le niveau de risque et le nombre de problèmes : bloqué 0–10, haut risque 20–40, attention 50–70, sûr 80–100.",
    "safetyDimensionTitle": "Dimensions de notation",
    "safetyDimContent": "Patterns de contenu",
    "safetyDimContentDesc": "Relecture IA des instructions SKILL.md et des fichiers suspects du dépôt pour repérer commandes dangereuses, élévation de privilèges, accès aux secrets, prompt injection et exfiltration.",
    "safetyDimSource": "Confiance de la source",
    "safetyDimSourceDesc": "Prévalidation de provenance plus revue IA du contexte pour les sources manquantes, URL invalides, hôtes personnalisés et adresses internes restreintes.",
    "safetyDimRepo": "Structure du dépôt",
    "safetyDimRepoDesc": "Revue de l'arborescence du dépôt pour les scripts exécutables, binaires embarqués, fichiers de persistance et autres signaux de packaging risqué fournis à l'analyse IA.",
    "safetyDimFindings": "{{count}} résultat(s)",
    "safetyDimNoFindings": "Aucun problème",
    "safetyScoreFormula": "Formule : le niveau de risque fixe la plage de base (bloqué 0–10 · risque élevé 20–40 · attention 50–70 · sûr 80–100), puis chaque résultat déduit des points dans cette plage.",
    "safetyNoFindings": "Aucun problème détecté",
    "safetySeverityHigh": "Élevé",
    "safetySeverityWarn": "Avertissement",
    "safetySeverityInfo": "Info",
    "safetyScanTime": "Scanné le",
    "safetyScanBlockedSource": "L'analyse de sécurité a bloqué cette source car elle pointe vers une adresse interne ou restreinte.",
    "symlinkHint": "Creates a symlink in the platform directory — lighter updates going forward.",
    "copyHint": "Copies SKILL.md to the platform directory — more compatible.",
    "scanRepository": "Scan Repository",
    "githubNoImportableSkills": "No importable SKILL.md or README.md files were found in this repository.",
    "githubScanFound": "Found {{count}} import option(s)",
    "githubScanHint": "Select one or more skills from this repository before importing.",
    "githubImportSummary": "Imported {{imported}} / {{total}}, skipped {{skipped}}, failed {{failed}}.",
    "safetyLevelSafe": "Safe",
    "safetyLevelWarn": "Needs review",
    "safetyLevelHighRisk": "High risk",
    "safetyLevelBlocked": "Blocked",
    "safetySummarySafe": "No obvious malicious patterns were detected across {{count}} scanned files.",
    "safetySummaryWarn": "{{warn}} warning findings were detected across {{count}} scanned files. Review the source before installing or executing it.",
    "safetySummaryHighRisk": "{{high}} high-risk and {{warn}} warning findings were detected across {{count}} scanned files. Manual review is recommended before proceeding.",
    "safetySummaryBlocked": "Obvious dangerous patterns were detected across {{count}} scanned files. Installation should remain blocked.",
    "securityAudits": "Security Audits",
    "safetyScanFailed": "Safety scan failed",
    "safetyScanBlockedInstall": "Installation blocked due to safety concerns.",
    "safetyHighRiskTitle": "High-Risk Skill Detected",
    "safetyHighRiskConfirm": "This skill has been flagged as high risk. Are you sure you want to proceed?",
    "addAnyway": "Add Anyway",
    "confirmDeleteTitle": "Confirm Delete",
    "confirmDeleteSingle": "Are you sure you want to delete skill \"{{name}}\"?",
    "confirmDeleteMultiple": "Are you sure you want to delete {{count}} selected skills?",
    "deleteHint": "Only removes from the PromptHub library. Source files are preserved and platform installations will be uninstalled.",
    "refreshTranslation": "Refresh Translation",
    "editMetadata": "Edit Skill Metadata",
    "batchAction": "Action Mode",
    "batchDeployFailed": "Batch deploy completed with {{failed}} failures out of {{total}} targets.",
    "batchDeployFailureList": "Failed Targets",
    "batchDeployHint": "Deploy {{count}} skill(s) to selected platforms.",
    "batchUndeploy": "Batch Uninstall from Platforms",
    "batchUndeployHint": "Removes corresponding skills from selected platform directories. Your local PromptHub repo is not affected.",
    "noDetectedPlatforms": "No syncable platform directories detected.",
    "customPaths": "Custom scan paths",
    "detailRenderError": "This skill cannot be opened right now",
    "existingTags": "Existing tags",
    "exportFailed": "Export failed",
    "githubStars": "GitHub Stars",
    "hideOptionalTags": "Hide optional tags",
    "importFailed": "Failed to import skills",
    "installMethod": "Install Method",
    "loadFailed": "Load failed",
    "nameInvalid": "Invalid name format (only lowercase letters, numbers, and hyphens)",
    "nameTooLong": "Name must not exceed 64 characters",
    "openFileEditor": "Open File Editor",
    "openLocalSource": "Open Local Skill Folder",
    "openRemoteSource": "Open Source Link",
    "operation": "Operation",
    "pathPlaceholder": "~/path/to/skills",
    "previewRenderError": "Skill preview cannot be rendered right now",
    "previewRenderErrorHint": "The skill content or metadata format has a compatibility issue, but it won't crash the entire detail page. You can retry later or switch to the file view to inspect the raw content.",
    "instructionsManagedInFiles": "Instructions are managed in the file editor",
    "instructionsManagedInFilesHint": "SKILL.md and other files should be edited in the file editor. This form is for metadata only (name, description, author, tags).",
    "removeTag": "Remove tag",
    "restore": "Restore",
    "restoring": "Restoring...",
    "scanPreview": "Scan Preview",
    "scanPreviewStats": "Total: {{total}} · Imported: {{imported}} · Importable: {{importable}} · Selected: {{selected}}",
    "scanStatsImportable": "Importable",
    "scanStatsImported": "Imported",
    "scanStatsSelected": "Selected",
    "scanStatsTotal": "Total",
    "selectedSkills": "Selected Skills",
    "showOptionalTags": "Add tags when needed",
    "skillContent": "Skill Content",
    "skills": "skills",
    "storePage": "Store Page",
    "storePathPlaceholder": "Local directory path",
    "storeSourceHttpsRequired": "Store URL must use HTTPS",
    "storeSourceInvalidUrl": "Invalid store URL format",
    "storeSourceType": "Store Type",
    "syncSummary": "Sync Summary",
    "syncing": "Syncing",
    "syncingProgress": "Syncing {{current}}/{{total}}...",
    "tag": "Tag",
    "targetPlatforms": "Target Platforms",
    "totalTargets": "Total Targets",
    "translateRefreshed": "Translation refreshed",
    "weeklyInstalls": "Weekly Installs",
    "safetyFinding": {
      "shell-pipe-exec": "Detected pipe-to-shell execution",
      "dangerous-delete": "Detected destructive delete command",
      "encoded-powershell": "Detected encoded PowerShell execution",
      "encoded-shell-bootstrap": "Detected encoded payload decoded and executed immediately",
      "privilege-escalation": "Requests elevated privileges",
      "system-persistence": "Touches persistence or system service mechanisms",
      "secret-access": "Reads secret-bearing paths",
      "security-bypass": "Suggests bypassing approvals or sandboxing",
      "network-exfil": "Contains possible credential exfiltration behavior",
      "exec-bit": "Modifies executable permissions",
      "network-bootstrap": "Downloads remote resources",
      "env-mutation": "Mutates shell environment or startup files",
      "untrusted-source-host": "Source host is not a known trusted marketplace host",
      "external-audits": "Marketplace exposes external security audit metadata",
      "internal-source": "Source resolves to a local or internal address",
      "unknown-source": "Source provenance is missing",
      "invalid-source-url": "Source URL is invalid",
      "insecure-source-url": "Source URL is not HTTPS",
      "persistence-file": "Repository contains workflow or persistence-related files",
      "high-risk-binary": "Repository contains high-risk executable artifacts",
      "script-file": "Repository contains executable scripts"
    },
    "updateAvailable": "Mise à jour disponible",
    "updateConflict": "Les modifications locales entrent en conflit avec la mise à jour du store",
    "localModified": "Modifications locales détectées",
    "upToDate": "Déjà à jour",
    "updateCheckFailed": "Échec de la vérification des mises à jour",
    "updateSuccess": "Mis à jour",
    "checkingUpdate": "Vérification...",
    "checkUpdate": "Vérifier la mise à jour",
    "updating": "Mise à jour...",
    "update": "Mettre à jour",
    "overwriteLocalChanges": "Écraser les modifications locales",
    "platformWorkbench": {
      "badge": "Future Workspace Preview",
      "heroTitle": "From Prompt + Skill manager to an AI operations workspace",
      "heroDesc": "This prototype explores how PromptHub could grow into a unified platform for prompts, skills, agents, MCP integrations and execution history without forcing everything into the current two-mode shell.",
      "heroStatObjects": "Managed objects",
      "heroStatObjectsHint": "Prompt · Skill · Agent · MCP",
      "heroStatLayers": "Platform layers",
      "heroStatLayersHint": "Assets · Connections · Runs",
      "heroStatGoal": "Goal",
      "heroStatGoalValue": "Clearer IA",
      "heroStatGoalHint": "Scale without UI entropy",
      "sidebarTitle": "Platform map",
      "sidebarFootTitle": "Design signal",
      "sidebarFootDesc": "Main navigation shifts from object count to domain structure: assets, automations, integrations and operations.",
      "libraryLabel": "Library",
      "libraryEyebrow": "Assets",
      "libraryTitle": "Prompts, skills and reusable building blocks",
      "libraryDesc": "Content assets and reusable capabilities live in the same workspace, but remain clearly typed and searchable.",
      "agentsLabel": "Agents",
      "agentsEyebrow": "Automation",
      "agentsTitle": "Agents become first-class managed units",
      "agentsDesc": "Agents should sit beside skills, with explicit runtime, ownership and safety metadata instead of being hidden inside loose prompt conventions.",
      "mcpLabel": "MCP & Integrations",
      "mcpEyebrow": "Connections",
      "mcpTitle": "External tools are managed as connections, not content",
      "mcpDesc": "MCP servers, model gateways and sync endpoints belong in a dedicated integration surface with health, auth and environment context.",
      "operationsLabel": "Operations",
      "operationsEyebrow": "Runs",
      "operationsTitle": "Execution becomes observable and reviewable",
      "operationsDesc": "Once Prompt, Skill, Agent and MCP all coexist, users need a unified surface for runs, failures, audits and release readiness.",
      "summaryReady": "Ready",
      "summaryNeedsReview": "Needs review",
      "summaryShared": "Shared",
      "summaryActive": "Active",
      "summaryQueued": "Queued",
      "summaryGuarded": "Guarded",
      "summaryConnected": "Connected",
      "summaryAttention": "Attention",
      "summaryEnvironments": "Environments",
      "summaryRuns": "Runs today",
      "summaryFailures": "Failures",
      "summaryRecovered": "Recovered",
      "lanePrompts": "Prompts",
      "lanePromptsHint": "Writing assets, templates, snippets",
      "laneSkills": "Skills",
      "laneSkillsHint": "Reusable capability packages and project skills",
      "laneResources": "Resources",
      "laneResourcesHint": "Reference docs, context packs, imported files",
      "laneResearch": "Research agents",
      "laneResearchHint": "Discovery, synthesis and evaluation loops",
      "laneCoding": "Coding agents",
      "laneCodingHint": "Implementation, refactor and test execution",
      "laneOps": "Ops agents",
      "laneOpsHint": "Release, monitoring and support workflows",
      "laneMcpServers": "MCP servers",
      "laneMcpServersHint": "Tool adapters, execution endpoints, repo bridges",
      "laneProviders": "Providers",
      "laneProvidersHint": "AI gateways, inference vendors, fallback chains",
      "laneSync": "Sync targets",
      "laneSyncHint": "Backups, publishing targets and workspace mirrors",
      "laneRuns": "Execution runs",
      "laneRunsHint": "Recent tasks, jobs and automated sequences",
      "laneAudit": "Audits",
      "laneAuditHint": "Security checks, publish reviews and quality gates",
      "laneReleases": "Releases",
      "laneReleasesHint": "Version plans, rollout state and rollback safety",
      "statusPublished": "Published",
      "statusDraft": "Draft",
      "statusReady": "Ready",
      "statusHealthy": "Healthy",
      "statusExperiment": "Experiment",
      "statusMonitored": "Monitored",
      "statusStable": "Stable",
      "statusSyncing": "Syncing",
      "statusAtRisk": "At risk",
      "statusNeedsReview": "Needs review",
      "statusOnline": "Online",
      "actionOpenSkill": "Open skill",
      "actionOpenPrompt": "Open prompt pack",
      "actionOpenTemplate": "Open template",
      "actionOpenAgent": "Open agent",
      "actionInspectAgent": "Inspect workflow",
      "actionReviewRuns": "Review runs",
      "actionOpenConnection": "Open connection",
      "actionViewHealth": "View health",
      "actionInspectSource": "Inspect source",
      "actionOpenBoard": "Open board",
      "actionReviewQueue": "Review queue",
      "actionOpenTimeline": "Open timeline",
      "actionCompare": "Compare model",
      "searchPlaceholder": "Search resources, capabilities or integrations...",
      "filter": "Filter",
      "emptySearch": "No prototype items match the current search.",
      "items": "items",
      "contextTitle": "Context panel",
      "metaType": "Type",
      "metaStatus": "Status",
      "metaOwner": "Owner",
      "metaUpdated": "Updated",
      "whyTitle": "Why this matters",
      "whyLibrary": "Prompts and skills can still feel familiar, but they no longer need to shoulder every future object type in the product.",
      "whyAgents": "Agents deserve their own lifecycle, observability and guardrails instead of being buried as prompt conventions or skill metadata hacks.",
      "whyMcp": "MCP and provider configuration is operational infrastructure. Treating it as a connection surface keeps auth, health and environment concerns explicit.",
      "whyOperations": "As the platform grows, users need a home for runs, audits and release status that cuts across every resource type.",
      "noteTitle": "Prototype note",
      "noteDesc": "This page is intentionally driven by mock structure. The goal is to preview a scalable navigation and workspace shape before migrating the real Prompt / Skill shell."
    }
  },
  "error": {
    "sha512Desc": "SHA512 checksum mismatch.\nThis is usually caused by CDN cache inconsistencies or network issues.\nThe file may have been downloaded successfully. You can try to install it manually."
  },
  "toast": {
    "selfHostedSyncConnectionSuccess": "Connexion réussie. L’espace distant contient actuellement {{prompts}} prompts, {{folders}} dossiers, {{rules}} règles et {{skills}} compétences.",
    "selfHostedSyncPushSuccess": "{{prompts}} prompts, {{folders}} dossiers, {{rules}} règles et {{skills}} compétences ont été envoyés vers PromptHub Web.",
    "selfHostedSyncPullSuccess": "{{prompts}} prompts, {{folders}} dossiers, {{rules}} règles et {{skills}} compétences ont été restaurés depuis PromptHub Web."
  },
  "closeDialog": {
    "title": "Fermer la fenêtre",
    "message": "Comment souhaitez-vous fermer ?",
    "minimizeToTray": "Minimiser dans la barre des tâches",
    "exitApp": "Quitter l'application",
    "rememberChoice": "Se souvenir de mon choix"
  },
  "quickAdd": {
    "title": "Ajout rapide",
    "manualAdd": "Ajout manuel",
    "manualAddDesc": "Remplir manuellement les détails du Prompt",
    "desc": "Collez le contenu pour l'analyse et la catégorisation par l'IA",
    "generateEntry": "Génération IA",
    "generateEntryDesc": "Décrivez votre objectif et laissez l'IA rédiger un Prompt",
    "quickAddDesc": "Coller un Prompt, l'IA analyse et catégorise",
    "smartFolder": "Classement intelligent",
    "needConfig": "Configuration IA requise",
    "noAiConfig": "Service IA non configuré",
    "noAiConfigDesc": "Veuillez d'abord configurer le fournisseur d'IA dans les paramètres pour utiliser l'analyse intelligente.",
    "tokenWarning": "L'utilisation de l'analyse IA consommera des jetons",
    "pastePrompt": "Collez votre Prompt",
    "placeholder": "Collez le contenu de votre Prompt ici...",
    "modeLabel": "Mode de création",
    "modeAnalyze": "Analyser un contenu existant",
    "modeAnalyzeDesc": "Collez un Prompt existant et laissez l’IA extraire le titre, les tags et le classement",
    "modeGenerate": "Générer un Prompt avec l’IA",
    "modeGenerateDesc": "Décrivez votre objectif et laissez l’IA générer un brouillon de Prompt prêt à être enregistré",
    "generatePromptRequest": "Décrivez le Prompt souhaité",
    "generatePlaceholder": "Exemple : crée un Prompt pour rédiger des titres Xiaohongshu avec un ton jeune et tendance, et propose 10 variantes.",
    "generateAndCreate": "Générer et créer",
    "analyzing": "Analyse en cours...",
    "analyzeWithAi": "Utiliser l'analyse intelligente IA",
    "parseError": "Impossible d'analyser la réponse de l'IA",
    "analysisFailed": "L'analyse de l'IA a échoué",
    "analysisResult": "Résultat de l'analyse IA",
    "suggestedFolder": "Dossier suggéré",
    "create": "Créer"
  },
  "recovery": {
    "title": "Données récupérables disponibles",
    "description": "Nous avons trouvé une ou plusieurs sources récupérables. Vérifiez les volumes, les dates et l’aperçu, puis choisissez la source à restaurer.",
    "sourceLabel": "Données trouvées à :",
    "promptCount": "{{count}} prompts",
    "folderCount": "{{count}} dossiers",
    "skillCount": "{{count}} compétences",
    "dbSize": "Taille de la base de données : {{size}}",
    "recover": "Récupérer les données",
    "recoverSelected": "Restaurer la source sélectionnée",
    "dismiss": "Recommencer à zéro",
    "recovering": "Récupération des données en cours...",
    "success": "Données récupérées avec succès ! L'application va redémarrer.",
    "restarting": "L'application redémarre...",
    "failed": "Échec de la récupération : {{error}}",
    "overwriteWarning": "Votre bibliothèque contient actuellement {{count}} invite(s). La récupération remplacera vos données existantes par la sauvegarde sélectionnée. Vos données actuelles seront sauvegardées automatiquement avant de continuer.",
    "confirmDismiss": "Êtes-vous sûr de vouloir commencer avec une base de données vide ? Vos anciennes données resteront à leur emplacement d'origine et pourront être récupérées manuellement plus tard.",
    "sourcesTitle": "Sources de récupération",
    "sourcesDescription": "Choisissez la source qui ressemble le plus à vos vraies données.",
    "sourceCount": "{{count}} sources",
    "previewTitle": "Aperçu",
    "previewLoading": "Chargement de l’aperçu...",
    "previewEmpty": "Aucun élément d’aperçu n’est disponible pour cette source.",
    "previewUnavailable": "L’aperçu n’est pas disponible pour cette source.",
    "previewTruncated": "L’aperçu est tronqué. Restaurez la source pour voir l’ensemble des éléments.",
    "sourceType": {
      "current-residual": "Résidus du répertoire actuel",
      "external-user-data": "Ancien répertoire de données",
      "upgrade-backup": "Sauvegarde automatique de mise à niveau",
      "standalone-db-backup": "Sauvegarde de base de données autonome"
    },
    "dataSource": {
      "sqlite": "SQLite",
      "workspace": "Fichiers d’espace de travail",
      "browser-storage": "Stockage du navigateur",
      "skills": "Compétences",
      "legacy-layout": "Ancienne disposition"
    },
    "previewKind": {
      "prompt": "Prompt",
      "folder": "Dossier",
      "skill": "Compétence"
    },
    "skillsOnly": "Contient uniquement des compétences"
  }
}
