{
  "about": {
    "appDescription": "Une application de prise de notes puissante avec des fonctionnalités IA",
    "appName": "Memento",
    "buildDate": "Date de build",
    "description": "Informations sur l'application",
    "features": {
      "description": "Capacités alimentées par l'IA",
      "dragDrop": "Gestion des notes par glisser-déposer",
      "labelSystem": "Système d'étiquettes",
      "memoryEcho": "Perspectives quotidiennes Memory Echo",
      "multipleProviders": "Plusieurs fournisseurs IA (OpenAI, Ollama)",
      "notebookOrganization": "Organisation en carnets",
      "paragraphReformulation": "Reformulation de paragraphes",
      "semanticSearch": "Recherche sémantique avec embeddings",
      "title": "Fonctionnalités",
      "titleSuggestions": "Suggestions de titre alimentées par l'IA"
    },
    "platform": "Plateforme",
    "platformWeb": "Web",
    "support": {
      "description": "Obtenez de l'aide et donnez votre avis",
      "documentation": "Documentation",
      "feedback": "Commentaires",
      "reportIssues": "Signaler des problèmes",
      "title": "Support"
    },
    "technology": {
      "ai": "IA",
      "authentication": "Authentification",
      "backend": "Backend",
      "database": "Base de données",
      "description": "Construit avec des technologies modernes",
      "frontend": "Frontend",
      "testing": "Tests",
      "title": "Stack technologique",
      "ui": "UI"
    },
    "title": "À propos",
    "version": "Version"
  },
  "admin": {
    "ai": {
      "apiKey": "Clé API",
      "baseUrl": "URL de base",
      "commonEmbeddingModels": "Modèles d'embeddings courants pour API compatibles OpenAI",
      "commonModelsDescription": "Modèles courants pour API compatibles OpenAI",
      "description": "Configurez les fournisseurs IA pour l'étiquetage auto et la recherche sémantique. Utilisez différents fournisseurs pour des performances optimales.",
      "embeddingsDescription": "Fournisseur IA pour la recherche sémantique. Recommandé : OpenAI (meilleure qualité).",
      "embeddingsProvider": "Fournisseur d'embeddings",
      "chatProvider": "Fournisseur de chat",
      "chatDescription": "Fournisseur IA pour l'assistant chat. Utilise le fournisseur d'étiquettes si non configuré.",
      "model": "Modèle",
      "modelRecommendations": "gpt-4o-mini = Meilleur rapport qualité/prix • gpt-4o = Meilleure qualité",
      "openAIKeyDescription": "Votre clé API OpenAI depuis platform.openai.com",
      "openTestPanel": "Ouvrir le panneau de test IA",
      "provider": "Fournisseur",
      "providerEmbeddingRequired": "AI_PROVIDER_EMBEDDING est requis",
      "providerTagsRequired": "AI_PROVIDER_TAGS est requis",
      "providerOllamaOption": "🦙 Ollama (Local & Gratuit)",
      "providerOpenAIOption": "🤖 OpenAI (GPT-5, GPT-4)",
      "providerCustomOption": "🔧 Custom Compatible OpenAI",
      "bestValue": "Meilleur rapport qualité/prix",
      "bestQuality": "Meilleure qualité",
      "saved": "(Enregistré)",
      "saveSettings": "Enregistrer les paramètres IA",
      "saving": "Enregistrement...",
      "selectEmbeddingModel": "Sélectionnez un modèle d'embedding installé localement",
      "selectOllamaModel": "Sélectionnez un modèle Ollama installé localement",
      "tagsGenerationDescription": "Fournisseur IA pour les suggestions d'étiquettes. Recommandé : Ollama (gratuit, local).",
      "tagsGenerationProvider": "Fournisseur de génération d'étiquettes",
      "title": "Configuration IA",
      "updateFailed": "Échec de la mise à jour des paramètres IA",
      "updateSuccess": "Paramètres IA mis à jour avec succès",
      "fetchModelsFailed": "Failed to fetch models",
      "refreshModels": "Refresh Models",
      "configured": "Configured",
      "fetchingModels": "Fetching models...",
      "clickToLoadModels": "Click ↺ to load models",
      "searchModel": "Search model...",
      "noModels": "No models. Click ↺",
      "modelsAvailable": "{count} model(s) available",
      "enterUrlToLoad": "Enter URL and click ↺ to load models",
      "currentProvider": "(Current: {provider})",
      "pageTitle": "AI Management",
      "pageDescription": "Monitor and configure AI features",
      "configure": "Configure",
      "features": "AI Features",
      "providerStatus": "AI Provider Status",
      "recentRequests": "Recent AI Requests",
      "comingSoon": "Coming soon",
      "activeFeatures": "Active features",
      "successRate": "Success rate",
      "avgResponseTime": "Avg response time",
      "configuredProviders": "Configured providers",
      "settingUpdated": "Setting updated",
      "updateFailedShort": "Update failed",
      "titleSuggestions": "Title suggestions",
      "titleSuggestionsDesc": "Suggests titles for notes after 50+ words",
      "aiAssistant": "AI Assistant",
      "aiAssistantDesc": "Enable AI chat and text improvement tools",
      "memoryEchoFeature": "I noticed something...",
      "memoryEchoFeatureDesc": "Daily analysis of connections between your notes",
      "languageDetection": "Language detection",
      "languageDetectionDesc": "Automatically detects the language of each note",
      "autoLabeling": "Auto labeling",
      "autoLabelingDesc": "Suggests and applies labels automatically"
    },
    "aiTest": {
      "description": "Testez vos fournisseurs IA pour la génération d'étiquettes et les embeddings de recherche sémantique",
      "embeddingDimensions": "Dimensions de l'embedding :",
      "embeddingsTestDescription": "Testez le fournisseur IA responsable des embeddings de recherche sémantique",
      "embeddingsTestTitle": "Test d'embeddings",
      "error": "Erreur :",
      "first5Values": "5 premières valeurs :",
      "generatedTags": "Étiquettes générées :",
      "howItWorksTitle": "Fonctionnement des tests",
      "tagsGenerationTest": "🏷️ Test de génération d'étiquettes :",
      "tagsStep1": "Envoie une note exemple au fournisseur IA",
      "tagsStep2": "Demande 3-5 étiquettes pertinentes basées sur le contenu",
      "tagsStep3": "Affiche les étiquettes générées avec les scores de confiance",
      "tagsStep4": "Mesure le temps de réponse",
      "embeddingsTestLabel": "🔍 Test d'embeddings :",
      "embeddingsStep1": "Envoie un texte exemple au fournisseur d'embeddings",
      "embeddingsStep2": "Génère une représentation vectorielle (liste de nombres)",
      "embeddingsStep3": "Affiche les dimensions de l'embedding et des exemples de valeurs",
      "embeddingsStep4": "Vérifie que le vecteur est valide et correctement formaté",
      "tipContent": "Vous pouvez utiliser différents fournisseurs pour les étiquettes et les embeddings ! Par exemple, utilisez Ollama (gratuit) pour les étiquettes et OpenAI (meilleure qualité) pour les embeddings afin d'optimiser les coûts et les performances.",
      "model": "Modèle :",
      "provider": "Fournisseur :",
      "responseTime": "Temps de réponse : {time}ms",
      "runTest": "Lancer le test",
      "tagsTestDescription": "Testez le fournisseur IA responsable des suggestions d'étiquettes automatiques",
      "tagsTestTitle": "Test de génération d'étiquettes",
      "testError": "Erreur de test : {error}",
      "testFailed": "Test échoué",
      "testPassed": "Test réussi",
      "testSuccessToast": "Test {type} réussi !",
      "testFailedToast": "Test {type} échoué",
      "testingType": "Test de {type} en cours...",
      "technicalDetails": "Détails techniques",
      "testing": "Test en cours...",
      "tipDescription": "Utilisez le panneau de test IA pour diagnostiquer les problèmes de configuration avant de tester.",
      "tipTitle": "Astuce :",
      "title": "Test des fournisseurs IA",
      "vectorDimensions": "dimensions vectorielles"
    },
    "sidebar": {
      "dashboard": "Tableau de bord",
      "users": "Utilisateurs",
      "aiManagement": "Gestion IA",
      "chat": "Chat IA",
      "lab": "Le Lab (Idées)",
      "agents": "Agents",
      "settings": "Paramètres"
    },
    "metrics": {
      "vsLastPeriod": "vs période précédente"
    },
    "tools": {
      "title": "Outils Agents",
      "description": "Configurer les outils externes pour le tool-use des agents : recherche web, scraping et accès API.",
      "searchProvider": "Fournisseur de recherche web",
      "searxng": "SearXNG (Auto-hébergé)",
      "brave": "Brave Search API",
      "both": "Les deux (SearXNG principal, Brave secours)",
      "searxngUrl": "URL SearXNG",
      "braveKey": "Clé API Brave Search",
      "jinaKey": "Clé API Jina Reader",
      "jinaKeyOptional": "Optionnel — fonctionne sans mais avec des limites",
      "jinaKeyDescription": "Utilisée pour le scraping web. Fonctionne sans clé mais avec des limites de débit.",
      "saveSettings": "Enregistrer les paramètres outils",
      "updateSuccess": "Paramètres outils mis à jour avec succès",
      "updateFailed": "Échec de la mise à jour des paramètres outils",
      "testing": "Testing...",
      "testSearch": "Test web search"
    },
    "security": {
      "allowPublicRegistration": "Autoriser l'inscription publique",
      "allowPublicRegistrationDescription": "Si désactivé, les nouveaux utilisateurs ne peuvent être ajoutés que par un administrateur via la page de gestion des utilisateurs.",
      "description": "Gérez le contrôle d'accès et les politiques d'inscription.",
      "title": "Paramètres de sécurité",
      "updateFailed": "Échec de la mise à jour des paramètres de sécurité",
      "updateSuccess": "Paramètres de sécurité mis à jour"
    },
    "settings": "Paramètres administrateur",
    "resend": {
      "title": "Resend (Recommandé)",
      "description": "Envoyez des emails via l'API Resend. Prioritaire sur SMTP si configuré.",
      "apiKey": "Clé API Resend",
      "apiKeyHint": "Obtenez votre clé API sur resend.com. Utilisée pour les notifications d'agents et les réinitialisations de mot de passe.",
      "saveSettings": "Enregistrer les paramètres Resend",
      "updateSuccess": "Paramètres Resend mis à jour",
      "updateFailed": "Échec de la mise à jour des paramètres Resend",
      "configured": "Resend est configuré et actif"
    },
    "email": {
      "title": "Configuration Email",
      "description": "Configurez l'envoi d'emails pour les notifications d'agents et les réinitialisations de mot de passe.",
      "provider": "Fournisseur Email",
      "saveSettings": "Enregistrer les paramètres",
      "status": "État des services",
      "keySet": "clé configurée",
      "activeAuto": "Mode auto : Resend sera utilisé en priorité, SMTP en secours.",
      "activeSmtp": "Mode auto : SMTP sera utilisé (Resend non configuré).",
      "noneConfigured": "Aucun service email configuré. Configurez Resend ou SMTP.",
      "activeProvider": "Fournisseur actif",
      "testOk": "test réussi",
      "testFail": "test échoué"
    },
    "smtp": {
      "description": "Configurez le serveur email pour les réinitialisations de mot de passe. Utilisé si Resend n'est pas configuré.",
      "forceSSL": "Forcer SSL/TLS (généralement pour le port 465)",
      "fromEmail": "Email d'expédition",
      "host": "Hôte",
      "ignoreCertErrors": "Ignorer les erreurs de certificat (Auto-hébergé/Dev uniquement)",
      "password": "Mot de passe",
      "port": "Port",
      "saveSettings": "Enregistrer les paramètres SMTP",
      "sending": "Envoi en cours...",
      "testEmail": "Email de test",
      "testFailed": "Échec : {error}",
      "testSuccess": "Email de test envoyé avec succès !",
      "title": "Configuration SMTP",
      "updateFailed": "Échec de la mise à jour des paramètres SMTP",
      "updateSuccess": "Paramètres SMTP mis à jour",
      "username": "Nom d'utilisateur"
    },
    "title": "Tableau de bord Admin",
    "userManagement": "Gestion des utilisateurs",
    "users": {
      "addUser": "Ajouter un utilisateur",
      "confirmDelete": "Êtes-vous sûr ? Cette action est irréversible.",
      "createFailed": "Échec de la création de l'utilisateur",
      "createSuccess": "Utilisateur créé avec succès",
      "createUser": "Créer un utilisateur",
      "createUserDescription": "Ajouter un nouvel utilisateur au système.",
      "deleteFailed": "Échec de la suppression",
      "deleteSuccess": "Utilisateur supprimé",
      "demote": "Rétrograder en utilisateur",
      "email": "Email",
      "name": "Nom",
      "password": "Mot de passe",
      "promote": "Promouvoir en admin",
      "role": "Rôle",
      "roleUpdateFailed": "Échec de la mise à jour du rôle",
      "roleUpdateSuccess": "Rôle de l'utilisateur mis à jour à {role}",
      "roles": {
        "admin": "Admin",
        "user": "Utilisateur"
      },
      "table": {
        "actions": "Actions",
        "createdAt": "Créé le",
        "email": "Email",
        "name": "Nom",
        "role": "Rôle"
      },
      "title": "Users",
      "description": "Manage application users and permissions"
    },
    "settingsDescription": "Configure application-wide settings",
    "dashboard": {
      "title": "Dashboard",
      "description": "Overview of your application metrics",
      "recentActivity": "Recent Activity",
      "recentActivityPlaceholder": "Recent activity will be displayed here."
    },
    "error": {
      "title": "An error occurred in the admin panel",
      "description": "This page failed to render. You can retry without reloading.",
      "retry": "Retry"
    }
  },
  "ai": {
    "analyzing": "Analyse IA en cours...",
    "assistant": "Assistant IA",
    "autoLabels": {
      "analyzing": "Analyse de vos notes pour les suggestions d'étiquettes...",
      "create": "Créer",
      "createNewLabel": "Créer cette nouvelle étiquette et l'ajouter",
      "created": "{count} étiquettes créées avec succès",
      "creating": "Création des étiquettes...",
      "description": "J'ai détecté des thèmes récurrents dans \"{notebookName}\" ({totalNotes} notes). Créer des étiquettes pour eux ?",
      "error": "Échec de la récupération des suggestions d'étiquettes",
      "new": "(nouveau)",
      "noLabelsSelected": "Aucune étiquette sélectionnée",
      "note": "note",
      "notes": "notes",
      "title": "Suggestions d'étiquettes",
      "typeContent": "Tapez du contenu pour obtenir des suggestions d'étiquettes...",
      "typeForSuggestions": "Tapez du contenu pour obtenir des suggestions d'étiquettes...",
      "notesCount": "{count} notes"
    },
    "batchOrganization": {
      "analyzing": "Analyse de vos notes...",
      "apply": "Appliquer",
      "applyFailed": "Échec de l'application du plan d'organisation",
      "applying": "Application...",
      "description": "L'IA analysera vos notes et suggérera de les organiser dans des carnets.",
      "error": "Échec de la création du plan d'organisation",
      "noNotebooks": "Aucun carnet disponible. Créez d'abord des carnets pour organiser vos notes.",
      "noNotesSelected": "Aucune note sélectionnée",
      "noSuggestions": "L'IA n'a pas trouvé de bonne manière d'organiser ces notes.",
      "selectAllIn": "Sélectionner toutes les notes dans {notebook}",
      "selectNote": "Sélectionner la note : {title}",
      "success": "{count} notes déplacées avec succès",
      "title": "Organiser avec l'IA"
    },
    "clarify": "Clarifier",
    "clickToAddTag": "Cliquer pour ajouter cette étiquette",
    "generateTitles": "Générer des titres",
    "generateTitlesTooltip": "Générer des titres avec l'IA",
    "generating": "Génération...",
    "generatingTitles": "Génération de titres...",
    "ignoreSuggestion": "Ignorer cette suggestion",
    "improveStyle": "Améliorer le style",
    "languageDetected": "Langue détectée",
    "notebookSummary": {
      "regenerate": "Régénérer le résumé",
      "regenerating": "Régénération du résumé...",
      "exportPDF": "Exporter en PDF"
    },
    "original": "Original",
    "poweredByAI": "Propulsé par l'IA",
    "processing": "Traitement en cours...",
    "reformulateText": "Reformuler le texte",
    "reformulated": "Reformulé",
    "reformulating": "Reformulation...",
    "reformulationApplied": "Texte reformulé appliqué !",
    "reformulationComparison": "Comparaison de reformulation",
    "reformulationError": "Erreur lors de la reformulation",
    "reformulationFailed": "Échec de la reformulation du texte",
    "reformulationMaxWords": "Le texte doit avoir au maximum 500 mots",
    "reformulationMinWords": "Le texte doit avoir au moins 10 mots (actuel : {count} mots)",
    "reformulationNoText": "Veuillez sélectionner du texte ou ajouter du contenu",
    "reformulationSelectionTooShort": "Sélection trop courte, utilisation du contenu complet",
    "shorten": "Raccourcir",
    "tagAdded": "Étiquette \"{tag}\" ajoutée",
    "titleApplied": "Titre appliqué !",
    "titleGenerateWithAI": "Générer des titres avec l'IA",
    "titleGenerating": "Génération...",
    "titleGenerationError": "Erreur lors de la génération des titres",
    "titleGenerationFailed": "Échec de la génération des titres",
    "titleGenerationMinWords": "Le contenu doit avoir au moins 10 mots pour générer des titres (actuel : {count} mots)",
    "titlesGenerated": "💡 {count} titres générés !",
    "transformError": "Erreur lors de la transformation",
    "transformMarkdown": "Transformer en Markdown",
    "transformSuccess": "Texte transformé en Markdown avec succès !",
    "transforming": "Transformation...",
    "clarifyDesc": "Rendre le propos plus clair et compréhensible",
    "shortenDesc": "Résumer le texte et aller à l'essentiel",
    "improve": "Améliorer la rédaction",
    "improveDesc": "Corriger les fautes et le style",
    "toMarkdown": "Formater en Markdown",
    "toMarkdownDesc": "Ajouter des titres, des puces et structurer le texte",
    "translate": "Traduire",
    "translateDesc": "Changer la langue du texte",
    "translateBack": "Retour",
    "translationApplied": "Traduction appliquée",
    "translationFailed": "Traduction échouée",
    "undo": "Annuler IA",
    "undoAI": "Annuler la transformation IA",
    "undoApplied": "Texte original restauré",
    "minWordsError": "Note must contain at least 5 words to use AI actions.",
    "genericError": "AI error",
    "actionError": "Error during AI action",
    "appliedToNote": "Applied to note",
    "applyToNote": "Apply to note",
    "undoLastAction": "Undo last AI action",
    "selectContext": "Select context...",
    "selectNotebook": "Select notebook",
    "chatPlaceholder": "Ask AI to edit, summarize, or draft...",
    "assistantTitle": "AI Assistant",
    "currentNote": "Current note",
    "shrinkPanel": "Shrink panel",
    "expandPanel": "Expand panel",
    "chatTab": "Chat",
    "noteActions": "Note Actions",
    "askToStart": "Ask the Assistant something to get started.",
    "contextLabel": "Context",
    "thisNote": "This note",
    "allMyNotes": "All my notes",
    "notebookGeneric": "Notebook",
    "writingTone": "Writing Tone",
    "askAboutThisNote": "Ask AI something about this note...",
    "askAboutYourNotes": "Ask AI something about your notes...",
    "webSearchLabel": "Web Search",
    "newLineHint": "Shift+Enter = new line",
    "resultLabel": "Result",
    "discardAction": "Discard",
    "transformationsDesc": "Transformations — applied directly to the note",
    "writeMinWordsAction": "Write at least 5 words to activate AI actions.",
    "processingAction": "Processing...",
    "action": {
      "clarify": "Clarify",
      "shorten": "Shorten",
      "improve": "Improve",
      "toMarkdown": "To Markdown"
    },
    "openAssistant": "Open AI Assistant",
    "poweredByMomento": "Powered by Momento AI",
    "welcomeMsg": "Hello! I'm your AI assistant. How can I help you with your notes today? I can help refine tone, expand messaging, or summarize content.",
    "summaryLast5": "Summary of your last 5 notes",
    "analyzingProgress": "Analyzing...",
    "generateInsightsBtn": "Generate Insights",
    "newDiscussion": "New discussion",
    "noRecentConversations": "No recent conversations.",
    "discussionContextLabel": "Discussion Context",
    "webSearchNotConfigured": "Web Search (Not configured)",
    "historyTab": "History",
    "insightsTab": "Insights",
    "aiCopilot": "AI Copilot",
    "suggestTitle": "AI title suggestion"
  },
  "aiSettings": {
    "description": "Configurez vos fonctionnalités IA et préférences",
    "error": "Échec de la mise à jour",
    "features": "Fonctionnalités IA",
    "frequency": "Fréquence",
    "frequencyDaily": "Quotidienne",
    "frequencyWeekly": "Hebdomadaire",
    "provider": "Fournisseur IA",
    "providerAuto": "Auto (Recommandé)",
    "providerOllama": "Ollama (Local)",
    "providerOpenAI": "OpenAI (Cloud)",
    "saved": "Paramètre mis à jour",
    "saving": "Enregistrement...",
    "title": "Paramètres IA",
    "titleSuggestionsDesc": "Suggérer des titres pour les notes sans titre après 50+ mots",
    "paragraphRefactorDesc": "Options d'amélioration de texte propulsées par l'IA",
    "frequencyDesc": "Fréquence d'analyse des connexions entre notes",
    "providerDesc": "Choisissez votre fournisseur IA préféré",
    "providerAutoDesc": "Ollama si disponible, sinon OpenAI",
    "providerOllamaDesc": "100% privé, fonctionne localement sur votre machine",
    "providerOpenAIDesc": "Plus précis, nécessite une clé API"
  },
  "appearance": {
    "description": "Personnaliser l'apparence de l'application",
    "notesViewDescription": "Choisissez comment afficher les notes sur l'accueil et dans les carnets.",
    "notesViewLabel": "Affichage des notes",
    "notesViewTabs": "Onglets (type OneNote)",
    "notesViewMasonry": "Cartes (grille)",
    "title": "Apparence"
  },
  "auth": {
    "backToLogin": "Retour à la connexion",
    "checkYourEmail": "Vérifiez votre email",
    "createAccount": "Créez votre compte",
    "email": "Email",
    "emailPlaceholder": "Entrez votre adresse email",
    "forgotPassword": "Mot de passe oublié ?",
    "forgotPasswordDescription": "Entrez votre adresse email et nous vous enverrons un lien pour réinitialiser votre mot de passe.",
    "forgotPasswordTitle": "Mot de passe oublié",
    "hasAccount": "Déjà un compte ?",
    "name": "Nom",
    "namePlaceholder": "Entrez votre nom",
    "noAccount": "Pas de compte ?",
    "orContinueWith": "Ou continuer avec",
    "password": "Mot de passe",
    "passwordMinChars": "Entrez votre mot de passe (min 6 caractères)",
    "passwordPlaceholder": "Entrez votre mot de passe",
    "rememberMe": "Se souvenir de moi",
    "resetEmailSent": "Nous avons envoyé un lien de réinitialisation à votre adresse email si elle existe dans notre système.",
    "resetPassword": "Réinitialiser le mot de passe",
    "resetPasswordInstructions": "Entrez votre email pour réinitialiser votre mot de passe",
    "returnToLogin": "Retour à la connexion",
    "sendResetLink": "Envoyer le lien de réinitialisation",
    "sending": "Envoi en cours...",
    "signIn": "Connexion",
    "signInToAccount": "Connectez-vous à votre compte",
    "signOut": "Déconnexion",
    "signUp": "S'inscrire",
    "confirmPassword": "Confirm Password",
    "confirmPasswordPlaceholder": "Confirm your password"
  },
  "batch": {
    "organize": "Organiser",
    "organizeWithAI": "Organiser avec l'IA"
  },
  "collaboration": {
    "accessRevoked": "L'accès a été révoqué",
    "addCollaborator": "Ajouter un collaborateur",
    "addCollaboratorDescription": "Ajoutez des personnes pour collaborer à cette note par leur adresse email.",
    "alreadyInList": "Cet email est déjà dans la liste",
    "canEdit": "Peut modifier",
    "canView": "Peut voir",
    "done": "Terminé",
    "emailAddress": "Adresse email",
    "emailPlaceholder": "Entrez l'adresse email",
    "enterEmailAddress": "Entrez l'adresse email",
    "errorLoading": "Erreur lors du chargement des collaborateurs",
    "failedToAdd": "Échec de l'ajout du collaborateur",
    "failedToRemove": "Échec de la suppression du collaborateur",
    "invite": "Inviter",
    "noCollaborators": "Aucun collaborateur encore. Ajoutez quelqu'un ci-dessus !",
    "noCollaboratorsViewer": "Aucun collaborateur encore.",
    "nowHasAccess": "{name} a maintenant accès à cette note",
    "owner": "Propriétaire",
    "pending": "En attente",
    "pendingInvite": "Invitation en attente",
    "peopleWithAccess": "Personnes ayant accès",
    "remove": "Supprimer",
    "removeCollaborator": "Supprimer le collaborateur",
    "shareNote": "Partager la note",
    "shareWithCollaborators": "Partager avec les collaborateurs",
    "unnamedUser": "Utilisateur sans nom",
    "viewerDescription": "Vous avez accès à cette note. Seul le propriétaire peut gérer les collaborateurs.",
    "willBeAdded": "{email} sera ajouté comme collaborateur lorsque la note sera créée"
  },
  "colors": {
    "blue": "Bleu",
    "default": "Défaut",
    "gray": "Gris",
    "green": "Vert",
    "orange": "Orange",
    "pink": "Rose",
    "purple": "Violet",
    "red": "Rouge",
    "yellow": "Jaune"
  },
  "common": {
    "add": "Ajouter",
    "cancel": "Annuler",
    "close": "Fermer",
    "confirm": "Confirmer",
    "delete": "Supprimer",
    "edit": "Modifier",
    "error": "Erreur",
    "loading": "Chargement...",
    "noResults": "Aucun résultat",
    "notAvailable": "N/A",
    "optional": "Optionnel",
    "remove": "Supprimer",
    "required": "Requis",
    "save": "Enregistrer",
    "search": "Rechercher",
    "success": "Succès",
    "unknown": "Inconnu"
  },
  "connection": {
    "clickToView": "Cliquer pour voir la note",
    "helpful": "Utile",
    "isHelpful": "Cette connexion est-elle utile ?",
    "memoryEchoDiscovery": "Découverte Memory Echo",
    "notHelpful": "Pas utile",
    "similarityInfo": "Ces notes sont connectées par {similarity}% de similarité"
  },
  "dataManagement": {
    "cleanup": {
      "button": "Nettoyer",
      "description": "Supprimer les étiquettes et connexions qui référencent des notes supprimées.",
      "failed": "Erreur lors du nettoyage",
      "title": "Nettoyer les données orphelines"
    },
    "cleanupComplete": "Nettoyage terminé : {created} créés, {deleted} supprimés",
    "cleanupError": "Erreur lors du nettoyage",
    "dangerZone": "Zone de danger",
    "dangerZoneDescription": "Supprimer définitivement vos données",
    "delete": {
      "button": "Supprimer toutes les notes",
      "confirm": "Êtes-vous sûr ? Cette action supprimera définitivement toutes vos notes.",
      "description": "Supprimer définitivement toutes vos notes. Cette action est irréversible.",
      "failed": "Échec de la suppression des notes",
      "success": "Toutes les notes ont été supprimées",
      "title": "Supprimer toutes les notes"
    },
    "deleting": "Suppression...",
    "export": {
      "button": "Exporter les notes",
      "description": "Télécharger toutes vos notes au format JSON. Inclut tout le contenu, les étiquettes et les métadonnées.",
      "failed": "Échec de l'exportation des notes",
      "success": "Notes exportées avec succès",
      "title": "Exporter toutes les notes"
    },
    "exporting": "Exportation...",
    "import": {
      "button": "Importer des notes",
      "description": "Téléchargez un fichier JSON pour importer des notes. Les notes seront ajoutées aux existantes, pas remplacées.",
      "failed": "Échec de l'importation des notes",
      "success": "{count} notes importées",
      "title": "Importer des notes"
    },
    "importing": "Importation...",
    "indexing": {
      "button": "Reconstruire l'index",
      "description": "Régénérer les embeddings pour toutes les notes afin d'améliorer la recherche sémantique.",
      "failed": "Erreur lors de l'indexation",
      "success": "Indexation terminée : {count} notes traitées",
      "title": "Reconstruire l'index de recherche"
    },
    "indexingComplete": "Indexation terminée : {count} notes traitées",
    "indexingError": "Erreur lors de l'indexation",
    "title": "Gestion des données",
    "toolsDescription": "Outils pour maintenir la santé de votre base de données"
  },
  "demoMode": {
    "activated": "Mode Démo activé ! Memory Echo fonctionnera maintenant instantanément.",
    "createNotesTip": "Créez 2+ notes similaires et voyez Memory Echo en action !",
    "deactivated": "Mode Démo désactivé. Paramètres normaux restaurés.",
    "delayBetweenNotes": "Délai de 0 jour entre les notes (normalement 7 jours)",
    "description": "Accélère Memory Echo pour les tests. Les connexions apparaissent instantanément.",
    "parametersActive": "Paramètres démo actifs :",
    "similarityThreshold": "Seuil de similarité de 50% (normalement 75%)",
    "title": "Mode Démo",
    "toggleFailed": "Échec du basculement du mode démo",
    "unlimitedInsights": "Perspectives illimitées (pas de limites de fréquence)"
  },
  "diagnostics": {
    "apiStatus": "Statut de l'API",
    "checking": "Vérification...",
    "configuredProvider": "Fournisseur configuré",
    "description": "Vérifiez l'état de la connexion de votre fournisseur IA",
    "errorStatus": "Erreur",
    "operational": "Opérationnel",
    "testDetails": "Détails du test :",
    "tip1": "Assurez-vous qu'Ollama fonctionne (ollama serve)",
    "tip2": "Vérifiez que le modèle est installé (ollama pull llama3)",
    "tip3": "Vérifiez votre clé API pour OpenAI",
    "tip4": "Vérifiez la connectivité réseau",
    "title": "Diagnostics",
    "troubleshootingTitle": "Conseils de dépannage :"
  },
  "favorites": {
    "noFavorites": "Aucune note épinglée encore",
    "pinToFavorite": "Épinglez une note pour l'ajouter aux favoris",
    "title": "Favoris",
    "toggleSection": "Basculer la section des notes épinglées"
  },
  "footer": {
    "openSource": "Clone Open Source",
    "privacy": "Confidentialité",
    "terms": "Conditions"
  },
  "general": {
    "add": "Ajouter",
    "apply": "Appliquer",
    "back": "Retour",
    "cancel": "Annuler",
    "clean": "Nettoyer",
    "clear": "Effacer",
    "close": "Fermer",
    "confirm": "Confirmer",
    "edit": "Modifier",
    "error": "Une erreur est survenue",
    "indexAll": "Tout indexer",
    "loading": "Chargement...",
    "next": "Suivant",
    "operationFailed": "Opération échouée",
    "operationSuccess": "Opération réussie",
    "preview": "Aperçu",
    "previous": "Précédent",
    "reset": "Réinitialiser",
    "save": "Enregistrer",
    "select": "Sélectionner",
    "submit": "Soumettre",
    "testConnection": "Tester la connexion",
    "tryAgain": "Veuillez réessayer"
  },
  "generalSettings": {
    "description": "Paramètres généraux de l'application",
    "title": "Paramètres généraux"
  },
  "labels": {
    "addLabel": "Ajouter une étiquette",
    "allLabels": "Toutes les étiquettes",
    "changeColor": "Changer la couleur",
    "changeColorTooltip": "Changer la couleur",
    "clearAll": "Tout effacer",
    "confirmDelete": "Êtes-vous sûr de vouloir supprimer cette étiquette ?",
    "count": "{count} étiquettes",
    "createLabel": "Créer une étiquette",
    "delete": "Supprimer",
    "deleteTooltip": "Supprimer l'étiquette",
    "editLabels": "Modifier les étiquettes",
    "editLabelsDescription": "Créer, modifier les couleurs ou supprimer des étiquettes.",
    "filter": "Filtrer par étiquette",
    "filterByLabel": "Filtrer par étiquette",
    "labelColor": "Couleur de l'étiquette",
    "labelName": "Nom de l'étiquette",
    "labelRemoved": "Étiquette \"{label}\" supprimée",
    "loading": "Chargement...",
    "manage": "Gérer les étiquettes",
    "manageLabels": "Gérer les étiquettes",
    "manageLabelsDescription": "Ajouter ou supprimer des étiquettes pour cette note. Cliquez sur une étiquette pour changer sa couleur.",
    "manageTooltip": "Gérer les étiquettes",
    "namePlaceholder": "Entrez le nom de l'étiquette",
    "newLabelPlaceholder": "Créer une nouvelle étiquette",
    "noLabels": "Aucune étiquette",
    "noLabelsFound": "Aucune étiquette trouvée.",
    "notebookRequired": "⚠️ Les étiquettes sont uniquement disponibles dans les carnets. Déplacez cette note dans un carnet d'abord.",
    "selectedLabels": "Étiquettes sélectionnées",
    "showLess": "Voir moins",
    "showMore": "Voir plus",
    "tagAdded": "Étiquette \"{tag}\" ajoutée",
    "title": "Étiquettes",
    "confirmDeleteShort": "Confirmer ?"
  },
  "memoryEcho": {
    "clickToView": "Cliquer pour voir la note →",
    "comparison": {
      "clickToView": "Cliquer pour voir la note",
      "helpful": "Utile",
      "helpfulQuestion": "Cette comparaison est-elle utile ?",
      "highSimilarityInsight": "Ces notes traitent du même sujet avec un fort degré de similarité. Elles pourraient être fusionnées ou consolidées.",
      "notHelpful": "Pas utile",
      "similarityInfo": "Ces notes sont connectées par {similarity}% de similarité",
      "title": "💡 Comparaison de notes",
      "untitled": "Sans titre"
    },
    "connection": "connexion",
    "connections": "Connexions",
    "connectionsBadge": "{count} connexion{plural}",
    "match": "{percentage}% correspondance",
    "title": "💡 J'ai remarqué quelque chose...",
    "description": "Connexions proactives entre vos notes",
    "dailyInsight": "Aperçu quotidien de vos notes",
    "viewConnection": "Voir la connexion",
    "helpful": "Utile",
    "notHelpful": "Pas utile",
    "dismiss": "Ignorer pour l'instant",
    "insightReady": "Votre aperçu est prêt !",
    "overlay": {
      "title": "Notes connectées",
      "loading": "Chargement...",
      "error": "Échec du chargement des connexions",
      "noConnections": "Aucune connexion trouvée",
      "viewAll": "Tout voir côte à côte",
      "searchPlaceholder": "Rechercher des connexions...",
      "sortBy": "Trier par :",
      "sortRecent": "Récent",
      "sortSimilarity": "Similarité",
      "sortOldest": "Plus ancien"
    },
    "thanksFeedback": "Merci pour votre retour !",
    "thanksFeedbackImproving": "Merci ! Nous l'utiliserons pour nous améliorer.",
    "fused": "Fusionné",
    "editorSection": {
      "title": "⚡ Notes connectées ({count})",
      "loading": "Chargement...",
      "view": "Voir",
      "compare": "Comparer",
      "merge": "Fusionner",
      "compareAll": "Tout comparer",
      "mergeAll": "Tout fusionner",
      "close": "Fermer"
    },
    "fusion": {
      "title": "🔗 Fusion intelligente",
      "mergeNotes": "Fusionner {count} note(s)",
      "notesToMerge": "📝 Notes à fusionner",
      "optionalPrompt": "💬 Prompt de fusion (optionnel)",
      "promptPlaceholder": "Instructions optionnelles pour l'IA (ex. : 'Garder le style formel de la note 1')...",
      "generateFusion": "Générer la fusion",
      "generating": "Génération...",
      "previewTitle": "📝 Aperçu de la note fusionnée",
      "edit": "Modifier",
      "modify": "Modifier",
      "finishEditing": "Terminer l'édition",
      "optionsTitle": "Options de fusion",
      "archiveOriginals": "Archiver les notes originales",
      "keepAllTags": "Conserver toutes les étiquettes",
      "useLatestTitle": "Utiliser la note la plus récente comme titre",
      "createBacklinks": "Créer un lien vers les notes originales",
      "cancel": "Annuler",
      "confirmFusion": "Confirmer la fusion",
      "success": "Notes fusionnées avec succès !",
      "error": "Échec de la fusion des notes",
      "generateError": "Échec de la génération de la fusion",
      "noContentReturned": "Aucun contenu de fusion retourné par l'API",
      "unknownDate": "Date inconnue"
    }
  },
  "notification": {
    "accept": "Accepter",
    "accepted": "Partage accepté",
    "decline": "Refuser",
    "noNotifications": "Aucune notification",
    "shared": "a partagé « {title} »",
    "untitled": "Sans titre",
    "notifications": "Notifications",
    "declined": "Partage refusé",
    "removed": "Note retirée de la liste"
  },
  "nav": {
    "accountSettings": "Paramètres du compte",
    "adminDashboard": "Tableau de bord Admin",
    "aiSettings": "Paramètres IA",
    "archive": "Archives",
    "buyMeACoffee": "Offrez-moi un café",
    "configureAI": "Configurez vos fonctionnalités IA, votre fournisseur et vos préférences",
    "diagnostics": "Diagnostics",
    "donateOnKofi": "Faire un don sur Ko-fi",
    "donationDescription": "Faites un don ponctuel ou devenez supporter mensuel.",
    "donationNote": "Sans frais de plateforme • Paiements instantanés • Sécurisé",
    "favorites": "Favoris",
    "generalNotes": "Notes générales",
    "home": "Accueil",
    "login": "Connexion",
    "logout": "Déconnexion",
    "manageAISettings": "Gérer les paramètres IA",
    "myLibrary": "Ma bibliothèque",
    "notebooks": "CARNETS",
    "notes": "Notes",
    "proPlan": "Pro Plan",
    "profile": "Profil",
    "quickAccess": "Accès rapide",
    "recent": "Récent",
    "reminders": "Rappels",
    "settings": "Paramètres",
    "sponsorDescription": "Devenez sponsor mensuel et obtenez une reconnaissance.",
    "sponsorOnGithub": "Sponsoriser sur GitHub",
    "support": "Support Memento ☕",
    "supportDescription": "Memento est 100% gratuit et open-source. Votre soutien aide à le garder ainsi.",
    "supportDevelopment": "Supporter le développement de Memento ☕",
    "trash": "Corbeille",
    "userManagement": "Gestion des utilisateurs",
    "chat": "Chat IA",
    "lab": "Le Lab",
    "agents": "Agents",
    "workspace": "Espace de travail"
  },
  "notebook": {
    "cancel": "Annuler",
    "create": "Créer un carnet",
    "createDescription": "Commencez une nouvelle collection pour organiser vos notes, idées et projets efficacement.",
    "createNew": "Créer un nouveau carnet",
    "creating": "Création...",
    "delete": "Supprimer le carnet",
    "deleteConfirm": "Supprimer",
    "deleteWarning": "Êtes-vous sûr de vouloir supprimer ce carnet ? Les notes seront déplacées dans les Notes générales.",
    "edit": "Modifier le carnet",
    "editDescription": "Changer le nom, l'icône et la couleur de votre carnet.",
    "generating": "Génération du résumé...",
    "labels": "Étiquettes :",
    "name": "Nom du carnet",
    "namePlaceholder": "ex. Stratégie Marketing Q4",
    "myNotebook": "Mon carnet",
    "saving": "Enregistrement...",
    "noLabels": "Aucune étiquette",
    "selectColor": "Couleur",
    "selectIcon": "Icône",
    "summary": "Résumé du carnet",
    "summaryDescription": "Générer un résumé alimenté par l'IA de toutes les notes de ce carnet.",
    "summaryError": "Erreur lors de la génération du résumé",
    "pdfTitle": "Résumé — {name}",
    "pdfNotesLabel": "Notes :",
    "pdfGeneratedOn": "Généré le :",
    "confidence": "confiance",
    "savingReminder": "Erreur lors de la sauvegarde du rappel",
    "removingReminder": "Erreur lors de la suppression du rappel"
  },
  "notebookSuggestion": {
    "description": "Cette note semble appartenir à ce carnet",
    "dismiss": "Rejeter",
    "dismissIn": "Rejeter (ferme dans {timeLeft}s)",
    "generalNotes": "Notes générales",
    "move": "Déplacer",
    "moveToNotebook": "Déplacer vers un carnet",
    "title": "Déplacer vers {name} ?"
  },
  "notebooks": {
    "allNotebooks": "Tous les carnets",
    "create": "Créer un carnet",
    "createFirst": "Créez votre premier carnet",
    "noNotebooks": "Aucun carnet encore"
  },
  "notes": {
    "add": "Ajouter",
    "addCollaborators": "Ajouter des collaborateurs",
    "addImage": "Ajouter une image",
    "addItem": "Ajouter un élément",
    "addLink": "Ajouter un lien",
    "addListItem": "+ Élément de liste",
    "addNote": "Ajouter une note",
    "adding": "Ajout...",
    "aiAssistant": "Assistant IA",
    "archive": "Archiver",
    "backgroundOptions": "Options d'arrière-plan",
    "changeColor": "Changer la couleur",
    "changeSize": "Changer la taille",
    "clarifyFailed": "Échec de la clarification du texte",
    "close": "Fermer",
    "color": "Couleur",
    "confirmDelete": "Êtes-vous sûr de vouloir supprimer cette note ?",
    "confirmLeaveShare": "Êtes-vous sûr de vouloir quitter cette note partagée ?",
    "contentOrMediaRequired": "Veuillez entrer du contenu ou ajouter un lien/image",
    "copy": "Copier",
    "copyFailed": "Échec de la copie de la note",
    "copySuccess": "Note copiée avec succès !",
    "createFirstNote": "Créez votre première note",
    "date": "Date",
    "delete": "Supprimer",
    "dragToReorder": "Glisser pour réorganiser",
    "duplicate": "Dupliquer",
    "edit": "Éditer",
    "emptyState": "Aucune note encore. Créez votre première note !",
    "emptyStateTabs": "Aucune note dans cette vue. Utilisez « Nouvelle note » dans la barre latérale pour en ajouter une (titres suggérés par l’IA disponibles dans le compositeur).",
    "fileTooLarge": "Fichier trop volumineux : {fileName}. Taille maximale : {maxSize}.",
    "improveFailed": "Échec de l'amélioration du texte",
    "inNotebook": "Dans le carnet",
    "invalidDateTime": "Date ou heure invalide",
    "invalidFileType": "Type de fichier invalide : {fileName}. Seuls JPEG, PNG, GIF et WebP sont autorisés.",
    "itemOrMediaRequired": "Veuillez ajouter au moins un élément ou média",
    "large": "Grande",
    "leaveShare": "Quitter",
    "linkAddFailed": "Échec de l'ajout du lien",
    "linkAdded": "Lien ajouté",
    "linkMetadataFailed": "Impossible de récupérer les métadonnées du lien",
    "listItem": "Élément de liste",
    "makeCopy": "Faire une copie",
    "markdown": "Markdown",
    "markdownMode": "Markdown",
    "markdownOff": "Markdown DÉSACTIVÉ",
    "markdownOn": "Markdown ACTIVÉ",
    "markdownPlaceholder": "Prenez une note... (Markdown supporté)",
    "medium": "Moyenne",
    "more": "Plus d'options",
    "moreOptions": "Plus d'options",
    "moveFailed": "Échec du déplacement de la note. Veuillez réessayer.",
    "newChecklist": "Nouvelle checklist",
    "newNote": "Nouvelle note",
    "noContent": "Pas de contenu",
    "noNotes": "Aucune note",
    "noNotesFound": "Aucune note trouvée",
    "noteCreateFailed": "Échec de la création de la note",
    "noteCreated": "Note créée avec succès",
    "deleted": "Note supprimée",
    "deleteFailed": "Échec de la suppression de la note",
    "others": "Autres",
    "pin": "Épingler",
    "pinned": "Épinglées",
    "pinnedNotes": "Notes épinglées",
    "placeholder": "Prenez une note...",
    "preview": "Aperçu",
    "readOnly": "Lecture seule",
    "recent": "Récent",
    "redo": "Rétablir (Ctrl+Y)",
    "redoShortcut": "Rétablir (Ctrl+Y)",
    "remindMe": "Me rappeler",
    "reminderDateTimeRequired": "Veuillez entrer la date et l'heure",
    "reminderMustBeFuture": "Le rappel doit être dans le futur",
    "reminderPastError": "Le rappel doit être dans le futur",
    "reminderRemoved": "Rappel supprimé",
    "reminderSet": "Rappel défini pour {datetime}",
    "remove": "Supprimer",
    "saving": "Enregistrement...",
    "setReminder": "Définir un rappel",
    "setReminderButton": "Définir un rappel",
    "share": "Partager",
    "shareWithCollaborators": "Partager avec les collaborateurs",
    "sharedBy": "Partagé par",
    "sharedReadOnly": "Cette note est partagée avec vous en lecture seule",
    "shortenFailed": "Échec du raccourcissement du texte",
    "showCollaborators": "Voir les collaborateurs",
    "size": "Taille",
    "small": "Petite",
    "takeNote": "Prenez une note...",
    "takeNoteMarkdown": "Prenez une note... (Markdown supporté)",
    "time": "Heure",
    "title": "Notes",
    "titlePlaceholder": "Titre",
    "transformFailed": "Échec de la transformation du texte",
    "unarchive": "Désarchiver",
    "undo": "Annuler (Ctrl+Z)",
    "undoShortcut": "Annuler (Ctrl+Z)",
    "unpin": "Désépingler",
    "unpinned": "Désépinglées",
    "untitled": "Sans titre",
    "uploadFailed": "Échec du téléchargement",
    "view": "Voir la note",
    "viewCards": "Vue par cartes",
    "viewCardsTooltip": "Grille de cartes et réorganisation par glisser-déposer",
    "viewTabs": "Vue en liste",
    "viewTabsTooltip": "Onglets en haut, contenu dessous — glisser les onglets pour réordonner",
    "viewModeGroup": "Mode d'affichage des notes",
    "reorderTabs": "Réordonner l'onglet",
    "modified": "Modifiée",
    "created": "Créée",
    "loading": "Loading...",
    "exportPDF": "Export PDF",
    "savedStatus": "Saved",
    "dirtyStatus": "Modified",
    "completedLabel": "Completed",
    "notes.emptyNotebook": "Empty notebook",
    "notes.emptyNotebookDesc": "This notebook has no notes. Click + to create one.",
    "notes.noNoteSelected": "No note selected",
    "notes.selectOrCreateNote": "Select a note from the list or create a new one."
  },
  "pagination": {
    "next": "→",
    "pageInfo": "Page {currentPage} / {totalPages}",
    "previous": "←"
  },
  "paragraphRefactor": {
    "casual": "Décontracté",
    "expand": "Développer",
    "formal": "Formel",
    "improve": "Améliorer",
    "shorten": "Raccourcir",
    "title": "Amélioration du texte"
  },
  "profile": {
    "accountSettings": "Paramètres du compte",
    "autoDetect": "Détection automatique",
    "changePassword": "Changer le mot de passe",
    "changePasswordDescription": "Mettez à jour votre mot de passe. Vous aurez besoin de votre mot de passe actuel.",
    "confirmPassword": "Confirmer le mot de passe",
    "currentPassword": "Mot de passe actuel",
    "description": "Mettez à jour vos informations personnelles",
    "displayName": "Nom d'affichage",
    "displaySettings": "Paramètres d'affichage",
    "displaySettingsDescription": "Personnalisez l'apparence et la taille de la police.",
    "email": "Email",
    "fontSize": "Taille de la police",
    "fontSizeDescription": "Ajustez la taille de la police pour une meilleure lisibilité. Cela s'applique à tout le texte de l'interface.",
    "fontSizeExtraLarge": "Très grande",
    "fontSizeLarge": "Grande",
    "fontSizeMedium": "Moyenne",
    "fontSizeSmall": "Petite",
    "fontSizeUpdateFailed": "Échec de la mise à jour de la taille de police",
    "fontSizeUpdateSuccess": "Taille de police mise à jour avec succès",
    "languageDescription": "Cette langue sera utilisée pour les fonctionnalités IA, l'analyse de contenu et le texte de l'interface.",
    "languagePreferences": "Préférences linguistiques",
    "languagePreferencesDescription": "Choisissez votre langue préférée pour les fonctionnalités IA et l'interface.",
    "languageUpdateFailed": "Échec de la mise à jour de la langue",
    "languageUpdateSuccess": "Langue mise à jour avec succès",
    "manageAISettings": "Gérer les paramètres IA",
    "newPassword": "Nouveau mot de passe",
    "passwordChangeFailed": "Échec du changement de mot de passe",
    "passwordChangeSuccess": "Mot de passe changé avec succès",
    "passwordError": "Erreur lors de la mise à jour du mot de passe",
    "passwordUpdated": "Mot de passe mis à jour",
    "preferredLanguage": "Langue préférée",
    "profileError": "Erreur lors de la mise à jour du profil",
    "profileUpdated": "Profil mis à jour",
    "recentNotesUpdateFailed": "Échec de la mise à jour du paramètre des notes récentes",
    "recentNotesUpdateSuccess": "Paramètre des notes récentes mis à jour avec succès",
    "selectFontSize": "Sélectionner la taille de la police",
    "selectLanguage": "Sélectionner une langue",
    "showRecentNotes": "Afficher la section Récent",
    "showRecentNotesDescription": "Afficher les notes récentes (7 derniers jours) sur la page principale",
    "title": "Profil",
    "updateFailed": "Échec de la mise à jour du profil",
    "updatePassword": "Mettre à jour le mot de passe",
    "updateSuccess": "Profil mis à jour"
  },
  "reminder": {
    "cancel": "Annuler",
    "reminderDate": "Date du rappel",
    "reminderTime": "Heure du rappel",
    "removeReminder": "Supprimer le rappel",
    "save": "Définir",
    "setReminder": "Définir un rappel",
    "title": "Rappel"
  },
  "resetPassword": {
    "confirmNewPassword": "Confirmer le nouveau mot de passe",
    "description": "Entrez votre nouveau mot de passe ci-dessous.",
    "invalidLinkDescription": "Ce lien de réinitialisation de mot de passe est invalide ou a expiré.",
    "invalidLinkTitle": "Lien invalide",
    "loading": "Chargement...",
    "newPassword": "Nouveau mot de passe",
    "passwordMismatch": "Les mots de passe ne correspondent pas",
    "requestNewLink": "Demander un nouveau lien",
    "resetPassword": "Réinitialiser le mot de passe",
    "resetting": "Réinitialisation...",
    "success": "Mot de passe réinitialisé avec succès. Vous pouvez maintenant vous connecter.",
    "title": "Réinitialiser le mot de passe"
  },
  "search": {
    "exactMatch": "Correspondance exacte",
    "noResults": "Aucun résultat trouvé",
    "placeholder": "Rechercher",
    "related": "Connexe",
    "resultsFound": "{count} notes trouvées",
    "searchPlaceholder": "Rechercher dans vos notes...",
    "searching": "Recherche en cours...",
    "semanticInProgress": "Recherche IA en cours...",
    "semanticTooltip": "Recherche sémantique IA",
    "disabledAdmin": "Search disabled in admin mode"
  },
  "semanticSearch": {
    "exactMatch": "Correspondance exacte",
    "related": "Connexe",
    "searching": "Recherche en cours..."
  },
  "settings": {
    "about": "À propos",
    "account": "Compte",
    "appearance": "Apparence",
    "cleanTags": "Nettoyer les étiquettes orphelines",
    "cleanTagsDescription": "Supprimer les étiquettes qui ne sont plus utilisées par aucune note",
    "cleanupDone": "{created} étiquette(s) synchronisée(s), {deleted} orpheline(s) supprimée(s)",
    "cleanupNothing": "Aucune action nécessaire — les étiquettes sont déjà alignées avec vos notes",
    "cleanupWithErrors": "certaines opérations ont échoué",
    "cleanupError": "Impossible de nettoyer les étiquettes",
    "indexingComplete": "Indexation terminée : {count} note(s) traitée(s)",
    "indexingError": "Erreur pendant l’indexation",
    "description": "Gérez vos paramètres et préférences",
    "language": "Langue",
    "languageAuto": "Langue définie sur Auto",
    "maintenance": "Maintenance",
    "maintenanceDescription": "Outils pour maintenir la santé de votre base de données",
    "notifications": "Notifications",
    "profile": "Profil",
    "searchNoResults": "Aucun paramètre trouvé",
    "security": "Sécurité",
    "selectLanguage": "Sélectionner une langue",
    "semanticIndexing": "Indexation sémantique",
    "semanticIndexingDescription": "Générer des vecteurs pour toutes les notes afin de permettre la recherche par intention",
    "settingsError": "Erreur lors de la sauvegarde des paramètres",
    "settingsSaved": "Paramètres enregistrés",
    "cardSizeMode": "Taille des notes",
    "cardSizeModeDescription": "Choisir entre des notes de tailles différentes ou uniformes",
    "selectCardSizeMode": "Sélectionner le mode d'affichage",
    "cardSizeVariable": "Tailles variables (small/medium/large)",
    "cardSizeUniform": "Taille uniforme",
    "theme": "Thème",
    "themeDark": "Sombre",
    "themeLight": "Clair",
    "themeSystem": "Système",
    "title": "Paramètres",
    "version": "Version",
    "emailNotifications": "Notifications par email",
    "emailNotificationsDesc": "Recevoir des notifications importantes par email",
    "desktopNotifications": "Notifications bureau",
    "desktopNotificationsDesc": "Recevoir des notifications dans votre navigateur",
    "notificationsDesc": "Gérez vos préférences de notifications"
  },
  "reminders": {
    "title": "Rappels",
    "empty": "Aucun rappel",
    "emptyDescription": "Ajoutez un rappel à une note pour le retrouver ici.",
    "upcoming": "À venir",
    "overdue": "En retard",
    "done": "Terminés",
    "markDone": "Marquer comme terminé",
    "markUndone": "Marquer comme non terminé",
    "todayAt": "Aujourd'hui à {time}",
    "tomorrowAt": "Demain à {time}"
  },
  "sidebar": {
    "archive": "Archives",
    "editLabels": "Modifier les étiquettes",
    "labels": "Étiquettes",
    "newNoteTabs": "Nouvelle note",
    "newNoteTabsHint": "Créer une note dans ce carnet",
    "noLabelsInNotebook": "Aucune étiquette dans ce carnet",
    "notes": "Notes",
    "reminders": "Rappels",
    "trash": "Corbeille"
  },
  "support": {
    "aiApiCosts": "Coûts API IA :",
    "buyMeACoffee": "Offrez-moi un café",
    "contributeCode": "Contribuer au code",
    "description": "Memento est 100% gratuit et open-source. Votre soutien aide à le garder ainsi.",
    "directImpact": "Impact direct",
    "domainSSL": "Domaine et SSL :",
    "donateOnKofi": "Faire un don sur Ko-fi",
    "donationDescription": "Faites un don ponctuel ou devenez supporter mensuel.",
    "githubDescription": "Support récurrent • Reconnaissance publique • Axé développeurs",
    "hostingServers": "Hébergement et serveurs :",
    "howSupportHelps": "Comment votre soutien aide",
    "kofiDescription": "Sans frais de plateforme • Paiements instantanés • Sécurisé",
    "otherWaysTitle": "Autres façons de soutenir",
    "reportBug": "Signaler un bug",
    "shareTwitter": "Partager sur Twitter",
    "sponsorDescription": "Devenez sponsor mensuel et obtenez une reconnaissance.",
    "sponsorOnGithub": "Sponsoriser sur GitHub",
    "sponsorPerks": "Avantages sponsors",
    "starGithub": "Étoiler sur GitHub",
    "title": "Supporter le développement de Memento",
    "totalExpenses": "Total des dépenses :",
    "transparency": "Transparence",
    "transparencyDescription": "Je crois en une transparence totale. Voici comment les dons sont utilisés :"
  },
  "testPages": {
    "titleSuggestions": {
      "analyzing": "Analyse...",
      "contentLabel": "Contenu (besoin de 50+ mots) :",
      "error": "Erreur :",
      "idle": "Inactif",
      "noSuggestions": "Pas encore de suggestions. Tapez 50+ mots et attendez 2 secondes.",
      "placeholder": "Tapez au moins 50 mots ici...",
      "status": "Statut :",
      "suggestions": "Suggestions ({count}) :",
      "title": "Test des suggestions de titre",
      "wordCount": "Nombre de mots :"
    }
  },
  "time": {
    "daysAgo": "il y a {count}j",
    "hoursAgo": "il y a {count}h",
    "justNow": "à l'instant",
    "minutesAgo": "il y a {count}m",
    "today": "Aujourd'hui",
    "tomorrow": "Demain",
    "yesterday": "Hier"
  },
  "titleSuggestions": {
    "available": "Suggestions de titre",
    "dismiss": "Ignorer",
    "generating": "Génération en cours...",
    "selectTitle": "Sélectionnez un titre",
    "title": "Suggestions IA"
  },
  "toast": {
    "feedbackFailed": "Échec de l'envoi du feedback",
    "notesFusionSuccess": "Notes fusionnées avec succès !",
    "openConnectionFailed": "Échec de l'ouverture de la connexion",
    "openingConnection": "Ouverture de la connexion...",
    "operationFailed": "Opération échouée",
    "operationSuccess": "Opération réussie",
    "saveFailed": "Échec de l'enregistrement du paramètre",
    "saved": "Paramètre enregistré",
    "thanksFeedback": "Merci pour votre feedback !",
    "thanksFeedbackImproving": "Merci ! Nous l'utiliserons pour nous améliorer."
  },
  "trash": {
    "title": "Corbeille",
    "empty": "La corbeille est vide",
    "emptyDescription": "Les notes supprimées apparaîtront ici",
    "restore": "Restaurer",
    "deletePermanently": "Supprimer définitivement",
    "noteTrashed": "Note déplacée dans la corbeille",
    "noteRestored": "Note restaurée",
    "notePermanentlyDeleted": "Note supprimée définitivement",
    "emptyTrash": "Vider la corbeille",
    "emptyTrashConfirm": "Supprimer définitivement toutes les notes de la corbeille ?",
    "emptyTrashSuccess": "Corbeille vidée",
    "permanentDelete": "Supprimer définitivement",
    "permanentDeleteConfirm": "Cette note sera supprimée définitivement. Cette action est irréversible."
  },
  "ui": {
    "close": "Fermer",
    "collapse": "Réduire",
    "expand": "Développer",
    "open": "Ouvrir"
  },
  "mcpSettings": {
    "title": "Paramètres MCP",
    "description": "Gérez vos clés API et configurez les outils externes",
    "whatIsMcp": {
      "title": "Qu'est-ce que MCP ?",
      "description": "Le Model Context Protocol (MCP) est un protocole ouvert qui permet aux modèles IA d'interagir de manière sécurisée avec des outils et sources de données externes. Avec MCP, vous pouvez connecter des outils comme Claude Code, Cursor ou N8N à votre instance Memento pour lire, créer et organiser vos notes par programmation.",
      "learnMore": "En savoir plus sur MCP"
    },
    "serverStatus": {
      "title": "État du serveur",
      "running": "En cours",
      "stopped": "Arrêté",
      "mode": "Mode",
      "url": "URL"
    },
    "apiKeys": {
      "title": "Clés API",
      "description": "Les clés API permettent aux outils externes d'accéder à vos notes via MCP. Gardez vos clés secrètes.",
      "generate": "Générer une nouvelle clé",
      "empty": "Aucune clé API. Générez-en une pour commencer.",
      "active": "Active",
      "revoked": "Révoquée",
      "revoke": "Révoquer",
      "delete": "Supprimer",
      "createdAt": "Créée le",
      "lastUsed": "Dernière utilisation",
      "never": "Jamais",
      "confirmRevoke": "Êtes-vous sûr de vouloir révoquer cette clé ? Les outils qui l'utilisent perdront leur accès.",
      "confirmDelete": "Êtes-vous sûr de vouloir supprimer définitivement cette clé ?"
    },
    "createDialog": {
      "title": "Générer une clé API",
      "description": "Créez une nouvelle clé API pour connecter des outils externes à vos notes.",
      "nameLabel": "Nom de la clé",
      "namePlaceholder": "ex. Claude Code, Cursor, N8N",
      "generating": "Génération...",
      "generate": "Générer",
      "successTitle": "Clé API générée",
      "successDescription": "Copiez votre clé API maintenant. Vous ne pourrez plus la voir ensuite.",
      "copy": "Copier",
      "copied": "Copiée !",
      "done": "Terminé"
    },
    "configInstructions": {
      "title": "Instructions de configuration",
      "description": "Utilisez votre clé API pour configurer ces outils.",
      "claudeCode": {
        "title": "Claude Code",
        "description": "Ajoutez ceci à votre fichier de configuration MCP de Claude Code :"
      },
      "cursor": {
        "title": "Cursor",
        "description": "Ajoutez ceci à vos paramètres MCP de Cursor :"
      },
      "n8n": {
        "title": "N8N",
        "description": "Utilisez ces identifiants dans votre nœud MCP N8N :"
      }
    }
  },
  "agents": {
    "title": "Agents",
    "subtitle": "Automatisez vos tâches de veille et de recherche",
    "newAgent": "Nouvel Agent",
    "myAgents": "Mes Agents",
    "searchPlaceholder": "Rechercher un agent...",
    "filterAll": "Tous",
    "newBadge": "Nouveau",
    "noResults": "Aucun agent ne correspond à votre recherche.",
    "noAgents": "Aucun agent",
    "noAgentsDescription": "Créez votre premier agent ou installez un template ci-dessous pour automatiser vos tâches de veille.",
    "types": {
      "scraper": "Veilleur",
      "researcher": "Chercheur",
      "monitor": "Surveillant",
      "custom": "Personnalisé"
    },
    "typeDescriptions": {
      "scraper": "Scrape plusieurs sites et crée un résumé",
      "researcher": "Recherche des informations sur un sujet",
      "monitor": "Surveille un carnet et analyse les notes",
      "custom": "Agent libre avec votre propre prompt"
    },
    "form": {
      "agentType": "Type d'agent",
      "name": "Nom",
      "namePlaceholder": "Ex : Veille IA du mardi",
      "description": "Description (optionnel)",
      "descriptionPlaceholder": "Résumé hebdo des actus IA",
      "urlsLabel": "URLs à scraper",
      "urlsOptional": "(optionnel)",
      "sourceNotebook": "Carnet à surveiller",
      "selectNotebook": "Sélectionner un carnet...",
      "targetNotebook": "Carnet cible",
      "inbox": "Boîte de réception",
      "instructions": "Instructions IA",
      "instructionsPlaceholder": "Décrivez le comportement de l'agent...",
      "frequency": "Fréquence",
      "cancel": "Annuler",
      "saving": "Sauvegarde...",
      "save": "Sauvegarder",
      "create": "Créer l'agent",
      "editTitle": "Modifier l'agent",
      "createTitle": "Nouvel agent",
      "nameRequired": "Le nom est requis",
      "addUrl": "Ajouter une URL",
      "advancedMode": "Mode avancé",
      "instructionsHint": "remplace le prompt automatique",
      "researchTopic": "Sujet de recherche",
      "researchTopicPlaceholder": "ex: Les dernières avancées en intelligence artificielle",
      "notifyEmail": "Notification par email",
      "notifyEmailHint": "Recevez un email avec les résultats de l'agent après chaque exécution",
      "includeImages": "Inclure les images",
      "includeImagesHint": "Extraire les images des pages scrapées et les joindre à la note générée"
    },
    "frequencies": {
      "manual": "Manuel",
      "hourly": "Toutes les heures",
      "daily": "Quotidien",
      "weekly": "Hebdomadaire",
      "monthly": "Mensuel"
    },
    "schedule": {
      "nextRun": "Prochaine exécution",
      "pending": "En attente de déclenchement",
      "time": "Heure",
      "dayOfWeek": "Jour de la semaine",
      "dayOfMonth": "Jour du mois",
      "days": {
        "mon": "Lundi",
        "tue": "Mardi",
        "wed": "Mercredi",
        "thu": "Jeudi",
        "fri": "Vendredi",
        "sat": "Samedi",
        "sun": "Dimanche"
      }
    },
    "status": {
      "success": "Réussi",
      "failure": "Échoué",
      "running": "En cours",
      "pending": "En attente",
      "nextRun": "Next run",
      "lastStatus": "Last status"
    },
    "actions": {
      "edit": "Modifier",
      "run": "Exécuter",
      "delete": "Supprimer",
      "deleteConfirm": "Supprimer l'agent \"{name}\" ?",
      "toggleOn": "Agent activé",
      "toggleOff": "Agent désactivé"
    },
    "toasts": {
      "created": "Agent créé",
      "updated": "Agent mis à jour",
      "deleted": "\"{name}\" supprimé",
      "deleteError": "Erreur lors de la suppression",
      "runSuccess": "\"{name}\" exécuté avec succès",
      "runError": "Erreur : {error}",
      "runFailed": "Exécution échouée",
      "runGenericError": "Erreur lors de l'exécution",
      "toggleError": "Erreur lors du changement",
      "installSuccess": "\"{name}\" installé",
      "installError": "Erreur lors de l'installation",
      "saveError": "Erreur lors de la sauvegarde",
      "autoRunSuccess": "L'agent \"{name}\" s'est exécuté automatiquement avec succès",
      "autoRunError": "L'agent \"{name}\" a échoué lors de l'exécution automatique"
    },
    "templates": {
      "title": "Templates",
      "install": "Installer",
      "installing": "Installation...",
      "veilleAI": {
        "name": "Veille IA",
        "description": "Scrape les flux RSS de 6 sites IA (The Verge, TechCrunch, Ars Technica, MIT Tech Review, WIRED, Korben) et génère un résumé hebdomadaire."
      },
      "veilleTech": {
        "name": "Veille Tech",
        "description": "Scrape les flux RSS tech (Hacker News, DEV, Product Hunt) et crée un résumé quotidien."
      },
      "veilleDev": {
        "name": "Veille Dev",
        "description": "Scrape les flux RSS dev (JavaScript, TypeScript, React) et résume les nouvelles techs."
      },
      "surveillant": {
        "name": "Surveillant de Notes",
        "description": "Analyse les notes récentes d'un carnet et suggère des compléments, références et liens."
      },
      "chercheur": {
        "name": "Chercheur de Sujet",
        "description": "Recherche des informations approfondies sur un sujet et crée une note structurée avec références."
      }
    },
    "runLog": {
      "title": "Historique",
      "noHistory": "Aucune exécution pour le moment",
      "toolTrace": "{count} appels d'outils",
      "step": "Étape {num}"
    },
    "tools": {
      "title": "Outils de l'agent",
      "webSearch": "Recherche web",
      "webScrape": "Scraping web",
      "noteSearch": "Recherche notes",
      "noteRead": "Lire une note",
      "noteCreate": "Créer une note",
      "urlFetch": "Fetch URL",
      "memorySearch": "Mémoire",
      "configNeeded": "config",
      "selected": "{count} sélectionné(s)",
      "maxSteps": "Itérations max"
    },
    "metadata": {
      "executions": "{count} exéc."
    },
    "defaultRoles": {
      "scraper": "Tu es un assistant de veille. Ton rôle est de synthétiser des articles provenant de différents sites web en un résumé clair, structuré et utile en français. Utilise des titres de section, des listes à puces et des phrases concises.",
      "researcher": "Tu es un chercheur rigoureux. Pour le sujet demandé, produit une note de recherche avec : contexte, points clés, débats, références. Réponds en français.",
      "monitor": "Tu es un assistant analytique. Analyse les notes fournies et pour chaque thème détecté, propose : des pistes d'approfondissement, des références ou articles à lire, des connexions entre les notes. Réponds en français.",
      "custom": "Tu es un assistant utile. Réponds en français."
    },
    "help": {
      "title": "Guide des Agents",
      "btnLabel": "Aide",
      "close": "Fermer",
      "whatIsAgent": "Qu'est-ce qu'un agent ?",
      "whatIsAgentContent": "Un **agent** est un assistant IA qui travaille automatiquement pour vous. Il dispose d'**outils** (recherche web, scraping de pages, lecture de notes...) et produit une **note** avec ses résultats.\n\nImaginez-le comme un petit travailleur autonome : vous lui confiez une mission, il recherche ou extrait des informations, puis rédige une note structurée que vous pourrez lire ensuite.\n\nLes agents répondent dans votre langue (français ou anglais) en fonction de vos paramètres.",
      "howToUse": "Comment utiliser un agent ?",
      "howToUseContent": "1. Cliquez sur **\"Nouvel Agent\"** (ou commencez par un **Template** en bas de page)\n2. Choisissez un **type d'agent** (Chercheur, Veilleur, Surveillant, Personnalise)\n3. Donnez-lui un **nom** et remplissez les champs specifiques au type\n4. Choisissez optionnellement un **carnet cible** ou sauvegarder les resultats\n5. Selectionnez une **frequence** (Manuel = vous le lancez vous-meme)\n6. Cliquez sur **Creer**, puis appuyez sur le bouton **Executer** sur la carte de l'agent\n7. Une fois termine, une nouvelle note apparait dans votre carnet cible",
      "types": "Types d'agents",
      "typesContent": "### Chercheur\nRecherche le web sur un **sujet que vous definissez** et cree une note structuree avec des sources et references.\n\n- **Champs :** nom, sujet de recherche (ex : \"Dernieres avancees en intelligence artificielle\")\n- **Outils par defaut :** recherche web, scraping web, recherche de notes, creation de note\n- **Prerequis :** un fournisseur de recherche web doit etre configure (SearXNG ou Brave Search)\n\n### Veilleur (Scraper)\nScrape une **liste d'URLs** que vous spécifiez et produit un résumé de leur contenu.\n\n- **Champs :** nom, liste d'URLs (sites web ou flux RSS)\n- **Outils par défaut :** scraping web, création de note\n- **Astuce RSS :** Utilisez des URLs de flux RSS (ex: `site.com/feed`) pour scraper automatiquement les articles individuels au lieu des pages de liste\n- **Cas d'usage :** veille hebdomadaire tech, surveillance de concurrents, revue de blogs\n\n### Surveillant (Observateur de carnet)\nLit les notes d'un **carnet que vous selectionnez** et produit une analyse, des connexions et des suggestions.\n\n- **Champs :** nom, carnet source (celui a analyser)\n- **Outils par defaut :** recherche de notes, lecture de note, creation de note\n- **Cas d'usage :** trouver des connexions entre vos notes, obtenir des suggestions de lecture, detecter des themes recurrents\n\n### Personnalise\nUne toile vierge : vous ecrivez votre propre **prompt** et choisissez vos **outils**.\n\n- **Champs :** nom, description, instructions personnalisees (en mode avance)\n- **Aucun outil par defaut** — vous choisissez exactement ce dont l'agent a besoin\n- **Cas d'usage :** tout projet creatif ou specifique qui ne rentre pas dans les autres types",
      "advanced": "Mode avance (Instructions IA, Iterations max)",
      "advancedContent": "Cliquez sur **\"Mode avance\"** en bas du formulaire pour acceder aux reglages supplementaires.\n\n### Instructions IA\n\nCe champ vous permet de **remplacer le prompt systeme par defaut** de l'agent. Si vous le laissez vide, l'agent utilise un prompt automatique adapte a son type.\n\n**Pourquoi l'utiliser ?** Vous voulez controler exactement le comportement de l'agent. Par exemple :\n- \"Redige le resume en anglais, meme si les sources sont en francais\"\n- \"Structure la note avec les sections : Contexte, Points cles, Opinion personnelle\"\n- \"Ignore les articles de plus de 30 jours et concentre-toi sur l'actualite recente\"\n- \"Pour chaque theme detecte, propose 3 pistes d'approfondissement avec des liens\"\n\n> **Note :** Vos instructions remplacent celles par defaut, pas qu'elles s'y ajoutent.\n\n### Iterations max\n\nC'est le **nombre maximum de cycles** que l'agent peut effectuer. Un cycle = l'agent reflechit, appelle un outil, lit le resultat, puis decide de la prochaine action.\n\n- **3-5 iterations :** pour des taches simples (scraping d'une seule page)\n- **10 iterations (defaut) :** bon equilibre pour la plupart des cas\n- **15-25 iterations :** pour des recherches profondes ou l'agent doit explorer plusieurs pistes\n\n> **Attention :** Plus d'iterations = plus de temps et potentiellement plus de couts API.",
      "tools": "Outils disponibles (detail complet)",
      "toolsContent": "Quand le mode avance est active, vous pouvez choisir precisement quels outils l'agent peut utiliser.\n\n### Recherche web\nPermet a l'agent de **lancer des recherches sur internet** via SearXNG ou Brave Search.\n\n- **Ce que ca fait :** L'agent formule une requete, obtient des resultats de recherche, et peut ensuite scraper les pages les plus pertinentes.\n- **Quand l'activer :** Quand l'agent doit trouver des informations sur un sujet (type Chercheur ou Personnalise).\n- **Configuration requise :** SearXNG (avec format JSON active) ou une cle API Brave Search. Configurable dans **Admin > Outils Agents**.\n- **Exemple :** L'agent cherche \"React Server Components best practices 2025\" et obtient 10 resultats, puis scrape les 3 plus pertinents.\n\n### Scraping web\nPermet à l'agent d'**extraire le contenu texte d'une page web** à partir de son URL.\n\n- **Ce que ça fait :** L'agent visite une URL et récupère le texte structuré de la page (titres, paragraphes, listes). Les publicités, menus et pieds de page sont généralement filtrés.\n- **Support RSS/Atom :** Si l'URL est un flux RSS, l'outil détecte automatiquement le flux, parse les articles et scrape les 5 derniers individuellement. Utilisez des URLs de flux RSS pour un contenu beaucoup plus riche que les pages de listing.\n- **Quand l'activer :** Pour le type Veilleur (obligatoire), ou tout agent qui doit lire des pages web.\n- **Configuration :** Fonctionne sans configuration, mais une **clé API Jina Reader** améliore la qualité et supprime les limites de débit. Configurable dans **Admin > Outils Agents**.\n- **Exemple :** L'agent scrape le flux RSS de `techcrunch.com/feed/` et récupère les 5 derniers articles complets.\n\n### Recherche de notes\nPermet a l'agent de **chercher dans vos notes existantes**.\n\n- **Ce que ca fait :** L'agent effectue une recherche textuelle dans toutes vos notes (ou celles d'un carnet specifique).\n- **Quand l'activer :** Pour les agents de type Surveillant, ou tout agent qui doit croiser des informations avec vos notes.\n- **Configuration :** Aucune — fonctionne immediatement.\n- **Exemple :** L'agent cherche toutes les notes contenant \"machine learning\" pour voir ce que vous avez deja ecrit sur le sujet.\n\n### Lire une note\nPermet a l'agent de **lire le contenu complet d'une note** specifique.\n\n- **Ce que ca fait :** Apres avoir trouve une note (via Recherche de notes), l'agent peut lire son contenu integral pour l'analyser ou l'utiliser.\n- **Quand l'activer :** En complement de Recherche de notes. Activer les deux ensemble permet a l'agent de chercher PUIS lire.\n- **Configuration :** Aucune.\n- **Exemple :** L'agent trouve 5 notes sur \"productivite\", les lit toutes, et redige une synthese.\n\n### Creer une note\nPermet a l'agent d'**ecrire une nouvelle note** dans votre carnet cible.\n\n- **Ce que ca fait :** L'agent cree une note avec un titre et du contenu. C'est ainsi que les resultats arrivent dans vos carnets.\n- **Quand l'activer :** Presque toujours — sans cet outil, l'agent ne peut pas sauvegarder ses resultats. **Laissez-le active par defaut.**\n- **Configuration :** Aucune.\n- **Exemple :** L'agent cree une note \"Veille Tech - Semaine 16\" avec un resume de 5 articles.\n\n### Fetch URL\nPermet a l'agent de **telecharger le contenu brut d'une URL** (HTML, JSON, texte...).\n\n- **Ce que ca fait :** Contrairement au scraping qui extrait le texte proprement, Fetch URL recupere le contenu brut. Utile pour les API, les fichiers JSON, ou les pages non standard.\n- **Quand l'activer :** Quand l'agent doit interroger des API REST, lire des flux RSS, ou acceder a des donnees brutes.\n- **Configuration :** Aucune.\n- **Exemple :** L'agent interroge l'API GitHub pour lister les derniers commits d'un projet.\n\n### Memoire\nPermet a l'agent d'**acceder a l'historique de ses executions precedentes**.\n\n- **Ce que ca fait :** L'agent peut rechercher dans les resultats de ses runs passes. Cela lui permet de comparer, de suivre des evolutions, ou de ne pas repeter les memes informations.\n- **Quand l'activer :** Pour les agents qui s'executent regulierement et doivent maintenir une continuite entre les executions.\n- **Configuration :** Aucune.\n- **Exemple :** L'agent compare les actus de cette semaine avec celles de la semaine derniere et met en evidence les nouveautes.",
      "frequency": "Frequence & planification",
      "frequencyContent": "| Frequence | Comportement\n|-----------|------------\n| **Manuel** | Vous cliquez sur \"Executer\" — aucune planification automatique\n| **Toutes les heures** | S'execute toutes les heures\n| **Quotidien** | S'execute une fois par jour\n| **Hebdomadaire** | S'execute une fois par semaine\n| **Mensuel** | S'execute une fois par mois\n\n> **Astuce :** Commencez par \"Manuel\" pour tester votre agent, puis passez a une frequence automatique une fois satisfait.",
      "targetNotebook": "Carnet cible",
      "targetNotebookContent": "Quand un agent termine sa tache, il **cree une note**. Le **carnet cible** determine ou elle va :\n\n- **Boite de reception** (defaut) — la note va dans vos notes generales\n- **Carnet specifique** — choisissez un carnet pour garder les resultats organises\n\n> **Astuce :** Creez un carnet dedie comme \"Rapports d'agents\" pour centraliser tout le contenu automatise.",
      "templates": "Templates",
      "templatesContent": "Les templates sont des agents pré-configurés installables en un clic. Vous les trouvez en **bas de la page Agents**.\n\nTemplates disponibles :\n\n- **Veille IA** — revue hebdomadaire via les flux RSS de 6 sites IA (The Verge, TechCrunch, Ars Technica, MIT Tech Review, WIRED, Korben)\n- **Veille Tech** — résumé quotidien via les flux RSS de Hacker News, DEV Community, Product Hunt\n- **Veille Dev** — nouvelles technos via les flux RSS de DEV (JavaScript, TypeScript, React)\n- **Surveillant de Notes** — analyse un carnet et suggère des connexions\n- **Chercheur de Sujet** — recherche approfondie sur un sujet spécifique\n\nLes templates sont installés avec les outils adaptés à leur type. Vous pouvez les modifier après installation.",
      "tips": "Conseils & depannage",
      "tipsContent": "- **Commencez par un template** et personnalisez-le — c'est le moyen le plus rapide d'obtenir un agent fonctionnel\n- **Testez en \"Manuel\"** avant d'activer la planification automatique\n- **Utilisez des URLs de flux RSS** au lieu des pages de liste pour un contenu beaucoup plus riche (ex: `techcrunch.com/feed/` au lieu de `techcrunch.com/category/ai/`)\n- **Un agent \"Chercheur\" nécessite un fournisseur de recherche web** — configurez SearXNG (format JSON) ou Brave Search dans **Admin > Outils Agents**\n- **Si un agent échoue**, cliquez sur sa carte puis **Historique** pour voir le journal d'exécution et les traces d'outils\n- **Le bouton Activer/Désactiver** permet de mettre en pause un agent sans le supprimer\n- **La qualité du scraping web** s'améliore avec une clé API Jina Reader (optionnel, dans Admin > Outils Agents)\n- **Combinez \"Recherche de notes\" + \"Lire une note\"** pour que l'agent puisse chercher ET analyser le contenu de vos notes\n- **Activez \"Mémoire\"** si votre agent tourne régulièrement — il évitera de répéter les mêmes informations d'une exécution à l'autre\n- **Les agents répondent dans votre langue** — basculez entre français et anglais dans les paramètres",
      "tooltips": {
        "agentType": "Choisissez le type de tâche que l'agent effectuera. Chaque type a des capacités et des champs différents.",
        "researchTopic": "Le sujet que l'agent recherchera sur le web. Soyez précis pour de meilleurs résultats.",
        "description": "Une courte description de ce que fait cet agent. Vous aide à vous souvenir de son objectif.",
        "urls": "Liste des URLs à scraper. Supporte les flux RSS — utilisez les URLs de flux pour un contenu plus riche (ex: site.com/feed).",
        "sourceNotebook": "Le carnet que l'agent analysera. Il lit les notes de ce carnet pour trouver des connexions et des thèmes.",
        "targetNotebook": "Où la note résultat de l'agent sera sauvegardée. Choisissez Boîte de réception ou un carnet spécifique.",
        "frequency": "À quelle fréquence l'agent s'exécute automatiquement. Commencez par Manuel pour tester.",
        "instructions": "Instructions personnalisées qui remplacent le prompt IA par défaut. Laissez vide pour utiliser le prompt automatique.",
        "tools": "Sélectionnez les outils que l'agent peut utiliser. Chaque outil donne une capacité spécifique à l'agent.",
        "maxSteps": "Nombre maximum de cycles de raisonnement. Plus d'étapes = analyse plus approfondie mais plus long."
      }
    }
  },
  "chat": {
    "title": "Chat IA",
    "subtitle": "Discutez avec vos notes et vos agents IA",
    "newConversation": "Nouvelle discussion",
    "noHistory": "Aucun historique",
    "untitled": "Discussion sans titre",
    "deleteConfirm": "Supprimer cette discussion ?",
    "yes": "Oui",
    "placeholder": "Envoyez un message à l'assistant...",
    "allNotebooks": "Tous les carnets",
    "inAllNotebooks": "Dans tous les carnets",
    "active": "ACTIF",
    "disclaimer": "L'IA peut faire des erreurs. Vérifiez les informations importantes.",
    "assistantError": "Erreur assistant",
    "loadError": "Erreur lors du chargement de la discussion",
    "createError": "Erreur lors de la création de la conversation",
    "deleteError": "Erreur lors de la suppression",
    "renamed": "Discussion renommée",
    "renameError": "Erreur lors du renommage",
    "welcome": "Je suis à votre écoute pour synthétiser vos notes, générer de nouvelles idées ou discuter de vos carnets.",
    "searching": "Recherche en cours...",
    "noNotesFoundForContext": "Aucune note pertinente trouvée pour cette question. Réponds avec tes connaissances générales.",
    "webSearch": "Recherche web"
  },
  "labHeader": {
    "title": "Le Lab",
    "live": "Live",
    "currentProject": "Projet Actuel",
    "choose": "Choisir...",
    "yourSpaces": "Vos Espaces",
    "updated": "Mis à jour",
    "newSpace": "Nouvel Espace de Pensée",
    "new": "Nouveau",
    "renamed": "Espace renommé",
    "renameError": "Erreur lors du renommage",
    "created": "Nouvel espace créé",
    "createFailed": "Échec de la création",
    "deleteSpace": "Supprimer l'espace",
    "deleted": "Espace supprimé",
    "deleteError": "Erreur lors de la suppression"
  },
  "lab": {
    "initializing": "Initializing workspace",
    "loadingIdeas": "Loading your ideas..."
  }
}
