{
"common": {
"appName": "Kaneo",
"actions": {
"cancel": "Annuler",
"close": "Fermer",
"clearAll": "Tout effacer",
"delete": "Supprimer",
"deleting": "Suppression...",
"markAllRead": "Tout marquer comme lu",
"remove": "Retirer",
"reset": "Réinitialiser",
"filter": "Filtrer"
},
"a11y": {
"toggleSidebar": "Basculer la barre latérale"
},
"sidebar": {
"title": "Barre latérale",
"mobileDescription": "Affiche la barre latérale mobile."
},
"empty": {
"loading": "Chargement..."
},
"pagination": {
"label": "Pagination",
"previous": "Précédent",
"next": "Suivant",
"previousPage": "Aller à la page précédente",
"nextPage": "Aller à la page suivante",
"morePages": "Plus de pages"
},
"breadcrumb": {
"label": "Fil d'Ariane",
"more": "Plus"
},
"language": {
"english": "Anglais",
"german": "Allemand",
"greek": "Grec",
"macedonian": "Macédonien",
"french": "Français",
"spanish": "Espagnol",
"dutch": "Néerlandais",
"korean": "Coréen",
"chinese": "Chinois",
"italian": "Italien"
},
"people": {
"someone": "Quelqu'un",
"unknown": "Inconnu"
},
"error": {
"title": "Quelque chose s'est mal passé",
"troubleshooting": "Étapes de dépannage :",
"tryAgain": "Réessayer",
"viewDeploymentGuide": "Voir le guide de déploiement",
"refreshPage": "Rafraîchir la page",
"description": "La page a planté de manière inattendue. Un rechargement suffit généralement à résoudre le problème.",
"messages": {
"auth": "Échec de l'authentification. Veuillez vous reconnecter.",
"cors": "Impossible de se connecter au serveur. Cela peut être dû à un problème de configuration CORS.",
"network": "Erreur réseau. Veuillez vérifier votre connexion Internet et réessayer.",
"server": "Erreur du serveur. Veuillez réessayer plus tard.",
"unknown": "Une erreur inattendue s'est produite."
},
"troubleshootingSteps": {
"cors": {
"checkAccessibility": "Vérifiez que votre serveur API est accessible depuis votre navigateur",
"checkApiRunning": "Assurez-vous que votre serveur API est en cours d'exécution",
"checkApiUrl": "Vérifiez que VITE_API_URL dans le fichier .env de votre interface correspond à l'URL de votre serveur API",
"checkProtocol": "Assurez-vous que l'interface et l'API utilisent le même protocole (http/https)",
"verifyCorsOrigins": "Vérifiez que CORS_ORIGINS dans le fichier .env de votre API contient l'URL de votre interface"
},
"network": {
"checkConnection": "Vérifiez votre connexion Internet",
"checkFirewall": "Vérifiez si un pare-feu ou un proxy pose problème",
"tryRefresh": "Essayez de recharger la page",
"verifyApiRunning": "Vérifiez que le serveur API est en cours d'exécution et accessible"
}
}
},
"modals": {
"createProject": {
"title": "Créer un nouveau projet",
"breadcrumbNew": "Créer un nouveau projet",
"workspaceFallback": "ESPACE DE TRAVAIL",
"description": "Créez un nouveau projet dans votre espace de travail en fournissant un nom, une clé et en sélectionnant une icône.",
"pickIcon": "Choisir une icône",
"searchIcons": "Rechercher des icônes...",
"projectName": "Nom du projet",
"keyLabel": "Clé :",
"keyHint": "Utilisée pour les ID de tickets (par ex. {{example}}-123)",
"createButton": "Créer le projet",
"successToast": "Projet créé avec succès",
"errorToast": "Échec de la création du projet"
},
"createWorkspace": {
"breadcrumbKaneo": "KANEO",
"title": "Créer un nouvel espace de travail",
"description": "Créez un nouvel espace de travail en lui donnant un nom.",
"namePlaceholder": "Nom de l'espace de travail",
"descriptionPlaceholder": "Ajouter une description...",
"createButton": "Créer l'espace de travail",
"successToast": "Espace de travail créé avec succès",
"errorToast": "Échec de la création de l'espace de travail"
},
"createTask": {
"breadcrumbTask": "TÂCHE",
"selectProject": "Sélectionner un projet",
"title": "Nouvelle tâche",
"description": "Créez une nouvelle tâche en fournissant un titre, une description et d'autres détails.",
"taskTitlePlaceholder": "Titre de la tâche",
"descriptionPlaceholder": "Ajoutez une description pour votre tâche...",
"chooseProjectForImages": "Choisissez un projet avant d'importer des images.",
"prepareTaskError": "Échec de la préparation de la tâche",
"successCreated": "Tâche créée avec succès",
"successUpdated": "Tâche mise à jour avec succès",
"createError": "Échec de la création de la tâche",
"priority": "Priorité",
"statusFallback": "En cours",
"startDate": "Date de début",
"dueDate": "Date d'échéance",
"clearStartDate": "Supprimer la date de début",
"assign": "Assigner",
"assignUnassigned": "Non assigné",
"assignUnassignedTitle": "Non assigné",
"labels": "Labels",
"searchLabels": "Rechercher des labels...",
"noLabelsFound": "Aucun label trouvé",
"createLabel": "Créer \"{{name}}\"",
"chooseColor": "Choisir une couleur",
"labelCreated": "Label créé",
"labelCreateError": "Échec de la création du label",
"createMore": "Créer plus",
"createButton": "Créer la tâche",
"discardTitle": "Abandonner la tâche ?",
"discardDescription": "Les détails non enregistrés de la tâche seront perdus.",
"discardButton": "Abandonner la tâche",
"untitledTask": "Tâche sans titre",
"labelColors": {
"stone": "Pierre",
"slate": "Ardoise",
"lavender": "Lavande",
"sage": "Sauge",
"forest": "Forêt",
"amber": "Ambre",
"terracotta": "Terre cuite",
"rose": "Rose",
"crimson": "Cramoisi",
"lagoon": "Lagon",
"ocean": "Océan",
"orchid": "Orchidée",
"sky": "Ciel"
},
"statusLoadError": "Impossible de charger les statuts du projet."
}
},
"editor": {
"link": {
"label": "URL du lien",
"placeholder": "Collez ou saisissez un lien…",
"apply": "Appliquer le lien",
"remove": "Supprimer le lien"
}
}
},
"auth": {
"signIn": {
"pageTitle": "Connexion",
"subtitle": {
"emailOrProvider": "Utilisez votre e-mail ou un compte associé.",
"email": "Saisissez votre e-mail et nous vous enverrons un code de connexion.",
"password": "Utilisez votre e-mail et votre mot de passe.",
"passwordOrProvider": "Utilisez votre mot de passe ou un compte associé.",
"providers": "Choisissez comment vous connecter.",
"sso": "Ici, la connexion est gérée par votre organisation."
},
"lastUsed": "Dernière utilisation",
"guestError": "Échec de la connexion en tant qu'invité",
"errors": {
"account_not_linked": "Cette identité n'a pas pu être associée au compte existant. Connectez-vous par e-mail pour vérifier le compte, puis réessayez la connexion SSO. Si la connexion par e-mail n'est pas disponible, contactez votre administrateur.",
"oauth_code_verification_failed": "La vérification d'OAuth a échoué. Veuillez réessayer.",
"registration_is_currently_disabled_you_need_a_valid_invitation_to_create_an_account_": "L'inscription est actuellement désactivée. Vous avez besoin d'une invitation valide pour créer un compte.",
"use_a_permanent_email_address_disposable_addresses_cannot_create_accounts_": "Utilisez une adresse e-mail permanente. Les adresses jetables ne permettent pas de créer un compte."
},
"instanceStatusError": "Impossible de joindre le serveur. Veuillez réessayer dans un instant.",
"heading": "Se connecter à Kaneo",
"submitPassword": "Se connecter",
"invitation": {
"title": "{{inviterName}} vous a invité à rejoindre {{workspaceName}}",
"fallbackTitle": "Vous avez reçu une invitation",
"description": "Connectez-vous avec l'adresse e-mail qui a reçu l'invitation. Vous rejoindrez l'espace de travail juste après."
},
"footer": {
"newHere": "Nouveau sur Kaneo?",
"createAccount": "Créer un compte",
"inviteOnly": "Ici, les comptes sont uniquement sur invitation. Demandez une invitation à un administrateur.",
"providerSignUp": "Pas encore de compte? Connectez-vous avec l'un des fournisseurs ci-dessus pour en créer un.",
"anyProvider": "Pas encore de compte? Chacune des options ci-dessus crée votre compte.",
"contactAdmin": "Un problème de connexion? Contactez votre administrateur.",
"justLooking": "Vous voulez juste jeter un œil?"
},
"autoLogin": {
"title": "Connexion en cours",
"subtitle": "Redirection vers la page de connexion de votre organisation.",
"opening": "Ouverture de {{provider}}…",
"stuck": "Rien ne se passe?",
"continue": "Continuer vers {{provider}}"
}
},
"providers": {
"google": "Google",
"discord": "Discord",
"github": "GitHub",
"sso": "SSO",
"continueWith": "Continuer avec {{provider}}",
"error": "Impossible de se connecter avec {{provider}}. Réessayez."
},
"forms": {
"or": "ou",
"email": "E-mail",
"password": "Mot de passe",
"emailPlaceholder": "moi@exemple.fr",
"passwordPlaceholder": "••••••••",
"showPassword": "Afficher le mot de passe",
"hidePassword": "Masquer le mot de passe",
"name": "Nom",
"namePlaceholder": "Marie Dupont",
"invalidEmail": "Saisissez une adresse e-mail complète, comme nom@entreprise.fr.",
"nameRequired": "Saisissez votre nom.",
"passwordRequired": "Saisissez votre mot de passe.",
"passwordTooShort": "Utilisez au moins 8 caractères.",
"disposableEmail": "Utilisez une adresse e-mail permanente. Les adresses jetables ne permettent pas de créer un compte.",
"continueWithEmail": "Continuer avec l'e-mail",
"captchaChecking": "Vérification de sécurité rapide avant de continuer.",
"captchaFailed": "La vérification de sécurité ne s'est pas chargée, la connexion est donc en pause. Vérifiez votre connexion ou votre bloqueur de contenu.",
"captchaRetry": "Réessayer"
},
"checkEmail": {
"pageTitle": "Vérifier vos mails",
"title": "Vérifier vos mails",
"inboxMessage": "Nous vous avons envoyé un lien de connexion temporaire. Veuillez vérifier votre boîte de réception à l'adresse {{email}}.",
"emailFallback": "votre adresse email",
"backToLogin": "Retour à la connexion"
},
"signUp": {
"pageTitle": "Créer un compte",
"registrationDisabledAlert": "L'inscription est actuellement désactivée. Si vous avez été invité, entrez l'adresse e-mail qui a reçu l'invitation pour créer votre compte.",
"continueAsGuest": "Continuer en tant qu'invité",
"toggleMessage": "Vous avez déjà un compte?",
"toggleLink": "Se connecter",
"instanceStatusError": "Impossible de joindre le serveur. Veuillez réessayer dans un instant.",
"instanceAdminTitle": "Configurez votre instance Kaneo",
"instanceAdminSubtitle": "Ce compte devient l'administrateur de l'instance avec un accès complet.",
"heading": "Créez votre compte",
"submitPassword": "Créer un compte",
"failed": "Impossible de créer votre compte. Réessayez.",
"subtitle": {
"email": "Commencez avec votre e-mail. Nous vous enverrons un code, sans mot de passe.",
"password": "Saisissez votre nom, votre e-mail et un mot de passe pour commencer.",
"providers": "Utilisez un compte associé pour créer le vôtre."
},
"invitation": {
"description": "Utilisez l'adresse e-mail qui a reçu l'invitation. Vous rejoindrez l'espace de travail juste après."
},
"verifyEmail": "Check your email to confirm your address, then sign in."
},
"verifyOtp": {
"pageTitle": "Vérifier le code",
"validation": {
"codeLength": "Le code doit contenir 6 chiffres"
},
"toast": {
"invalidCode": "Code de vérification invalide",
"verifyFailed": "Échec de la vérification du code",
"resendFailed": "Échec de l'envoi du code",
"resendSuccess": "Nouveau code de vérification envoyé!"
},
"heading": "Consultez vos e-mails",
"description": "Nous avons envoyé un code à 6 chiffres à {{email}}. Il expire dans {{minutes}} minutes.",
"label": "Code de vérification",
"submit": "Vérifier et continuer",
"didntGetIt": "Rien reçu?",
"resendCode": "Renvoyer le code",
"useDifferentEmail": "Utiliser une autre adresse e-mail",
"expired": "Ce code a expiré. Demandez-en un nouveau.",
"tooManyAttempts": "Trop de tentatives. Demandez un nouveau code."
},
"otpSignIn": {
"sendFailed": "Échec de l'envoi du code de vérification"
},
"signInForm": {
"failedSignIn": "Échec de la connexion",
"emailNotVerified": "Confirm your email address first. We sent you a new link."
},
"invitation": {
"pageTitleAccept": "Accepter l'invitation",
"pageTitleError": "Erreur d'invitation",
"pageTitleInvalid": "Invitation invalide",
"joinWorkspace": "Rejoindre {{workspaceName}}",
"createAccount": "Créer un compte",
"signIn": "Se connecter",
"toast": {
"acceptFailed": "Échec de l'acceptation de l'invitation",
"acceptSuccess": "Invitation acceptée! Bienvenue dans l'équipe."
},
"description": "{{inviterName}} vous a invité à rejoindre cet espace de travail sur Kaneo.",
"invitedBy": "Invitation de",
"sentTo": "Envoyée à",
"signedInAs": "Connecté en tant que",
"expires": "Expire le",
"notNow": "Plus tard",
"join": "Rejoindre l'espace de travail",
"switchAccount": "Changer de compte",
"goToKaneo": "Aller sur Kaneo",
"mismatch": {
"title": "Connecté avec une autre adresse e-mail",
"description": "Cette invitation a été envoyée à {{invitedEmail}}. Vous êtes connecté en tant que {{email}}."
},
"expired": {
"title": "Cette invitation a expiré",
"description": "Demandez à {{inviterName}} de vous envoyer une nouvelle invitation pour {{workspaceName}}."
},
"invalid": {
"title": "Cette invitation n'est plus valide",
"description": "Elle a peut-être été acceptée ou annulée. Demandez-en une nouvelle à un administrateur de l'espace de travail."
},
"loadFailed": {
"title": "Impossible de charger cette invitation",
"description": "Vérifiez votre connexion et rechargez la page."
}
},
"onboarding": {
"pageTitle": "Bienvenue sur Kaneo",
"workspaceName": "Nom de l'espace de travail",
"workspaceNamePlaceholder": "ex: Acme Inc, Mon équipe",
"toast": {
"createFailed": "Échec de la création de l'espace de travail"
},
"validation": {
"workspaceNameRequired": "Le nom de l'espace de travail est requis",
"projectNameRequired": "Donnez un nom à votre premier projet"
},
"restrictedSubtitle": "Seul un administrateur de l'instance peut créer des espaces de travail ici. Demandez une invitation, puis rechargez cette page.",
"restrictedCheckInvitations": "Voir les invitations",
"restrictedTitle": "Vous avez besoin d'une invitation",
"cloud": {
"invite": {
"addAnother": "Ajouter une autre adresse",
"emailLabel": "E-mail du collègue {{index}}",
"emailPlaceholder": "collegue@entreprise.fr",
"failed": "Impossible d'inviter {{email}} : {{message}}",
"invalidEmail": "Saisissez une adresse e-mail valide",
"remove": "Retirer l'adresse e-mail {{index}}",
"sent_many": "{{count}} invitations envoyées",
"sent_one": "Invitation envoyée",
"sent_other": "{{count}} invitations envoyées",
"skip": "Ignorer pour l'instant"
},
"plan": {
"continueTrial": "Commencer l'essai gratuit",
"recommended": "Recommandé",
"trialUsed": "Vous avez déjà utilisé votre essai gratuit. Choisissez un forfait pour commencer à créer des projets et des tâches."
},
"usageLabel": "Qui utilisera cet espace de travail ?",
"usageSolo": "Moi uniquement",
"usageSoloDescription": "Suivez votre propre travail",
"usageTeam": "Mon équipe",
"usageTeamDescription": "Planifiez et réalisez votre travail ensemble"
},
"projectNameDefault": "Mon premier projet",
"starterTasks": {
"drag": {
"title": "Faites glisser cette carte vers la colonne suivante",
"description": "Les cartes passent de colonne en colonne au fil du travail. Faites glisser celle-ci vers la colonne suivante, ou ouvrez-la et changez son statut."
},
"details": {
"title": "Ouvrez cette tâche et ajoutez une sous-tâche",
"description": "Une tâche peut contenir une description, des sous-tâches, des étiquettes, une personne assignée et une date d'échéance. Ajoutez une sous-tâche à celle-ci pour essayer."
},
"invite": {
"title": "Invitez votre équipe",
"description": "Kaneo fonctionne mieux quand tout le monde y participe. Ouvrez **Membres** dans la barre latérale pour inviter des personnes par e-mail."
},
"integrations": {
"title": "Connectez GitHub, GitLab ou Gitea",
"description": "Synchronisez les issues et déplacez les tâches automatiquement quand des pull requests sont ouvertes et fusionnées. Configurez-le dans **Paramètres du projet**."
},
"create": {
"title": "Créez votre propre tâche",
"description": "Utilisez le **+** à côté du nom d'une colonne, ou appuyez sur **T** puis **C**. Supprimez ces tâches de démarrage quand vous le souhaitez."
}
},
"progress": "Étape {{current}} sur {{total}}",
"continue": "Continuer",
"signedInAs": "Connecté en tant que {{email}}",
"signOut": "Se déconnecter",
"workspace": {
"title": "Nommez votre espace de travail",
"description": "C'est ici que vivent vos projets. Utilisez le nom de votre équipe ou de votre entreprise, vous pourrez le modifier plus tard."
},
"usage": {
"title": "Qui va l'utiliser?",
"description": "Nous configurerons {{name}} en conséquence. Vous pourrez toujours inviter des personnes plus tard."
},
"project": {
"title": "Lancez votre premier projet",
"description": "Nous ajouterons quelques tâches de démarrage pour vous guider. Renommez-les ou supprimez-les à tout moment.",
"label": "Nom du projet",
"ticketStart": "Les identifiants des tâches commenceront à {{ticket}}."
},
"invite": {
"title": "Invitez votre équipe",
"description": "Ils recevront un e-mail pour rejoindre {{name}}. Passez cette étape si vous préférez d'abord explorer.",
"label": "E-mails des membres de l'équipe",
"send_many": "Envoyer {{count}} invitations",
"send_one": "Envoyer {{count}} invitation",
"send_other": "Envoyer {{count}} invitations",
"sendNone": "Envoyer les invitations"
},
"plan": {
"title": "Comment voulez-vous commencer?",
"descriptionTrial_many": "Chaque forfait inclut des projets et des tâches illimités. Essayez {{name}} gratuitement pendant {{count}} jours, ou abonnez-vous dès maintenant.",
"descriptionTrial_one": "Chaque forfait inclut des projets et des tâches illimités. Essayez {{name}} gratuitement pendant {{count}} jour, ou abonnez-vous dès maintenant.",
"descriptionTrial_other": "Chaque forfait inclut des projets et des tâches illimités. Essayez {{name}} gratuitement pendant {{count}} jours, ou abonnez-vous dès maintenant.",
"choose": "Choisir un forfait",
"description": {
"team": "Membres, rôles et autorisations illimités",
"personal": "Pour une seule personne"
},
"perUserMonth": "par utilisateur / mois",
"perMonth": "par mois",
"subscribe": "S'abonner à {{plan}}",
"checkout": "Passer au paiement",
"trialNote": "Aucune carte requise pour l'essai. Les paiements sont traités par Creem.",
"paymentNote": "Les paiements sont traités par Creem."
},
"ready": {
"title": "{{name}} est prêt",
"description": "Voici ce que nous avons configuré. Vous pourrez tout modifier plus tard.",
"workspace": "Espace de travail",
"project": "Premier projet",
"projectValue_many": "{{name}}, avec {{count}} tâches de démarrage",
"projectValue_one": "{{name}}, avec {{count}} tâche de démarrage",
"projectValue_other": "{{name}}, avec {{count}} tâches de démarrage",
"invitations": "Invitations",
"invitationsValue_many": "Envoyées à {{count}} personnes",
"invitationsValue_one": "Envoyée à {{count}} personne",
"invitationsValue_other": "Envoyées à {{count}} personnes",
"open": "Ouvrir {{name}}"
},
"preview": {
"untitled": "Votre espace de travail"
}
},
"profileSetup": {
"pageTitle": "Compléter le profil",
"completeTitle": "Compléter votre profil",
"subtitle": "Veuillez entrer votre nom pour commencer",
"yourName": "Votre nom",
"namePlaceholder": "ex: John Doe",
"saving": "Sauvegarde...",
"continue": "Continuer",
"welcome": "Bienvenue, {{name}}!",
"redirecting": "Redirection vers votre tableau de bord...",
"toast": {
"updateSuccess": "Profil mis à jour avec succès",
"updateFailed": "Échec de la mise à jour du profil"
},
"validation": {
"nameRequired": "Le nom est requis",
"nameShort": "Le nom doit contenir au moins 2 caractères"
}
},
"passwordReset": {
"forgotPassword": "Mot de passe oublié ?",
"requestTitle": "Réinitialiser votre mot de passe",
"requestSubtitle": "Saisissez votre adresse e-mail et nous vous enverrons un lien de réinitialisation du mot de passe.",
"sendLink": "Envoyer le lien de réinitialisation",
"requestError": "Impossible de demander un lien de réinitialisation. Veuillez réessayer.",
"unavailable": "La réinitialisation du mot de passe est indisponible. Contactez l'administrateur de votre instance.",
"configError": "Impossible de joindre le serveur. Veuillez recharger la page pour réessayer.",
"resetTitle": "Choisir un nouveau mot de passe",
"newPassword": "Nouveau mot de passe",
"confirmPassword": "Confirmer le nouveau mot de passe",
"passwordMismatch": "Les mots de passe ne correspondent pas.",
"passwordLength": "Utilisez entre 8 et 128 caractères.",
"invalidLink": "Ce lien de réinitialisation est invalide ou a expiré. Demandez un nouveau lien pour continuer.",
"requestNewLink": "Demander un nouveau lien",
"resetError": "Impossible de réinitialiser votre mot de passe. Veuillez réessayer.",
"success": "Votre mot de passe a été réinitialisé. Connectez-vous avec votre nouveau mot de passe.",
"backToSignIn": "Retour à la connexion",
"sentTitle": "Consultez votre boîte de réception",
"sentDescription": "Si un compte existe pour {{email}}, un lien de réinitialisation du mot de passe est en route. Il expire dans 1 heure.",
"sentHelpTitle": "Rien reçu?",
"sentHelpDescription": "Vérifiez votre dossier de spam, ou demandez un autre lien dans une minute.",
"rememberedIt": "Ça vous revient?",
"resetDescription": "Utilisez entre 8 et 128 caractères. Vos autres appareils seront déconnectés.",
"updatePassword": "Mettre à jour le mot de passe",
"changedMind": "Vous avez changé d'avis?",
"invalidLinkTitle": "Ce lien a expiré",
"successTitle": "Mot de passe mis à jour"
},
"page": {
"terms": "Conditions",
"privacy": "Confidentialité"
},
"device": {
"connect": {
"title": "Connecter un appareil",
"description": "Saisissez le code affiché dans votre terminal ou votre application pour l'associer à votre compte Kaneo.",
"label": "Code de l'appareil",
"submit": "Continuer",
"noCode": "Pas encore de code? Lancez d'abord la connexion depuis votre application.",
"codeRequired": "Saisissez le code affiché sur votre appareil.",
"invalidCode": "Ce code est invalide ou a expiré."
},
"approve": {
"pageTitle": "Approuver l'appareil",
"title": "Connecter cet appareil?",
"description": "Un appareil souhaite se connecter en tant que {{email}}. Approuvez-le uniquement si vous êtes à l'origine de cette demande.",
"matchCode": "Vérifiez que ce code correspond à celui de votre appareil",
"deny": "Refuser",
"approve": "Approuver",
"failed": "Impossible de mettre à jour la demande. Réessayez."
},
"approved": {
"title": "Appareil connecté",
"description": "Retournez dans votre terminal ou votre application. Vous pouvez fermer cet onglet."
},
"denied": {
"title": "Demande refusée",
"description": "Rien n'a été connecté. Vous pouvez fermer cet onglet."
},
"missing": {
"title": "Aucun code d'appareil",
"description": "Ouvrez cette page depuis votre appareil, ou saisissez le code vous-même.",
"enterCode": "Saisir un code"
},
"signIn": {
"title": "Connectez-vous pour associer votre appareil",
"description": "Vous reviendrez ici juste après pour l'approuver.",
"submit": "Se connecter"
},
"openApp": "Ouvrir Kaneo"
},
"mcp": {
"authorize": {
"title": "Autoriser un client MCP",
"description": "Il pourra agir en votre nom dans tous les espaces de travail auxquels vous avez accès. Ne continuez que si vous êtes à l'origine de cette connexion.",
"client": "Client",
"unknownClient": "Client MCP",
"selfReported": "Déclaré par le client",
"redirect": "Vous renvoie vers",
"signedInAs": "Connecté en tant que",
"deny": "Refuser",
"allow": "Autoriser l'accès"
},
"expired": {
"title": "Cette demande a expiré",
"description": "Retournez dans votre client MCP et reconnectez-vous."
},
"signIn": {
"title": "Connectez-vous pour autoriser ce client",
"description": "Vous reviendrez ici juste après pour l'examiner.",
"submit": "Se connecter"
}
}
},
"settings": {
"advancedSettings": "Paramètres avancés",
"account": "Compte",
"developer": "Développeur",
"information": "Profil",
"notifications": "Notifications",
"preferences": "Préférences",
"apiKeys": "Clés API",
"informationPage": {
"pageTitle": "Profil",
"title": "Profil",
"subtitle": "Ce que vos coéquipiers voient de vous.",
"sectionTitle": "Informations",
"profilePicture": "Photo de profil",
"fullName": "Nom",
"fullNamePlaceholder": "Entrez votre nom",
"email": "E-mail",
"updateError": "Échec de la mise à jour du profil",
"validation": {
"nameRequired": "Le nom est requis",
"nameShort": "Le nom doit contenir au moins 2 caractères"
},
"avatar": {
"hint": "Les images carrées rendent mieux.",
"remove": "Retirer",
"removeError": "Échec de la suppression de la photo de profil",
"removeSuccess": "Photo de profil supprimée",
"updateError": "Échec de la mise à jour de la photo de profil",
"updateSuccess": "Photo de profil mise à jour",
"upload": "Téléverser"
},
"deleteAccount": {
"confirm": "Supprimer le compte",
"confirmLabel": "Saisissez {{email}} pour confirmer",
"description": "Les espaces de travail dont vous êtes le seul membre sont supprimés avec votre compte. Ailleurs, vos tâches sont conservées sans assignation et vos commentaires sont supprimés.",
"error": "Échec de la suppression du compte",
"modalDescription": "Cette action supprime définitivement votre compte et est irréversible.",
"modalTitle": "Supprimer votre compte ?",
"sectionTitle": "Zone dangereuse",
"success": "Votre compte a été supprimé",
"title": "Supprimer le compte",
"sessionTooOld": "Pour des raisons de sécurité, déconnectez-vous puis reconnectez-vous avant de supprimer votre compte."
},
"emailHint": "Vous vous connectez avec cette adresse."
},
"notificationsPage": {
"pageTitle": "Notifications",
"title": "Notifications",
"subtitle": "Ce dont Kaneo vous informe, et où vous le recevez.",
"statusConnected": "Connecté",
"statusPaused": "En pause",
"emailTitle": "E-mail",
"accountEmailNoAddress": "Aucune adresse email de compte disponible",
"saveChanges": "Enregistrer les modifications",
"disconnect": "Déconnecter",
"ntfyTitle": "ntfy",
"ntfyDescription": "Publiez sur un sujet ntfy, sur votre téléphone ou votre ordinateur.",
"serverUrl": "URL du serveur",
"topic": "Sujet",
"token": "Jeton",
"ntfyServerPlaceholder": "https://ntfy.example.com",
"ntfyTopicPlaceholder": "alertes-equipe",
"ntfyTokenPlaceholder": "Seulement si votre serveur en exige un",
"ntfyTokenHintConfigured": "Un jeton est déjà configuré ({{masked}}). Saisissez-en un nouveau pour le remplacer.",
"ntfyTokenHintOptional": "Utilisez-en un si votre serveur ntfy exige une authentification.",
"connectNtfy": "Connecter ntfy",
"gotifyTitle": "Gotify",
"gotifyDescription": "Envoyez les notifications vers votre serveur Gotify.",
"gotifyTokenLabel": "Jeton d'application",
"gotifyServerPlaceholder": "https://gotify.example.com",
"gotifyTokenPlaceholder": "Jeton d'application Gotify",
"gotifyTokenHintConfigured": "Un jeton d'application est déjà configuré ({{masked}}). Saisissez-en un nouveau pour le remplacer.",
"gotifyTokenHintRequired": "Obligatoire. Utilisez un jeton d'application provenant de votre serveur Gotify.",
"connectGotify": "Connecter Gotify",
"webhookTitle": "Webhook personnalisé",
"webhookDescription": "Envoyez chaque notification à votre propre point de terminaison au format JSON.",
"endpointUrl": "URL du point de terminaison",
"signingSecret": "Secret de signature",
"webhookUrlPlaceholder": "https://example.com/webhooks/kaneo",
"webhookSecretPlaceholder": "Secret partagé facultatif",
"webhookSecretHintConfigured": "Un secret de signature est déjà configuré ({{masked}}). Saisissez-en un nouveau pour le remplacer.",
"webhookSecretHintOptional": "Kaneo signe le corps de la requête lorsqu'un secret est défini.",
"connectWebhook": "Connecter le webhook",
"allProjects": "Tous les projets",
"noProjectsInWorkspace": "Aucun projet n'est encore disponible dans cet espace de travail.",
"toastEmailSaved": "Paramètres des notifications par email enregistrés",
"toastEmailSaveFailed": "Échec de l'enregistrement des paramètres email",
"toastNtfySaved": "Paramètres ntfy enregistrés",
"toastNtfySaveFailed": "Échec de l'enregistrement des paramètres ntfy",
"toastNtfyDisconnected": "ntfy déconnecté",
"toastNtfyDisconnectFailed": "Échec de la déconnexion de ntfy",
"toastGotifySaved": "Paramètres Gotify enregistrés",
"toastGotifySaveFailed": "Échec de l'enregistrement des paramètres Gotify",
"toastGotifyDisconnected": "Gotify déconnecté",
"toastGotifyDisconnectFailed": "Échec de la déconnexion de Gotify",
"toastWebhookSaved": "Paramètres du webhook enregistrés",
"toastWebhookSaveFailed": "Échec de l'enregistrement des paramètres du webhook",
"toastWebhookDisconnected": "Webhook déconnecté",
"toastWebhookDisconnectFailed": "Échec de la déconnexion du webhook",
"toastRuleSaved": "Règle de notification enregistrée pour {{workspaceName}}",
"toastRuleSaveFailed": "Échec de l'enregistrement de la règle de notification de l'espace de travail",
"toastRuleRemoved": "Règle de notification supprimée pour {{workspaceName}}",
"toastRuleRemoveFailed": "Échec de la suppression de la règle de notification de l'espace de travail",
"toastPreferencesSaved": "Préférences de notification enregistrées",
"toastPreferencesSaveFailed": "Échec de l'enregistrement des préférences de notification",
"toastRuleSavedGeneric": "Règle de notification de l'espace de travail enregistrée",
"toastRuleRemovedGeneric": "Règle de notification de l'espace de travail supprimée",
"eventPreferencesTitle": "Me notifier pour",
"eventPreferencesDescription": "Vos propres commentaires, mentions et changements de statut ne vous notifient jamais.",
"eventTaskAssignments": "Assignations",
"eventComments": "Commentaires et mentions",
"eventCommentsHint": "Les nouveaux commentaires sur vos tâches, et toute personne qui vous @mentionne.",
"eventStatusChanges": "Changements de statut",
"eventDueDateReminders": "Rappels d'échéance",
"reminderLeadTimeLabel": "Me rappeler avant la date d'échéance",
"reminderLeadTimeInvalid": "Entrez un nombre entier entre 1 et {{max}}.",
"saveEventPreferences": "Enregistrer les types de notification",
"channelNotConnected": "Non connecté",
"channelOff": "Désactivé",
"channelsDescription": "Les notifications s'affichent toujours dans Kaneo. Connectez un canal pour les recevoir aussi ailleurs.",
"channelsTitle": "Canaux",
"configure": "Configurer",
"configureChannel": "Configurer {{channel}}",
"configureWorkspace": "Configurer les notifications pour {{workspaceName}}",
"connect": "Connecter",
"connectChannel": "Connecter {{channel}}",
"disconnectDescription": "Les notifications ne seront plus envoyées à {{channel}}, et ses paramètres enregistrés seront supprimés.",
"disconnecting": "Déconnexion...",
"disconnectTitle": "Déconnecter {{channel}} ?",
"done": "Terminé",
"emailToggleLabel": "Envoyer les notifications par email",
"eventDueDateRemindersHint": "Avant l'échéance de l'une de vos tâches. Les tâches en retard font l'objet d'une notification distincte.",
"eventStatusChangesHint": "Quand l'une de vos tâches passe dans une autre colonne.",
"eventTaskAssignmentsHint": "Quand quelqu'un vous assigne une tâche.",
"loadFailed": "Impossible de charger les paramètres de notification.",
"onlyInKaneo": "Uniquement dans Kaneo",
"optional": "Facultatif",
"projectCount_many": "{{count}} projets",
"projectCount_one": "{{count}} projet",
"projectCount_other": "{{count}} projets",
"reminderLeadTimeUnitDaysBefore_many": "jours avant",
"reminderLeadTimeUnitDaysBefore_one": "jour avant",
"reminderLeadTimeUnitDaysBefore_other": "jours avant",
"reminderLeadTimeUnitHoursBefore_many": "heures avant",
"reminderLeadTimeUnitHoursBefore_one": "heure avant",
"reminderLeadTimeUnitHoursBefore_other": "heures avant",
"reminderLeadTimeUnitLabel": "Unité du rappel",
"ruleActiveDescription": "Désactivez pour mettre cet espace de travail en pause et conserver sa configuration.",
"ruleActiveLabel": "Envoi",
"ruleChannels": "Canaux",
"ruleDialogDescription": "Où les notifications de cet espace de travail peuvent être envoyées.",
"ruleDialogTitle": "Notifications de {{workspaceName}}",
"ruleProjects": "Projets",
"ruleSummary": "{{channels}} · {{projects}}",
"save": "Enregistrer",
"sendingDescription": "Désactivez pour mettre ce canal en pause et conserver ses paramètres.",
"sendingLabel": "Envoi",
"setUp": "Configurer",
"setUpWorkspace": "Configurer les notifications pour {{workspaceName}}",
"someProjects": "Seulement certains",
"statusOn": "Activé",
"statusSending": "Actif",
"stopping": "Arrêt...",
"stopSending": "Arrêter l'envoi",
"stopSendingDescription": "Les notifications de cet espace de travail s'afficheront uniquement dans Kaneo.",
"stopSendingTitle": "Arrêter l'envoi depuis {{workspaceName}} ?",
"workspacesDescription": "Choisissez quels espaces de travail et projets peuvent utiliser vos canaux.",
"workspacesTitle": "Espaces de travail"
},
"preferencesPage": {
"title": "Préférences",
"subtitle": "L'apparence et le fonctionnement de Kaneo pour vous.",
"appearanceTitle": "Général",
"theme": "Thème",
"selectTheme": "Sélectionnez un thème",
"themeLight": "Clair",
"themeDark": "Sombre",
"themeSystem": "Suivre le système",
"language": "Langue",
"selectLanguage": "Sélectionnez une langue",
"firstDayOfWeek": "Premier jour de la semaine",
"firstDayOfWeekDescription": "Utilisé par les calendriers et les sélecteurs de date.",
"selectFirstDayOfWeek": "Sélectionnez le premier jour",
"weekStartsOnSunday": "Dimanche",
"weekStartsOnMonday": "Lundi",
"weekStartsOnSaturday": "Samedi",
"defaultView": "Vue par défaut",
"defaultViewDescription": "La vue dans laquelle s'ouvrent les projets.",
"selectViewMode": "Sélectionnez un mode d'affichage",
"board": "Tableau",
"list": "Liste",
"gantt": "Gantt",
"priorityIcons": "Icônes de priorité",
"priorityIconsDescription": "L'apparence de la priorité des tâches sur les cartes, les lignes et dans les menus.",
"priorityIconsMarks": "Repères",
"priorityIconsClassic": "Classiques",
"sidebarDefault": "Garder la barre latérale ouverte",
"sidebarDefaultDescription": "Démarrer avec la barre latérale déployée.",
"displayOptions": "Détails des tâches",
"displayOptionsDescription": "Ce qui s'affiche sur les cartes et les lignes de vos tableaux et listes.",
"taskNumbers": "Numéros de tâches",
"assignees": "Assignés",
"dueDates": "Dates d'échéance",
"labels": "Labels",
"priority": "Priorité",
"projectBackgrounds": "Arrière-plans des projets",
"projectBackgroundsDescription": "Afficher l'image définie par un projet derrière son tableau.",
"advancedTitle": "Avancé"
},
"managedProfile": {
"note": "Géré par votre organisation.",
"edit": "Modifier dans {{provider}}"
},
"developerPage": {
"pageTitle": "Clés API",
"title": "Clés API",
"subtitle": "Permettez aux scripts, à la CLI et aux clients MCP d'utiliser Kaneo en votre nom.",
"unnamedKey": "Sans nom",
"emptyDescription": "Créez une clé pour utiliser la CLI, un client MCP ou vos propres scripts.",
"emptyTitle": "Aucune clé API pour le moment",
"keysNote": "Une clé peut faire tout ce que vous pouvez faire. Supprimez les clés que vous n'utilisez plus.",
"keysTitle": "Clés",
"loadError": "Impossible de charger les clés API. Veuillez réessayer.",
"newKey": "Nouvelle clé"
},
"apiKey": {
"createdModal": {
"title": "Copiez votre clé",
"description": "Vous ne pourrez plus la voir après avoir fermé cette fenêtre.",
"copy": "Copier",
"copied": "Copié",
"done": "Terminé",
"copyError": "Impossible de copier la clé. Sélectionnez-la et copiez-la manuellement."
},
"table": {
"deleteConfirmTitle": "Supprimer “{{name}}” ?",
"deleteConfirmDescription": "Tout ce qui utilise cette clé cessera de fonctionner. Cette action ne peut pas être annulée.",
"delete": "Supprimer la clé",
"deleting": "Suppression…",
"toastDeleted": "Clé API supprimée",
"toastDeleteError": "Impossible de supprimer la clé API"
},
"createDialog": {
"title": "Nouvelle clé API",
"description": "La clé peut faire tout ce que vous pouvez faire.",
"nameLabel": "Nom",
"namePlaceholder": "Ma clé API",
"nameDescription": "Pour vous rappeler où elle est utilisée.",
"expirationLabel": "Expiration",
"expiration1d": "1 jour",
"expiration7d": "7 jours",
"expiration30d": "30 jours",
"expiration90d": "90 jours",
"expirationNever": "Jamais",
"create": "Créer la clé",
"creating": "Création…",
"failedCreate": "Impossible de créer la clé API",
"validation": {
"nameRequired": "Entrez un nom",
"nameShort": "Utilisez au moins 3 caractères"
}
},
"row": {
"actions": "Actions pour {{name}}",
"created": "Créée le {{date}}",
"expired": "Expirée le {{date}}",
"expiredBadge": "Expirée",
"expires": "Expire le {{date}}",
"neverExpires": "N'expire jamais"
}
},
"workspaceGeneral": {
"pageTitle": "Paramètres Généraux",
"title": "Général",
"subtitle": "Le nom de {{name}} et son propriétaire.",
"workspaceInfoTitle": "Espace de travail",
"nameLabel": "Nom",
"namePlaceholder": "Entrez le nom de l'espace de travail",
"descriptionLabel": "Description",
"descriptionPlaceholder": "Sur quoi travaille votre équipe ?",
"dangerZone": "Zone dangereuse",
"deleteWorkspace": "Supprimer l'espace de travail",
"deleteWorkspaceDescription": "Supprime définitivement {{name}}, ses projets et ses tâches.",
"deleteModalTitle": "Supprimer l'espace de travail ?",
"deleteModalDescription": "Cela supprime définitivement {{name}} ainsi que tous ses projets et toutes ses tâches. Cette action ne peut pas être annulée.",
"deleteModalConfirm": "Supprimer l'espace de travail",
"toastUpdateError": "Échec de la mise à jour de l'espace de travail",
"toastDeleted": "Espace de travail supprimé avec succès",
"toastDeleteError": "Échec de la suppression de l'espace de travail",
"validation": {
"nameRequired": "Le nom de l'espace de travail est requis",
"nameShort": "Le nom de l'espace de travail doit contenir au moins 2 caractères"
},
"transferOwnership": {
"toastSuccess": "Propriété transférée",
"toastError": "Échec du transfert de propriété",
"title": "Transférer la propriété",
"pickerLabel": "Nouveau propriétaire",
"noEligibleMembers": "Invitez au moins un autre membre avant de pouvoir transférer la propriété.",
"pickerHint": "Le nouveau propriétaire prend le relais. Vous conservez le rôle d'admin.",
"pickerPlaceholder": "Choisissez un membre",
"button": "Transférer",
"dialogTitle": "Transférer la propriété ?",
"dialogDescription": "{{name}} deviendra l'unique propriétaire de {{workspace}}. Vous conserverez l'accès admin mais perdrez les capacités réservées au propriétaire, comme supprimer l'espace de travail ou le transférer à nouveau.",
"transferring": "Transfert…",
"confirm": "Transférer la propriété"
},
"ownershipSubtitle": "Seul le propriétaire voit cette section.",
"ownershipTitle": "Propriété"
},
"projectGeneral": {
"pageTitle": "Paramètres du projet",
"title": "Général",
"subtitle": "Le nom, la clé et l'apparence de {{name}}.",
"projectInfoTitle": "Projet",
"iconLabel": "Icône",
"iconHint": "Affichée dans la barre latérale et les listes de projets.",
"pickIconTitle": "Choisir une icône",
"searchIconsPlaceholder": "Rechercher des icônes...",
"projectNameLabel": "Nom",
"projectNamePlaceholder": "Nom du projet",
"keyLabel": "Clé",
"keyHint": "Préfixe de chaque identifiant de tâche, comme {{slug}}-123.",
"keyPlaceholder": "PRO",
"descriptionLabel": "Description",
"descriptionPlaceholder": "À quoi sert ce projet ?",
"dangerZone": "Zone dangereuse",
"deleteProject": "Supprimer le projet",
"deleteProjectDescription": "Supprime définitivement {{name}} et toutes ses tâches.",
"deleteModalTitle": "Supprimer le projet ?",
"deleteModalDescription": "Cela supprime définitivement {{name}} et toutes ses tâches. Cette action ne peut pas être annulée.",
"deleteModalConfirm": "Supprimer le projet",
"toastUpdateError": "Échec de la mise à jour du projet",
"toastDeleted": "Projet supprimé avec succès",
"toastDeleteError": "Échec de la suppression du projet",
"validation": {
"nameRequired": "Le nom du projet est requis",
"keyRequired": "La clé est requise",
"keyMax": "La clé doit contenir au plus 8 caractères",
"iconRequired": "L'icône est requise"
},
"backgroundHint": "Une image derrière le tableau. Chacun peut désactiver ces images.",
"backgroundUnavailable": "Le téléversement d'images n'est pas configuré sur cette instance.",
"backgroundLabel": "Arrière-plan du tableau",
"backgroundRemove": "Supprimer l'image",
"backgroundRemoveError": "Échec de la suppression de l'arrière-plan du projet",
"backgroundRemoveSuccess": "Arrière-plan du projet supprimé",
"backgroundReplace": "Remplacer",
"backgroundUpload": "Téléverser",
"backgroundUploadError": "Échec de la mise à jour de l'arrière-plan du projet",
"backgroundUploadSuccess": "Arrière-plan du projet mis à jour",
"moveModalConfirm": "Déplacer le projet",
"moveProject": "Déplacer vers un autre espace de travail",
"moveProjectAction": "Déplacer",
"moveProjectDescription": "Les tâches, colonnes et labels sont déplacés avec lui.",
"moveProjectPlaceholder": "Choisissez un espace de travail",
"toastMoved": "Projet déplacé avec succès",
"toastMovedWithUnassigned": "Projet déplacé avec succès. {{taskCount}} tâche(s) ont été désassignées.",
"toastMoveError": "Échec du déplacement du projet",
"moveTargetsError": "Impossible de vérifier vers quels espaces de travail vous pouvez déplacer ce projet. Rechargez la page pour réessayer.",
"moveDialogDescription": "Les tâches assignées à des personnes extérieures au nouvel espace de travail seront désassignées, et les abonnements aux notifications de ce projet seront supprimés.",
"moveDialogTitle": "Déplacer vers un autre espace de travail ?",
"moveTargetLabel": "Espace de travail",
"moving": "Déplacement...",
"tasksTitle": "Tâches"
},
"projectIntegrations": {
"pageTitle": "Intégrations",
"title": "Intégrations",
"subtitle": "Connectez ce projet à votre hébergeur de code et à la messagerie de votre équipe.",
"githubSectionTitle": "Intégration GitHub",
"githubSectionSubtitle": "Synchronisez les tâches avec les problèmes GitHub et activez la synchronisation bidirectionnelle.",
"giteaSectionTitle": "Intégration Gitea",
"giteaSectionSubtitle": "Synchronisez les tâches avec une instance Gitea auto-hébergée (issues, PRs, webhooks).",
"telegramSectionTitle": "Intégration Telegram",
"telegramSectionSubtitle": "Envoyez les mises à jour des tâches du projet dans un chat ou un sujet Telegram avec un bot.",
"discordSectionTitle": "Intégration Discord",
"discordSectionSubtitle": "Envoyez les mises à jour des tâches du projet dans un canal Discord via un webhook.",
"genericWebhookSectionTitle": "Webhooks",
"genericWebhookSectionSubtitle": "Envoyez les événements des tâches du projet vers n'importe quel point de terminaison HTTP au format JSON.",
"slackSectionTitle": "Intégration Slack",
"slackSectionSubtitle": "Envoyez les mises à jour des tâches du projet dans un canal Slack via un webhook entrant.",
"mattermostSectionSubtitle": "Envoyez les mises à jour des tâches du projet dans un canal Mattermost via un webhook entrant.",
"mattermostSectionTitle": "Intégration Mattermost",
"gitlabSectionSubtitle": "Synchronisez les tâches avec GitLab.com ou une instance autogérée.",
"gitlabSectionTitle": "Intégration GitLab",
"codeHostingTitle": "Hébergement de code",
"chatTitle": "Messagerie et webhooks",
"statusConnected": "Connecté",
"statusPaused": "En pause",
"connect": "Connecter",
"configure": "Configurer",
"done": "Terminé",
"turnedOffByAdmin": "Turned off by an administrator"
},
"projectVisibility": {
"pageTitle": "Visibilité du projet",
"title": "Visibilité",
"subtitle": "Choisissez qui peut voir {{project}} en dehors de {{workspace}}.",
"sectionTitle": "Accès",
"publicAccess": "Lien public",
"publicAccessHint": "Toute personne disposant du lien peut voir le tableau et ses tâches, sans rien pouvoir modifier.",
"publicUrl": "URL publique",
"copy": "Copier le lien",
"toastUpdated": "Visibilité mise à jour",
"toastUpdateError": "Échec de la mise à jour de la visibilité",
"always": "Toujours",
"copied": "Copié",
"copyError": "Impossible de copier le lien",
"membersDescription": "Toutes les personnes de l'espace de travail, selon ce que leur rôle autorise.",
"membersTitle": "Membres de {{workspace}}",
"offNote": "Désactiver le lien public le rend immédiatement inutilisable.",
"on": "Activé",
"openPublicPage": "Ouvrir la page publique",
"thisWorkspace": "cet espace de travail"
},
"projectWorkflow": {
"pageTitle": "Paramètres du flux de travail",
"title": "Flux de travail",
"subtitle": "Les colonnes de votre tableau, et ce qui déplace les tâches de l'une à l'autre.",
"columnsTitle": "Colonnes",
"columnsDescription": "Faites glisser pour réorganiser. Les tâches d'une colonne terminée sont comptées comme achevées.",
"automationTitle": "Automatisations",
"automationDescription": "Déplacez une tâche liée quand un événement se produit dans un dépôt connecté."
},
"projectSwitcher": {
"selectProject": "Sélectionner un projet",
"noProjects": "Aucun projet"
},
"columnEditor": {
"toastCreateError": "Échec de la création de la colonne",
"toastRenameError": "Échec de la mise à jour de la colonne",
"toastUpdateError": "Échec de la mise à jour de la colonne",
"toastDeleteError": "Échec de la suppression de la colonne",
"pickIconTitle": "Choisir l'icône de la colonne",
"searchIconsPlaceholder": "Rechercher des icônes...",
"markDoneAria": "Marquer {{name}} comme colonne terminée",
"newColumnPlaceholder": "Nom de la colonne",
"deleteAria": "Supprimer la colonne {{name}}",
"renameAria": "Renommer la colonne {{name}}",
"addColumn": "Ajouter une colonne",
"columnHeader": "Colonne",
"deleteConfirm": "Supprimer la colonne",
"deleteDescription": "Les colonnes qui contiennent encore des tâches ne peuvent pas être supprimées. Déplacez d'abord ces tâches.",
"deleteTitle": "Supprimer “{{name}}” ?",
"doneHeader": "Terminé",
"dragAria": "Réorganiser {{name}}",
"reorderError": "Échec de la réorganisation des colonnes"
},
"githubIntegration": {
"toast": {
"verifyError": "Échec de la vérification de l'installation GitHub",
"installAppFirst": "Veuillez installer l'application GitHub sur ce dépôt en premier",
"missingPermsDetail": "L'application GitHub manque des permissions requises: {{list}}. Veuillez mettre à jour les permissions de l'application.",
"updated": "Intégration GitHub mise à jour avec succès",
"updateError": "Échec de la mise à jour de l'intégration GitHub",
"removed": "Intégration GitHub supprimée avec succès",
"removeError": "Échec de la suppression de l'intégration GitHub",
"issuesImported": "Problèmes importés avec succès",
"importError": "Échec de l'importation des problèmes",
"commentOnEnabled": "Kaneo laissera un commentaire avec un lien de tâche sur les nouveaux problèmes",
"commentOnDisabled": "Les commentaires de lien de tâche sur les nouveaux problèmes sont désactivés",
"settingsUpdateError": "Échec de la mise à jour de l'intégration GitHub"
},
"commentTaskLinkTitle": "Commenter avec un lien Kaneo sur les nouvelles issues",
"commentTaskLinkHint": "Pour que les personnes sur GitHub puissent accéder directement à la tâche.",
"updatePermissions": "Mettre à jour les permissions",
"installGithubApp": "Installer l'application GitHub",
"importSectionHint": "Importez les issues ouvertes du dépôt en tant que tâches.",
"importDisabledHint": "Reconnectez le dépôt pour activer l'importation.",
"accountVerificationHint": "Connectez votre compte GitHub pour vérifier que vous administrez ce dépôt.",
"enableGithubSignInHint": "Demandez à l’administrateur de votre instance d’activer la connexion avec GitHub.",
"reverifyHint": "Reconnectez ce dépôt pour vérifier les accès et reprendre la synchronisation.",
"resumeImport": "Reprendre l'importation",
"importPaused": "La progression de cette importation a été enregistrée. Vous pouvez la reprendre.",
"importSummary": "Créés : {{imported}} · Mis à jour : {{updated}} · Ignorés : {{skipped}}",
"chooseRepositoryDescription": "Ses issues et pull requests seront liées aux tâches de ce projet.",
"linkAccountDescription": "Prouve que vous pouvez administrer le dépôt.",
"linkAccountTitle": "Lier votre compte GitHub",
"linked": "Lié",
"linkGithub": "Lier GitHub",
"verifyMissingPermissions": "Il manque des permissions à la Kaneo GitHub App : {{list}}.",
"verifyNotInstalled": "La Kaneo GitHub App n'est pas installée sur ce dépôt.",
"verifyReady": "La Kaneo GitHub App est installée avec les permissions nécessaires.",
"workflowHint": "Déplacez les tâches à l'ouverture ou à la fusion des pull requests dans",
"workflowLink": "Flux de travail"
},
"giteaIntegration": {
"validation": {
"baseUrlRequired": "L'URL de base Gitea est requise",
"baseUrlInvalid": "Entrez une URL valide (ex. https://gitea.example.com)"
},
"toast": {
"verifyError": "Échec de la vérification de l'accès Gitea",
"verifyFirst": "Échec de la vérification de l'accès. Vérifiez l'URL, le jeton et le dépôt",
"updated": "Intégration Gitea enregistrée",
"updateError": "Échec de l'enregistrement de l'intégration Gitea",
"removed": "Intégration Gitea supprimée",
"removeError": "Échec de la suppression de l'intégration Gitea",
"issuesImported": "Issues importées avec succès",
"importError": "Échec de l'importation des issues",
"commentOnEnabled": "Kaneo commentera les nouvelles issues avec un lien vers la tâche",
"commentOnDisabled": "Les commentaires de lien de tâche sur les nouvelles issues sont désactivés",
"settingsUpdateError": "Échec de la mise à jour de l'intégration Gitea"
},
"commentTaskLinkTitle": "Commenter avec un lien Kaneo sur les nouvelles issues",
"commentTaskLinkHint": "Pour que les personnes sur Gitea puissent accéder directement à la tâche.",
"webhookHint": "Ajoutez ce webhook dans les paramètres du dépôt pour que les modifications remontent dans Kaneo.",
"baseUrlLabel": "URL de Gitea",
"tokenLabel": "Jeton d'accès personnel",
"tokenPlaceholder": "Collez le jeton",
"tokenPlaceholderUpdate": "Collez un nouveau jeton pour le remplacer",
"importSectionHint": "Importez les issues et pull requests ouvertes en tant que tâches.",
"importDisabledHint": "L'importation nécessite un accès vérifié. Vérifiez l'état du jeton ci-dessus.",
"browseModalHint": "Dépôts accessibles avec votre jeton.",
"browseNeedsCredentials": "Entrez l'URL Gitea et un jeton pour parcourir les dépôts.",
"browseEmpty": "Ce jeton n'a accès à aucun dépôt.",
"chooseRepositoryDescription": "Entrez owner/name ou choisissez-en un dans la liste.",
"webhookEvents": "Activez les événements push, pull request, issue, commentaire d'issue et create."
},
"slackIntegration": {
"validation": {
"webhookInvalid": "Entrez une URL de webhook Slack valide"
},
"toast": {
"saved": "Intégration Slack enregistrée avec succès",
"saveError": "Échec de l'enregistrement de l'intégration Slack",
"enabled": "Notifications Slack activées",
"disabled": "Notifications Slack en pause",
"updateError": "Échec de la mise à jour de l'intégration Slack",
"removed": "Intégration Slack supprimée avec succès",
"removeError": "Échec de la suppression de l'intégration Slack"
},
"webhookPlaceholder": "https://hooks.slack.com/services/...",
"webhookHint": "Créez un webhook entrant dans Slack et collez-le ici.",
"connect": "Connecter Slack",
"update": "Mettre à jour Slack"
},
"discordIntegration": {
"validation": {
"webhookInvalid": "Entrez une URL de webhook Discord valide"
},
"toast": {
"saved": "Intégration Discord enregistrée avec succès",
"saveError": "Échec de l'enregistrement de l'intégration Discord",
"enabled": "Notifications Discord activées",
"disabled": "Notifications Discord en pause",
"updateError": "Échec de la mise à jour de l'intégration Discord",
"removed": "Intégration Discord supprimée avec succès",
"removeError": "Échec de la suppression de l'intégration Discord"
},
"webhookPlaceholder": "https://discord.com/api/webhooks/...",
"webhookHint": "Créez un webhook de canal dans Discord et collez-le ici.",
"connect": "Connecter Discord",
"update": "Mettre à jour Discord"
},
"genericWebhookIntegration": {
"validation": {
"webhookInvalid": "Entrez une URL de webhook valide",
"leadTimeRange": "Choisissez une durée entre 5 minutes et 720 heures."
},
"toast": {
"saved": "Intégration webhook générique enregistrée avec succès",
"saveError": "Échec de l'enregistrement de l'intégration webhook générique",
"enabled": "Notifications webhook génériques activées",
"disabled": "Notifications webhook génériques en pause",
"updateError": "Échec de la mise à jour de l'intégration webhook générique",
"removed": "Intégration webhook générique supprimée avec succès",
"removeError": "Échec de la suppression de l'intégration webhook générique"
},
"webhookLabel": "URL du point de terminaison",
"webhookPlaceholder": "https://example.com/webhooks/kaneo",
"webhookHint": "Kaneo envoie des requêtes POST avec une charge JSON pour chaque événement activé.",
"secretLabel": "Secret de signature",
"secretPlaceholder": "Secret partagé",
"secretHint": "Kaneo signe chaque requête avec ce secret et envoie le digest dans l'en-tête X-Kaneo-Signature.",
"secretHintConfigured": "Secret actuel : {{secret}}. Collez-en un nouveau pour le remplacer.",
"eventsTitle": "Envoyer quand",
"events": {
"taskCreated": "Tâche créée",
"taskStatusChanged": "Statut modifié",
"taskPriorityChanged": "Priorité modifiée",
"taskTitleChanged": "Titre modifié",
"taskDescriptionChanged": "Description modifiée",
"taskCommentCreated": "Nouveau commentaire",
"taskDeleted": "Tâche supprimée",
"taskMoved": "Tâche déplacée",
"taskDueDateChanged": "Date d'échéance modifiée",
"taskAssigneeChanged": "Assigné modifié",
"taskUnassigned": "Tâche désassignée",
"dueDateReminder": "Rappel d'échéance"
},
"connect": "Connecter le webhook",
"reminderLeadTimeLabel": "Heures avant l'échéance d'une tâche",
"activeTitle": "Envoi des événements",
"disconnectDescription": "Kaneo cessera d'envoyer des événements et supprimera le point de terminaison et le secret enregistrés.",
"disconnectTitle": "Déconnecter le webhook ?",
"reminderLeadTimeAfter": "heures avant l'échéance d'une tâche",
"reminderLeadTimeBefore": "Envoyer les rappels"
},
"telegramIntegration": {
"validation": {
"botTokenInvalid": "Entrez un jeton de bot Telegram valide",
"chatIdRequired": "L'identifiant du chat est requis",
"threadIdInvalid": "Entrez un identifiant de sujet valide"
},
"toast": {
"saved": "Intégration Telegram enregistrée avec succès",
"saveError": "Échec de l'enregistrement de l'intégration Telegram",
"enabled": "Notifications Telegram activées",
"disabled": "Notifications Telegram mises en pause",
"updateError": "Échec de la mise à jour de l'intégration Telegram",
"removed": "Intégration Telegram supprimée avec succès",
"removeError": "Échec de la suppression de l'intégration Telegram"
},
"botTokenLabel": "Jeton du bot",
"botTokenPlaceholder": "123456789:AAExampleBotToken",
"botTokenHint": "Créez un bot avec BotFather et collez son jeton ici.",
"botTokenHintConfigured": "Jeton actuel : {{token}}",
"chatIdLabel": "Identifiant du chat",
"chatIdPlaceholder": "-1001234567890 ou @team_updates",
"threadIdLabel": "Identifiant du sujet",
"threadIdPlaceholder": "Pour les sujets de forum",
"chatLabelLabel": "Nom du chat",
"chatLabelPlaceholder": "Mises à jour engineering",
"connect": "Connecter Telegram",
"botTokenSavedPlaceholder": "Enregistré. Collez un nouveau jeton pour le remplacer.",
"loadError": "Impossible de charger les paramètres Telegram."
},
"repositoryBrowser": {
"title": "Choisissez un dépôt",
"description": "Dépôts auxquels la Kaneo GitHub App a accès.",
"searchPlaceholder": "Rechercher des dépôts",
"loadError": "Impossible de charger les dépôts.",
"tryAgain": "Réessayer",
"emptyTitle": "Aucun dépôt pour le moment",
"emptyHint": "Installez l'application GitHub sur vos dépôts pour les voir ici.",
"installGithubApp": "Installer l'application GitHub",
"noSearchMatchTitle": "Aucun dépôt correspondant",
"noSearchMatchHint": "Essayez un autre nom ou effacez la recherche.",
"emptyPageHint": "Aucun sur cette page. Chargez-en plus pour continuer à chercher.",
"loadMore": "Charger plus",
"manageAccess": "Gérer l'accès de l'application",
"missingOne": "Il en manque un ?",
"searching": "Recherche…",
"updated": "Mis à jour {{time}}",
"useRepository": "Utiliser ce dépôt"
},
"tasksImportExport": {
"exportTasks": "Exporter les tâches",
"importTasks": "Importer des tâches",
"dialogTitle": "Importer des tâches",
"dialogDescription": "Téléversez un fichier JSON contenant les tâches à importer dans ce projet.",
"expectedFormat": "Format attendu:",
"dropHint": "Glissez et déposez votre fichier JSON ici",
"selectFile": "Sélectionner un fichier",
"exporting": "Exportation des tâches...",
"exportSuccess": "Tâches exportées avec succès",
"exportError": "Échec de l'exportation des tâches",
"importing": "Importation des tâches...",
"importSuccess": "Importation réussie de {{count}} tâches",
"importPartialError": "Échec de l'importation de {{count}} tâches",
"importError": "Échec de l'importation des tâches",
"invalidFormat": "Format de fichier d'importation invalide",
"noFileDropped": "Aucun fichier n'a été déposé",
"notJsonFile": "Veuillez importer un fichier JSON",
"export": "Exporter",
"exportDescription": "Téléchargez toutes les tâches de ce projet dans un fichier.",
"import": "Importer",
"importDescription": "Ajoutez des tâches à partir d'un fichier exporté précédemment."
},
"workflowEditor": {
"toastError": "Échec de la mise à jour de la règle",
"events": {
"branch_push": "Branche poussée",
"pr_opened": "Pull request ouverte",
"pr_merged": "Pull request fusionnée",
"issue_opened": "Issue ouverte",
"issue_closed": "Issue fermée"
},
"connectMore": "Connectez {{providers}} dans Intégrations pour les automatiser aussi.",
"dontMove": "Ne pas déplacer",
"emptyDescription": "Les automatisations nécessitent un dépôt GitHub, Gitea ou GitLab connecté.",
"emptyTitle": "Aucun dépôt connecté",
"openIntegrations": "Ouvrir les intégrations"
},
"externalLinks": {
"resources": "Ressources",
"issue": "Problème",
"branch": "Branche",
"merged": "Fusionné",
"draft": "Brouillon",
"open": "Ouvert",
"adding": "Ajout...",
"addResource": "Ajouter une ressource",
"cancel": "Annuler",
"empty": "Aucune ressource liée à cette tâche.",
"titleOptional": "Titre (optionnel)",
"url": "URL",
"remove": "Supprimer {{title}}",
"removeError": "Échec de la suppression du lien de la ressource."
},
"workspaceRoles": {
"pageTitle": "Rôles",
"title": "Rôles",
"subtitle": "Définissez les actions que les membres peuvent effectuer dans {{workspaceName}}.",
"thisWorkspace": "cet espace de travail",
"noAccess": "Vous devez disposer de permissions admin ou propriétaire pour gérer les rôles de l'espace de travail.",
"sectionTitle": "Rôles de l'espace de travail",
"sectionSubtitle": "Modifiez les rôles par défaut ou ajoutez-en un sur mesure. Les membres conservent le nom de leur rôle assigné après modification.",
"newRole": "Nouveau rôle",
"loading": "Chargement…",
"loadError": "Échec du chargement des rôles.",
"emptyTitle": "Aucun rôle pour le moment",
"emptyDescription": "Les rôles par défaut apparaîtront ici une fois initialisés pour cet espace de travail.",
"defaultBadge": "Par défaut",
"permissionCount_one": "{{count}} permission",
"permissionCount_other": "{{count}} permissions",
"nameLabel": "Nom",
"nameHint": "En minuscules. Ne peut pas être modifié ultérieurement.",
"namePlaceholder": "ex. relecteur",
"discard": "Abandonner",
"createRole": "Créer le rôle",
"deleteRole": "Supprimer le rôle",
"defaultRoleHelp": "Rôle par défaut : le nom est réservé et la ligne ne peut pas être supprimée.",
"unsavedChanges": "Vous avez des modifications non enregistrées",
"allChangesSaved": "Toutes les modifications sont enregistrées",
"saveChanges": "Enregistrer les modifications",
"defaultRoleDescriptions": {
"viewer": "Peut voir et commenter les tâches.",
"member": "Peut créer et gérer les tâches et les projets.",
"admin": "A un accès complet à l'espace de travail."
},
"resources": {
"project": "Projets",
"task": "Tâches",
"label": "Labels",
"workspace": "Espace de travail",
"organization": "Administration de l'espace de travail",
"member": "Membres",
"invitation": "Invitations",
"team": "Équipes",
"ac": "Rôles et permissions"
},
"permissions": {
"project": {
"create": {
"label": "Créer",
"description": "Peut créer de nouveaux projets"
},
"read": {
"label": "Lire",
"description": "Peut voir les projets"
},
"update": {
"label": "Modifier",
"description": "Peut modifier les paramètres du projet"
},
"delete": {
"label": "Supprimer",
"description": "Peut supprimer des projets"
},
"share": {
"label": "Partager",
"description": "Peut partager des projets"
}
},
"task": {
"create": {
"label": "Créer",
"description": "Peut créer des tâches"
},
"read": {
"label": "Lire",
"description": "Peut voir les tâches"
},
"update": {
"label": "Modifier",
"description": "Peut modifier les tâches"
},
"delete": {
"label": "Supprimer",
"description": "Peut supprimer des tâches"
},
"assign": {
"label": "Assigner",
"description": "Peut assigner des tâches aux membres"
}
},
"label": {
"create": {
"label": "Créer",
"description": "Peut créer des labels"
},
"read": {
"label": "Lire",
"description": "Peut voir les labels"
},
"update": {
"label": "Modifier",
"description": "Peut modifier les labels"
},
"delete": {
"label": "Supprimer",
"description": "Peut supprimer des labels"
}
},
"workspace": {
"read": {
"label": "Lire",
"description": "Peut voir les paramètres de l'espace de travail"
},
"update": {
"label": "Modifier",
"description": "Peut mettre à jour les paramètres de l'espace de travail"
},
"delete": {
"label": "Supprimer",
"description": "Peut supprimer l'espace de travail"
},
"manage_settings": {
"label": "Gérer les paramètres",
"description": "Peut gérer les paramètres de l'espace de travail"
}
},
"organization": {
"update": {
"label": "Modifier l'administration de l'espace de travail",
"description": "Modifier les paramètres de l'espace de travail via le service de comptes."
},
"delete": {
"label": "Supprimer l'espace de travail",
"description": "Supprimer définitivement l'espace de travail via le service de comptes."
}
},
"member": {
"create": {
"label": "Ajouter des membres",
"description": "Ajouter des utilisateurs à cet espace de travail."
},
"update": {
"label": "Modifier les rôles des membres",
"description": "Modifier les rôles attribués aux membres de l'espace de travail."
},
"delete": {
"label": "Retirer des membres",
"description": "Retirer des utilisateurs de cet espace de travail."
}
},
"invitation": {
"create": {
"label": "Inviter des membres",
"description": "Envoyer des invitations à l'espace de travail."
},
"cancel": {
"label": "Annuler des invitations",
"description": "Révoquer les invitations à l'espace de travail en attente."
}
},
"team": {
"create": {
"label": "Créer des équipes",
"description": "Créer des équipes dans cet espace de travail."
},
"update": {
"label": "Modifier les équipes",
"description": "Modifier les équipes et leurs membres."
},
"delete": {
"label": "Supprimer des équipes",
"description": "Supprimer des équipes dans cet espace de travail."
}
},
"ac": {
"create": {
"label": "Créer des rôles",
"description": "Créer des rôles pour l'espace de travail et leur attribuer des permissions."
},
"read": {
"label": "Consulter les rôles",
"description": "Consulter les rôles de l'espace de travail et leurs permissions."
},
"update": {
"label": "Modifier les permissions des rôles",
"description": "Modifier les permissions des rôles, y compris l'accès administratif."
},
"delete": {
"label": "Supprimer des rôles",
"description": "Supprimer les rôles personnalisés de l'espace de travail."
}
}
},
"validation": {
"nameRequired": "Le nom du rôle est requis",
"nameExists": "Un rôle avec ce nom existe déjà",
"permissionRequired": "Au moins une permission doit être sélectionnée"
},
"toast": {
"created": "Rôle créé",
"createError": "Échec de la création du rôle",
"updated": "Rôle mis à jour",
"updateError": "Échec de la mise à jour du rôle",
"deleted": "Rôle supprimé",
"deleteError": "Échec de la suppression du rôle"
},
"deleteDialog": {
"title": "Supprimer le rôle",
"description": "Cela supprimera définitivement le rôle \"{{role}}\". Les membres assignés à ce rôle perdront ses permissions."
},
"permissionCount_many": "{{count}} permissions"
},
"workspaceLabels": {
"pageTitle": "Labels",
"title": "Labels",
"subtitle": "Les labels sont partagés par tous les projets de cet espace de travail.",
"createLabel": "Créer un label",
"editLabel": "Modifier le label",
"deleteLabel": "Supprimer le label",
"saveLabel": "Enregistrer",
"nameLabel": "Nom",
"namePlaceholder": "Nom du label",
"colorLabel": "Couleur",
"createDescription": "Les projets de cet espace de travail peuvent l'ajouter à leurs tâches.",
"editDescription": "Les modifications s'appliquent à toutes les tâches ayant ce label.",
"deleteConfirmTitle": "Supprimer “{{name}}” ?",
"deleteConfirmDescription": "Le label est retiré de toutes les tâches qui l'utilisent. Cette action ne peut pas être annulée.",
"createSuccess": "Label créé",
"updateSuccess": "Label mis à jour",
"deleteSuccess": "Label supprimé",
"createError": "Échec de la création du label",
"updateError": "Échec de la mise à jour du label",
"deleteError": "Échec de la suppression du label",
"nameRequired": "Le nom du label est requis",
"deletionPending": "Retrait des tâches…",
"resumeDeletion": "Reprendre la suppression",
"editNamed": "Modifier {{name}}",
"emptyDescription": "Ajoutez des labels pour trier et filtrer les tâches de tous les projets.",
"emptyTitle": "Aucun label pour le moment",
"loadError": "Impossible de charger les labels. Veuillez réessayer.",
"newLabel": "Nouveau label",
"preview": "Sur une tâche",
"previewPlaceholder": "Label",
"resume": "Reprendre",
"rowActions": "Actions pour {{name}}",
"sectionDescription": "Renommer un label ou changer sa couleur met à jour toutes les tâches qui l'utilisent.",
"sectionTitle": "Labels de l'espace de travail",
"subtitleWithWorkspace": "Les labels sont partagés par tous les projets de {{workspaceName}}."
},
"mattermostIntegration": {
"connect": "Connecter Mattermost",
"toast": {
"disabled": "Notifications Mattermost en pause",
"enabled": "Notifications Mattermost activées",
"removed": "Intégration Mattermost supprimée avec succès",
"removeError": "Échec de la suppression de l'intégration Mattermost",
"saved": "Intégration Mattermost enregistrée avec succès",
"saveError": "Échec de l'enregistrement de l'intégration Mattermost",
"updateError": "Échec de la mise à jour de l'intégration Mattermost"
},
"update": "Mettre à jour Mattermost",
"validation": {
"webhookInvalid": "Saisissez une URL de webhook Mattermost valide"
},
"webhookHint": "Créez un webhook entrant dans Mattermost et collez-le ici.",
"webhookPlaceholder": "https://your-mattermost-server.com/hooks/..."
},
"customFields": {
"createError": "Échec de la création du champ personnalisé.",
"createSuccess": "Champ personnalisé créé.",
"creating": "Création...",
"defaultLabel": "Par défaut",
"deleteError": "Échec de la suppression du champ personnalisé.",
"deleteSuccess": "Champ personnalisé supprimé.",
"deleting": "Suppression...",
"namePlaceholder": "Nom du champ",
"required": "Requis",
"types": {
"boolean": "Case à cocher",
"date": "Date",
"dropdown": "Sélecteur",
"number": "Nombre",
"text": "Texte",
"multiselect": "Sélecteur à choix multiples"
},
"clearDefault": "Effacer la valeur par défaut",
"moreOptions": "+{{hiddenCount}} de plus",
"reorderError": "Échec du réagencement des champs",
"selectPlaceholder": "Sélectionner une option",
"actionsAria": "Actions pour {{name}}",
"addOption": "Ajouter une option",
"allowSeveral": "Autoriser plusieurs choix",
"allowSeveralDescription": "Une tâche peut avoir plusieurs options.",
"checked": "Coché",
"createField": "Créer le champ",
"defaultDescription": "Les nouvelles tâches commencent avec cette valeur.",
"deleteConfirm": "Supprimer le champ",
"deleteDescription": "Le champ et sa valeur sont supprimés de toutes les tâches. Cette action ne peut pas être annulée.",
"deleteTitle": "Supprimer “{{name}}” ?",
"dialogDescription": "Toutes les tâches de {{project}} auront ce champ.",
"dialogDescriptionFallback": "Toutes les tâches de ce projet auront ce champ.",
"dragAria": "Réorganiser {{name}}",
"dragOptionAria": "Réorganiser {{option}}",
"edit": "Modifier",
"editTitle": "Modifier le champ",
"emptyDescription": "Suivez des informations comme la taille, le client ou la date de lancement sur chaque tâche.",
"emptyTitle": "Aucun champ personnalisé pour le moment",
"issues": {
"defaultRequired": "Les champs requis nécessitent une valeur par défaut.",
"moreOptionsRequired": "Ajoutez au moins deux options pour autoriser plusieurs choix.",
"optionsRequired": "Ajoutez au moins une option."
},
"nameLabel": "Nom",
"newTitle": "Nouveau champ",
"noDefault": "Aucune valeur par défaut",
"optionsLabel": "Options",
"removeOptionAria": "Retirer {{option}}",
"hideOptionAria": "Masquer {{option}} pour les nouvelles sélections",
"showOptionAria": "Proposer à nouveau {{option}} pour les nouvelles sélections",
"renameOptionAria": "Renommer {{option}}",
"requiredDescription": "Chaque tâche a toujours une valeur.",
"save": "Enregistrer",
"saving": "Enregistrement...",
"startsAs": "Valeur initiale : “{{value}}”",
"startsAt": "Valeur initiale : {{value}}",
"startsChecked": "Coché par défaut",
"startsOn": "Date initiale : {{date}}",
"startsUnchecked": "Non coché par défaut",
"typeLabel": "Type",
"typeLocked": "Le type ne peut plus être modifié après la création du champ.",
"unchecked": "Non coché",
"updateError": "Échec de l'enregistrement du champ personnalisé.",
"updateSuccess": "Champ personnalisé enregistré."
},
"administration": "Administration",
"adminUsers": {
"actions": {
"deactivate": "Désactiver",
"edit": "Modifier",
"open": "Actions pour {{name}}",
"reactivate": "Réactiver",
"markEmailVerified": "Mark email as verified",
"sendPasswordReset": "Send password reset link",
"sendVerification": "Resend verification email",
"security": "Sessions & API keys"
},
"clearSearch": "Effacer la recherche",
"columns": {
"actions": "Actions",
"joined": "Rejoint",
"role": "Rôle",
"status": "Statut",
"user": "Utilisateur",
"lastActive": "Last active"
},
"confirm": {
"deactivate": {
"action": "Désactiver le compte",
"description": "{{name}} sera déconnecté et ne pourra plus se connecter tant qu'un administrateur n'aura pas réactivé son compte.",
"title": "Désactiver ce compte ?"
},
"delete": {
"action": "Supprimer définitivement",
"description": "Cette action supprime définitivement {{name}}, ses sessions, ses appartenances aux espaces de travail et les données associées. Cette action est irréversible.",
"title": "Supprimer définitivement ce compte ?"
},
"reactivate": {
"action": "Réactiver le compte",
"description": "{{name}} pourra de nouveau se connecter et accéder à ses espaces de travail.",
"title": "Réactiver ce compte ?"
},
"working": "Traitement…",
"markEmailVerified": {
"action": "Mark as verified",
"title": "Mark this email as verified?"
},
"sendPasswordReset": {
"action": "Send link",
"title": "Send a password reset link?"
},
"sendVerification": {
"action": "Send email",
"title": "Resend the verification email?"
}
},
"directoryTitle": "Tous les utilisateurs",
"edit": {
"description": "Mettez à jour l'identité de ce compte et ses accès à l'ensemble de l'instance.",
"email": "Adresse e-mail",
"name": "Nom complet",
"role": "Rôle global",
"save": "Enregistrer les modifications",
"saving": "Enregistrement…",
"selfRoleHint": "Vous ne pouvez pas modifier votre propre rôle global.",
"title": "Modifier l'utilisateur"
},
"emptyDescription": "Essayez un autre nom ou une autre adresse e-mail.",
"emptyTitle": "Aucun utilisateur trouvé",
"loadError": "Impossible de charger les utilisateurs.",
"next": "Suivant",
"pagination": "Page {{current}} sur {{total}}",
"previous": "Précédent",
"refreshing": "Actualisation des utilisateurs",
"retry": "Réessayer",
"roles": {
"admin": "Administrateur",
"user": "Utilisateur"
},
"searchCount_many": "{{count}} utilisateurs correspondants",
"searchCount_one": "{{count}} utilisateur correspondant",
"searchCount_other": "{{count}} utilisateurs correspondants",
"searchLabel": "Rechercher des utilisateurs",
"searchPlaceholder": "Rechercher par nom ou email",
"status": {
"active": "Actif",
"deactivated": "Désactivé"
},
"subtitle": "Toutes les personnes ayant un compte sur cette instance Kaneo.",
"title": "Utilisateurs",
"toast": {
"actionError": "Échec de la mise à jour du statut de l'utilisateur",
"deactivated": "Utilisateur désactivé",
"deleted": "Utilisateur supprimé",
"reactivated": "Utilisateur réactivé",
"updated": "Utilisateur mis à jour",
"updateError": "Échec de la mise à jour de l'utilisateur",
"avatarChanged": "Profile picture updated",
"avatarError": "Failed to update the profile picture",
"avatarRemoved": "Profile picture removed",
"createdForSso": "User created for single sign-on.",
"createdLinkFailed": "User created. Password email failed; retry “Send password reset link”.",
"createdLinkSent": "User created. Password link sent to {{email}}.",
"createdNoSmtp": "User created. Set SMTP_HOST to send a password link.",
"createError": "Failed to create user",
"emailError": "The email could not be sent",
"emailVerified": "Email marked as verified",
"passwordResetSent": "Password reset link sent to {{email}}",
"verificationSent": "Verification email sent to {{email}}"
},
"you": "Vous",
"create": {
"creating": "Creating…",
"open": "Create user",
"submit": "Create user",
"title": "Create user",
"nameRequired": "Enter a name",
"hintNoEmail": "Set SMTP_HOST to send password links."
},
"details": {
"emailStatus": "Email",
"methods": {
"password": "Password"
},
"noSignInMethods": "No password or linked account yet",
"notVerified": "Not verified",
"removeAvatar": "Remove",
"signInMethods": "Sign-in methods",
"uploadAvatar": "Upload",
"verified": "Verified"
},
"filters": {
"anyEmail": "Any email",
"anyRole": "Any role",
"anyStatus": "Any status",
"clear": "Clear filters",
"email": "Email verification",
"label": "Filter users",
"role": "Role",
"status": "Status",
"unverified": "Unverified email",
"verified": "Verified email"
},
"never": "Never",
"unverified": "Unverified",
"security": {
"apiKeysEmpty": "No API keys.",
"apiKeysLoadError": "Couldn't load API keys.",
"apiKeysTitle": "API keys",
"disabled": "Disabled",
"lastUsed": "Last used {{time}}",
"neverUsed": "Never used",
"revokeAll": "Sign out everywhere",
"revokeAllConfirmDescription": "They'll be signed out everywhere right away.",
"revokeAllConfirmTitle": "Sign {{name}} out everywhere?",
"revokeAllSelfDescription": "Your other sessions will be signed out right away.",
"revokeKey": "Revoke",
"revokeKeyConfirmDescription": "Requests using this key will fail right away.",
"revokeKeyConfirmTitle": "Revoke {{name}}?",
"revokeKeyLabel": "Revoke {{name}}",
"revokingKey": "Revoking...",
"sessionsEmpty": "Not signed in anywhere.",
"sessionsTitle": "Sessions",
"title": "Sessions & API keys: {{name}}",
"toastKeyRevoked": "API key revoked.",
"toastKeyRevokeError": "Couldn't revoke the API key.",
"toastRevokedAll": "Sessions signed out."
}
},
"security": "Sécurité",
"securityPage": {
"confirmPassword": "Confirmer le nouveau mot de passe",
"confirmPasswordPlaceholder": "Saisissez à nouveau votre nouveau mot de passe",
"currentPassword": "Mot de passe actuel",
"currentPasswordPlaceholder": "Saisissez votre mot de passe actuel",
"newPassword": "Nouveau mot de passe",
"newPasswordPlaceholder": "Saisissez un nouveau mot de passe",
"noPassword": {
"description": "Votre compte utilise une autre méthode de connexion. Il n'y a donc aucun mot de passe à modifier.",
"title": "La modification du mot de passe est indisponible"
},
"pageTitle": "Sécurité",
"sectionTitle": "Connexion",
"submit": "Changer le mot de passe",
"submitting": "Modification...",
"subtitle": "Comment vous vous connectez à Kaneo.",
"title": "Sécurité",
"updateError": "Échec de la mise à jour du mot de passe.",
"updateSuccess": "Mot de passe mis à jour.",
"validation": {
"confirmRequired": "Confirmez votre nouveau mot de passe.",
"currentRequired": "Saisissez votre mot de passe actuel.",
"mismatch": "Les mots de passe ne correspondent pas.",
"tooShort": "Le nouveau mot de passe doit contenir au moins 8 caractères.",
"sameAsCurrent": "Le nouveau mot de passe doit être différent de votre mot de passe actuel."
},
"changePassword": "Changer le mot de passe",
"dialogDescription": "Au moins 8 caractères, différent du mot de passe actuel.",
"dialogTitle": "Changer le mot de passe",
"passwordHint": "Utilisez au moins 8 caractères et un mot de passe que vous n'utilisez nulle part ailleurs.",
"passwordTitle": "Mot de passe",
"sessions": {
"revokeOthers": "Sign out other sessions",
"revokeOthersConfirmDescription": "Your other sessions will be signed out right away.",
"revokeOthersConfirmTitle": "Sign out all other sessions?",
"title": "Active sessions",
"toastRevokedOthers": "Other sessions signed out."
}
},
"gitlabIntegration": {
"baseUrlLabel": "URL de GitLab",
"browseModalHint": "Projets dont votre jeton est membre.",
"browseNeedsCredentials": "Entrez l'URL GitLab et un jeton pour parcourir les projets.",
"commentTaskLinkHint": "Pour que les personnes sur GitLab puissent accéder directement à la tâche.",
"commentTaskLinkTitle": "Publier un lien Kaneo en commentaire sur les tickets ouverts dans GitLab",
"importSectionHint": "Importez les issues et merge requests ouvertes en tant que tâches.",
"openInGitlab": "Ouvrir {{project}} dans GitLab",
"projectPathLabel": "Chemin du projet",
"searchProjects": "Rechercher des projets",
"toast": {
"commentOnDisabled": "Les commentaires avec un lien vers la tâche sont désactivés pour les tickets ouverts dans GitLab",
"commentOnEnabled": "Kaneo publiera un commentaire avec un lien vers la tâche sur les tickets ouverts dans GitLab",
"importError": "Échec de l'importation des tickets",
"issuesImported": "Tickets importés avec succès",
"removed": "Intégration GitLab supprimée",
"removeError": "Échec de la suppression de l'intégration GitLab",
"settingsUpdateError": "Échec de la mise à jour de l'intégration GitLab",
"updated": "Intégration GitLab enregistrée",
"updateError": "Échec de l'enregistrement de l'intégration GitLab",
"verifyError": "Échec de la vérification de l'accès à GitLab",
"verifyFirst": "Échec de la vérification de l'accès. Vérifiez l'URL, le jeton et le chemin du projet"
},
"tokenLabel": "Jeton d'accès",
"tokenPlaceholder": "Collez le jeton",
"tokenPlaceholderUpdate": "Collez un nouveau jeton pour le remplacer",
"tokenTypeBearer": "Jeton OAuth2",
"tokenTypeLabel": "Type de jeton",
"tokenTypePrivate": "Jeton d'accès personnel, de projet ou de groupe",
"validation": {
"baseUrlInvalid": "Saisissez une URL valide (par ex. https://gitlab.com)",
"baseUrlRequired": "L'URL de base de GitLab est requise",
"pathInvalid": "Saisissez le chemin complet, par ex. groupe/projet"
},
"webhookHint": "Ajoutez ce webhook dans les paramètres du projet pour que les modifications remontent dans Kaneo.",
"loadProjectsError": "Impossible de charger les projets.",
"importPermissionHint": "L'importation nécessite la permission de créer et de mettre à jour des tâches.",
"browseEmpty": "Ce jeton n'est membre d'aucun projet.",
"chooseProjectDescription": "Entrez son chemin ou choisissez-en un dans la liste.",
"noSearchMatchTitle": "Aucun projet correspondant",
"useProject": "Utiliser ce projet",
"webhookEvents": "Activez les événements push, issue, commentaire et merge request."
},
"calendarFeeds": {
"title": "Flux de calendrier",
"subtitle": "Abonnez-vous aux tâches planifiées du projet dans votre application de calendrier.",
"labels": "Inclure uniquement les labels",
"selectLabels": "Ajouter un label",
"noLabels": "Aucun label trouvé.",
"timeZoneHint": "Les dates sur une journée entière utilisent le fuseau {{timeZone}}.",
"accessHint": "Toute personne disposant d'un lien de flux peut consulter les titres, descriptions et dates des tâches correspondantes. Révoquez un lien pour bloquer les accès futurs.",
"create": "Créer un flux",
"creating": "Création…",
"created": "Flux de calendrier créé.",
"createError": "Impossible de créer le flux de calendrier.",
"activeFeeds": "Flux",
"allScheduledTasks": "Toutes les tâches planifiées",
"subscribeHint": "Ajoutez un lien à votre application de calendrier en tant qu'abonnement. Les mises à jour apparaissent quand l'application actualise le flux.",
"copy": "Copier le lien",
"copyError": "Impossible de copier le lien. Sélectionnez l'URL et copiez-la manuellement.",
"revoke": "Révoquer",
"revoked": "Flux de calendrier révoqué.",
"revokeError": "Impossible de révoquer le flux de calendrier.",
"loadError": "Impossible de charger les flux de calendrier ou les labels. Veuillez réessayer.",
"deletedLabel": "Label supprimé",
"permissionRequired": "Vous devez avoir la permission de partager le projet pour gérer les flux de calendrier.",
"copiedLabel": "Copié",
"dialogDescription": "Les tâches ayant une date de début ou d'échéance apparaissent dans le flux.",
"dialogTitle": "Nouveau flux de calendrier",
"emptyDescription": "Créez un flux pour voir les tâches planifiées dans votre application de calendrier.",
"emptyTitle": "Aucun flux de calendrier pour le moment",
"feedActions": "Actions du flux",
"labelsHint": "Laissez vide pour inclure toutes les tâches planifiées.",
"newFeed": "Nouveau flux",
"revokeConfirm": "Révoquer le flux",
"revokeConfirmDescription": "Les applications de calendrier qui utilisent ce lien ne recevront plus de mises à jour. Cette action ne peut pas être annulée.",
"revokeConfirmTitle": "Révoquer ce flux ?",
"revoking": "Révocation…"
},
"invitationEmailFailed": "Invitation enregistrée, mais l'envoi de l'e-mail a échoué. Vérifiez les paramètres SMTP et renvoyez l'invitation.",
"billing": {
"accessEnds": "Fin de l'accès",
"adminsOnly": "Seuls les propriétaires et les administrateurs de l'espace de travail peuvent gérer la facturation.",
"choose": "Choisir {{plan}}",
"choosePlan": {
"subtitle": "Changez de forfait à tout moment. Annulez quand vous le souhaitez.",
"title": "Choisir un forfait"
},
"currentPlan": {
"title": "Forfait actuel"
},
"disabled": "La facturation n'est pas activée sur cette instance. La version auto-hébergée de Kaneo inclut toutes les fonctionnalités, gratuitement et sans limite de durée.",
"expiredCallout": {
"action": "Choisir un forfait",
"adminDescription": "Vous pouvez toujours tout consulter, mais la création et la modification sont suspendues jusqu'à ce que vous choisissiez un forfait. Rien n'a été supprimé.",
"memberDescription": "Vous pouvez toujours tout consulter, mais la création et la modification sont suspendues jusqu'à ce qu'un propriétaire ou un administrateur de l'espace de travail choisisse un forfait.",
"title": "Votre essai gratuit est terminé"
},
"features": {
"backups": "Sauvegardes et mises à jour automatiques",
"emailSupport": "Assistance par e-mail",
"prioritySupport": "Assistance prioritaire par e-mail",
"roles": "Rôles et permissions de l'espace de travail",
"singleUser": "Un seul utilisateur",
"unlimitedMembers": "Nombre illimité de membres d'équipe",
"unlimitedProjects": "Projets et tâches illimités"
},
"foundingFree": {
"badge": "Gratuit",
"description": "Cet espace de travail bénéficie d'un accès gratuit à Kaneo Cloud en tant que soutien de la première heure. Merci d'être là depuis le début.",
"title": "Gratuit pour les premiers soutiens"
},
"interval": {
"annual": "Annuel",
"annualBadge": "2 mois offerts",
"monthly": "Mensuel"
},
"manage": "Gérer la facturation",
"mostPopular": "Le plus populaire",
"opening": "Ouverture...",
"pageTitle": "Facturation",
"plans": {
"personal": {
"name": "Personnel",
"tagline": "Pour les particuliers"
},
"team": {
"name": "Équipe",
"tagline": "Pour les équipes qui travaillent ensemble"
}
},
"portalHint": "Les factures, le moyen de paiement et la résiliation sont gérés dans Creem.",
"price": {
"billedMonthly": "Facturation mensuelle",
"billedYearly": "{{price}} / mois, facturation annuelle",
"billedYearlyPerUser": "{{price}} / utilisateur / mois, facturation annuelle",
"perMonth": "/ mois",
"perUserMonth": "/ utilisateur / mois",
"perUserYear": "/ utilisateur / an",
"perYear": "/ an"
},
"processedBy": "Les paiements sont traités de manière sécurisée par Creem. Les prix s'entendent hors taxes, le cas échéant.",
"renews": "Renouvellement",
"seats_many": "{{count}} places",
"seats_one": "{{count}} place",
"seats_other": "{{count}} places",
"starting": "Démarrage...",
"status": {
"active": "Actif",
"canceled": "Annulé",
"expired": "Expirée",
"past_due": "Paiement en retard",
"paused": "En pause",
"scheduled_cancel": "Annulation prochaine",
"trialing": "Essai"
},
"subtitle": "Votre forfait pour {{workspace}}.",
"trial": {
"activeTitle": "Essai gratuit",
"expiredDescription": "Souscrivez à un forfait ci-dessous pour continuer à créer et à modifier. En attendant, vos données restent en sécurité et peuvent être exportées.",
"expiredTitle": "Votre essai est terminé",
"noDate": "Choisissez un forfait ci-dessous pour continuer après votre essai.",
"badgeDaysLeft_many": "{{count}} jours restants",
"badgeDaysLeft_one": "{{count}} jour restant",
"badgeDaysLeft_other": "{{count}} jours restants"
},
"trialCard": {
"activeDescription": "Passez à un forfait à tout moment pour conserver votre espace de travail après l'essai.",
"choosePlan": "Choisir un forfait",
"daysLeft_many": "{{count}} jours d'essai restants",
"daysLeft_one": "{{count}} jour d'essai restant",
"daysLeft_other": "{{count}} jours d'essai restants",
"dismiss": "Masquer",
"ended": "Essai terminé",
"endingDescription": "Choisissez un forfait maintenant pour éviter toute interruption pour votre équipe.",
"expiredDescription": "Abonnez-vous pour continuer à créer et à modifier.",
"viewPlans": "Voir les forfaits"
},
"openFailed": "Impossible d'ouvrir la facturation de cet espace de travail",
"checkoutSuccess": {
"title": "Merci pour votre abonnement",
"description": "Paiement reçu. L'offre ci-dessous sera mise à jour dès qu'il sera confirmé."
}
},
"syncRules": {
"addLabel": "Ajouter un label",
"advancedHint": "Activez les paramètres avancés dans les préférences pour modifier ces règles.",
"all": "Toutes les tâches et tous les tickets",
"any": "Au moins un label sélectionné",
"apply": "Appliquer les règles de synchronisation",
"closed": "Fermée",
"every": "Tous les labels sélectionnés",
"excluded": "Hors du périmètre de la règle actuelle",
"filtered": "Uniquement les labels correspondants",
"impact": "{{matching}} of {{total}} tasks match. {{create}} tasks will be exported, {{pause}} links will pause, and {{review}} links need review to resume.",
"impactTitle": "Ce qui va changer",
"incoming": "Dépôt → Kaneo",
"incomingHint": "Choisissez les tickets à importer ou à partir desquels créer des tâches. Utilisez les noms exacts des labels du dépôt. Les liens existants suivent la règle des tâches Kaneo.",
"loadError": "Impossible de charger les règles de synchronisation.",
"loading": "Chargement des règles de synchronisation…",
"matchLabels": "Correspondance des labels",
"missingLabels": "Un label sélectionné de l'espace de travail est indisponible. La synchronisation reste en pause tant que la règle n'est pas corrigée.",
"removeMissingLabels": "Supprimer les étiquettes indisponibles",
"next": "Suivant",
"noDescription": "Aucune description",
"noLabels": "Créez des labels dans l'espace de travail avant de configurer un filtre de tâches.",
"open": "Ouverte",
"outgoing": "Kaneo → dépôt",
"outgoingHint": "Choisissez les tâches Kaneo à synchroniser. La perte d'un label correspondant suspend les deux sens de synchronisation pour une tâche existante.",
"paused": "Synchronisation en pause",
"pausedHint": "Les éléments et leurs liens sont conservés. Les tâches qui correspondent de nouveau nécessitent une vérification avant la reprise de la synchronisation.",
"preserveHint": "La mise en pause conserve les deux éléments et leur lien. La reprise nécessite une comparaison ; les anciens commentaires ne sont jamais republiés.",
"previewing": "Vérification de l'impact sur la synchronisation…",
"previous": "Précédent",
"refreshComparison": "Actualiser la comparaison",
"refreshPreview": "Actualiser l'aperçu",
"removeLabel": "Retirer {{name}}",
"repository": "Dépôt",
"repositoryLabel": "Nom du label du dépôt",
"resumeError": "Impossible de reprendre la synchronisation. La tâche, le ticket ou la règle a peut-être changé, ou le fournisseur est indisponible. La synchronisation reste en pause ; actualisez la comparaison.",
"review": "Vérifier et reprendre",
"reviewHint": "Comparez le titre, la description et l'état ouvert ou fermé actuels. Choisissez le côté à conserver pour ces champs. Les labels et les anciens commentaires restent inchangés.",
"reviewRequired": "Correspond à la règle · vérification requise",
"reviewTitle": "Vérifier avant de reprendre la synchronisation",
"saved": "Règles de synchronisation enregistrées",
"saveError": "Impossible d'appliquer ces règles. L'intégration ou le périmètre des tâches a peut-être changé. Actualisez l'aperçu et réessayez.",
"selectLabel": "Sélectionnez au moins un label pour prévisualiser cette règle.",
"sharedHint": "Ces règles s'appliquent à toutes les personnes utilisant ce projet. Masquer les paramètres avancés ne les désactive pas.",
"title": "Ce qui est synchronisé",
"unavailableLabel": "Label indisponible",
"useKaneo": "Conserver les valeurs de Kaneo",
"useRepository": "Conserver les valeurs du dépôt",
"exportPending": "Exporter les tâches correspondantes",
"inactiveHint": "Cette intégration est en pause. Aucune tâche ne sera exportée avant sa réactivation.",
"loadSavedRules": "Charger les règles enregistrées",
"rulesChanged": "Les règles enregistrées ont changé pendant votre modification. Votre brouillon est conservé. Vérifiez les règles actuelles ci-dessus avant de l'appliquer, ou chargez les règles enregistrées.",
"allIssues": "Toutes les issues",
"allTasks": "Toutes les tâches",
"edit": "Modifier",
"hidePaused": "Masquer",
"issuesLabelled": "Issues avec le label",
"joinAnd": "et",
"joinOr": "ou",
"kaneoToProvider": "De Kaneo vers {{provider}}",
"pausedSummary_many": "{{count}} tâches ne sont plus synchronisées, car elles ne correspondent plus aux règles de synchronisation.",
"pausedSummary_one": "{{count}} tâche n'est plus synchronisée, car elle ne correspond plus aux règles de synchronisation.",
"pausedSummary_other": "{{count}} tâches ne sont plus synchronisées, car elles ne correspondent plus aux règles de synchronisation.",
"providerToKaneo": "De {{provider}} vers Kaneo",
"reviewPaused": "Examiner",
"tasksLabelled": "Tâches avec le label"
},
"advancedSettingsDescription": "Affiche des contrôles supplémentaires, comme les règles de synchronisation des intégrations. Uniquement sur ce navigateur.",
"adminWorkspaces": {
"addMember": {
"adding": "Ajout…",
"alreadyMember": "Déjà membre",
"description": "Ajoutez un utilisateur existant à {{name}}. Il pourra accéder à tous les projets tant que vous ne limiterez pas ses accès.",
"noUsers": "Aucun utilisateur trouvé",
"role": "Rôle",
"searching": "Recherche d'utilisateurs…",
"submit": "Ajouter un membre",
"title": "Ajouter un membre",
"user": "Utilisateur",
"userPlaceholder": "Rechercher un nom ou une adresse e-mail…",
"usersError": "Impossible de charger les utilisateurs."
},
"clearSearch": "Effacer la recherche",
"columns": {
"actions": "Actions",
"created": "Créé",
"members": "Membres",
"owners": "Propriétaires",
"projects": "Projets",
"workspace": "Espace de travail"
},
"confirm": {
"remove": {
"action": "Supprimer le membre",
"description": "{{name}} perd l'accès à {{workspace}} et à ses projets. Son compte reste sur cette instance.",
"title": "Retirer {{name}} ?"
},
"transfer": {
"action": "Définir comme propriétaire",
"description": "{{name}} devient l'unique propriétaire de {{workspace}}. Les propriétaires actuels deviennent administrateurs.",
"title": "Définir {{name}} comme propriétaire ?"
},
"working": "Traitement…",
"archive": {
"action": "Archive workspace",
"description": "Members will lose access until it's restored.",
"title": "Archive {{name}}?"
},
"delete": {
"action": "Delete workspace",
"description": "Its projects, tasks, and files will be permanently deleted.",
"title": "Delete {{name}}?",
"typeName": "Type {{name}} to confirm"
},
"restore": {
"action": "Restore workspace",
"title": "Restore {{name}}?"
}
},
"directoryTitle": "Tous les espaces de travail",
"emptyDescription": "Essayez un autre nom ou un autre identifiant d'URL.",
"emptyTitle": "Aucun espace de travail trouvé",
"loadError": "Impossible de charger les espaces de travail.",
"manage": "Gérer",
"manageLabel": "Gérer {{name}}",
"members": {
"actions": "Actions pour {{name}}",
"add": "Ajouter un membre",
"count_many": "{{count}} membres",
"count_one": "{{count}} membre",
"count_other": "{{count}} membres",
"description": "Modifiez les rôles, les accès aux projets et la propriété, même si vous n'êtes pas membre de cet espace de travail.",
"editAccess": "Modifier l'accès aux projets de {{name}} ({{access}})",
"empty": "Cet espace de travail ne compte aucun membre.",
"loadError": "Impossible de charger les membres.",
"makeOwner": "Définir comme propriétaire",
"remove": "Retirer de l'espace de travail",
"roleLabel": "Rôle de {{name}}",
"title": "Membres de {{name}}"
},
"next": "Suivant",
"noOwner": "Aucun propriétaire",
"pagination": "Page {{current}} sur {{total}}",
"previous": "Précédent",
"refreshing": "Actualisation des espaces de travail",
"retry": "Réessayer",
"searchCount_many": "{{count}} espaces de travail correspondants",
"searchCount_one": "{{count}} espace de travail correspondant",
"searchCount_other": "{{count}} espaces de travail correspondants",
"searchLabel": "Rechercher des espaces de travail",
"searchPlaceholder": "Rechercher par nom ou slug",
"subtitle": "Tous les espaces de travail de cette instance Kaneo, y compris ceux dont vous n'êtes pas membre.",
"title": "Espaces de travail",
"toast": {
"added": "Membre ajouté",
"addError": "Échec de l'ajout du membre",
"ownershipTransferred": "Propriété transférée",
"removed": "Membre retiré",
"removeError": "Échec du retrait du membre",
"roleError": "Échec de la mise à jour du rôle",
"roleUpdated": "Rôle mis à jour",
"transferError": "Échec du transfert de propriété",
"archived": "Workspace archived",
"archiveError": "Could not archive workspace",
"deleted": "Workspace deleted",
"deleteError": "Could not delete workspace",
"restored": "Workspace restored",
"restoreError": "Could not restore workspace"
},
"actions": {
"archive": "Archive workspace",
"open": "Actions for {{name}}",
"restore": "Restore workspace"
},
"archived": "Archived"
},
"workspaceImport": {
"back": {
"allSources": "Toutes les sources",
"changeKey": "Changer de clé",
"overview": "Vue d'ensemble de l'importation"
},
"connect": {
"cancel": "Annuler",
"continue": "Continuer",
"hideSecret": "Masquer {{field}}",
"sectionDescription": "Kaneo lit uniquement les données de {{source}}. La clé est utilisée pour cette importation et n'est jamais enregistrée.",
"sectionTitle": "Connecter",
"showSecret": "Afficher {{field}}",
"title": "Importer depuis {{source}}",
"whereToFind": "Où le trouver"
},
"counts": {
"columns_many": "{{count, number}} colonnes",
"columns_one": "{{count, number}} colonne",
"columns_other": "{{count, number}} colonnes",
"comments_many": "{{count, number}} commentaires",
"comments_one": "{{count, number}} commentaire",
"comments_other": "{{count, number}} commentaires",
"labels_many": "{{count, number}} labels",
"labels_one": "{{count, number}} label",
"labels_other": "{{count, number}} labels",
"tasks_many": "{{count, number}} tâches",
"tasks_one": "{{count, number}} tâche",
"tasks_other": "{{count, number}} tâches"
},
"entry": {
"createProjectLink": "Importez vos projets",
"createProjectPrompt": "Vous quittez Jira, Linear, Trello ou Plane ?",
"projectsEmpty": "Importer depuis un autre outil"
},
"history": {
"description": "Les importations continuent sur le serveur si vous quittez cette page.",
"empty": "Aucune importation pour le moment. Celles que vous lancez s'affichent ici.",
"loadError": "Impossible de charger les importations récentes.",
"started": "Démarrée {{time}}",
"title": "Importations récentes"
},
"kaneo": {
"apiKeyDescription": "Sur cette instance Kaneo, ouvrez les paramètres, puis les clés API.",
"apiKeyLabel": "Clé API",
"apiKeyPlaceholder": "Collez la clé API",
"urlDescription": "L'instance depuis laquelle vous migrez.",
"urlLabel": "URL de Kaneo"
},
"linear": {
"apiKeyDescription": "L'accès en lecture suffit. Vous pouvez le révoquer après l'importation.",
"apiKeyLabel": "Clé API personnelle",
"openSettings": "Ouvrir les paramètres de Linear",
"stepCreate": "Dans les clés API personnelles, créez une clé avec un accès en lecture.",
"stepOpen": "Dans Linear, ouvrez les paramètres, puis la section Sécurité et accès.",
"stepPaste": "Copiez-la et collez-la ci-dessus."
},
"notAllowed": {
"description": "L'importation crée des projets et nécessite donc les permissions de gérer les paramètres de l'espace de travail et de créer des projets. Demandez à un administrateur de l'espace de travail de la lancer.",
"title": "Seuls les administrateurs de l'espace de travail peuvent importer"
},
"opensInNewTab": "(s'ouvre dans un nouvel onglet)",
"pageTitle": "Importer",
"plane": {
"tokenDescription": "Paramètres du profil, section Développeur, puis jetons d'accès personnels.",
"tokenLabel": "Jeton d'accès personnel",
"urlDescription": "Copiez-la depuis votre navigateur lorsque vous êtes dans Plane. Les instances auto-hébergées sont également prises en charge.",
"urlLabel": "URL de l'espace de travail",
"urlPlaceholder": "https://app.plane.so/your-workspace"
},
"planka": {
"adminTip": "Utilisez un compte administrateur PLANKA. PLANKA n'affiche les adresses e-mail qu'aux administrateurs, et les membres des cartes sont associés aux personnes ici par e-mail.",
"apiKeyDescription": "Créée dans PLANKA, dans les paramètres de votre compte.",
"apiKeyLabel": "Clé API",
"apiKeyPlaceholder": "Collez la clé API",
"passwordDescription": "Utilisé uniquement pour vous connecter lors de cette importation.",
"passwordLabel": "Mot de passe",
"signInApiKey": "Clé API",
"signInDescription": "Utilisez une clé API si votre compte se connecte par SSO.",
"signInLabel": "Se connecter avec",
"signInPassword": "E-mail et mot de passe",
"urlDescription": "L'adresse que vous utilisez pour ouvrir PLANKA.",
"urlLabel": "URL de PLANKA",
"usernameDescription": "Le compte que vous utilisez pour vous connecter à PLANKA.",
"usernameLabel": "E-mail ou nom d'utilisateur"
},
"retry": "Réessayer",
"run": {
"failedBadge": "Échec",
"failedNames_many": "L'importation de {{names, list}} a échoué. Aucun élément n'a donc été créé pour eux.",
"failedNames_one": "L'importation de {{names, list}} a échoué. Aucun élément n'a donc été créé pour lui.",
"failedNames_other": "L'importation de {{names, list}} a échoué. Aucun élément n'a donc été créé pour eux.",
"failedTitle": "Échec de l'importation",
"finishedNote": "Les tâches importées n'ont pas envoyé de notifications. Les commentaires conservent leur auteur et leur date d'origine.",
"finishedNoteNoComments": "Les tâches importées n'ont pas envoyé de notifications.",
"finishedTitle": "Importation terminée",
"goToProjects": "Aller aux projets",
"importingBadge": "Importation en cours",
"importingTitle": "Importation depuis {{source}}",
"importMore": "Importer d'autres éléments",
"keyInMemory": "Votre clé {{source}} est conservée uniquement en mémoire jusqu'à la fin de cette importation.",
"leavePage": "Vous pouvez quitter cette page. L'importation continue sur le serveur.",
"loadError": "Impossible de charger cette importation",
"noTasks": "Aucune tâche",
"nothingImported": "Aucun élément importé",
"notImported": "Non importé",
"open": "Ouverte",
"openProject": "Ouvrir {{name}}",
"queued": "En attente",
"started": "Démarrée {{time}}",
"starting": "Démarrage",
"took_many": "Durée : {{count}} minutes",
"took_one": "Durée : {{count}} minute",
"took_other": "Durée : {{count}} minutes",
"tookUnderMinute": "Durée : moins d'une minute",
"totals": "{{parts, list}} importés",
"waiting": "En attente",
"warnings_many": "{{count}} avertissements",
"warnings_one": "{{count}} avertissement",
"warnings_other": "{{count}} avertissements"
},
"select": {
"back": "Retour",
"clear": "Effacer",
"commentsDescription": "Conserve l'auteur et la date d'origine de chaque commentaire.",
"commentsLabel": "Importer les commentaires",
"inviteMembers": "Inviter des membres",
"membersNote": "Les personnes assignées sont associées aux membres de {{workspace}} par e-mail. Invitez d'abord votre équipe pour conserver les assignations des tâches.",
"membersNoteTrello": "Les personnes assignées sont associées aux membres de {{workspace}} par e-mail, ou par nom complet pour Trello. Invitez d'abord votre équipe pour conserver les assignations des tâches.",
"selectAll": "Tout sélectionner",
"membersNoteJira": "Les personnes assignées sont associées aux membres de {{workspace}} par e-mail, ou par nom complet lorsque Jira masque l'e-mail. Invitez d'abord votre équipe pour conserver les assignations des tâches."
},
"sources": {
"connect": "Connecter",
"connectTo": "Connecter {{source}}",
"description": "Choisissez l'outil depuis lequel vous migrez. Chaque projet sélectionné devient un nouveau projet ici.",
"kaneo": {
"description": "Transférez des projets entre Kaneo Cloud et une instance auto-hébergée.",
"intro": "Les projets de tous les espaces de travail accessibles avec cette clé. Chaque projet sélectionné est copié ici.",
"pickerName": "Une autre instance Kaneo"
},
"linear": {
"description": "Équipes, tickets, labels, sous-tickets et commentaires. Collez une clé API personnelle.",
"intro": "Chaque équipe Linear devient un projet, avec son flux de travail sous forme de colonnes."
},
"plane": {
"description": "Projets, éléments de travail, sous-tickets et commentaires. Version cloud ou auto-hébergée.",
"intro": "Chaque projet Plane devient un projet ici, avec ses états sous forme de colonnes."
},
"planka": {
"description": "Tableaux, listes, cartes, listes de contrôle et commentaires de votre instance PLANKA.",
"intro": "Chaque tableau PLANKA devient un projet, avec ses listes sous forme de colonnes."
},
"title": "Choisir une source",
"trello": {
"description": "Tableaux, listes, cartes, listes de contrôle et commentaires. Autorisez l'accès en un clic.",
"intro": "Chaque tableau Trello devient un projet, avec ses listes sous forme de colonnes."
},
"jira": {
"description": "Projets, tickets, sous-tâches, liens et commentaires. Version Cloud ou Data Center.",
"intro": "Chaque projet Jira devient un projet ici, avec son flux de travail sous forme de colonnes."
}
},
"status": {
"failed": "Échec",
"imported": "Importé",
"importing": "Importation de {{current}} sur {{total}}",
"partial": "{{done}} sur {{total}} importés",
"warnings_many": "Terminé avec {{count}} avertissements",
"warnings_one": "Terminé avec {{count}} avertissement",
"warnings_other": "Terminé avec {{count}} avertissements"
},
"steps": {
"connect": "Connecter",
"done": "(terminé)",
"import": "Importer",
"label": "Étapes de l'importation"
},
"subtitle": "Importez vos projets depuis un autre outil dans {{workspace}}. Kaneo lit uniquement les données de la source.",
"title": "Importer",
"toast": {
"failed": "Échec de l'importation depuis {{source}}",
"finished": "Importation depuis {{source}} terminée",
"partial": "Importation depuis {{source}} terminée avec des erreurs"
},
"trello": {
"apiKeyDescription": "Dans un Power-Up qui vous appartient, ouvrez l'onglet Trello Auth et générez une clé API (pas dans l'onglet OAuth 2.0) sur",
"apiKeyLabel": "Clé API",
"apiKeyPlaceholder": "Collez la clé API",
"authorizeButton": "Autoriser sur Trello",
"authorizeDescription": "Ouvre Trello dans un nouvel onglet. Accès en lecture seule, expirant après un jour.",
"authorizeLabel": "Autoriser Kaneo",
"authorizeNeedsKey": "Saisissez d'abord la clé API. Accès en lecture seule, expirant après un jour.",
"tokenDescription": "Cliquez sur Autoriser dans Trello, puis collez le jeton affiché.",
"tokenLabel": "Jeton",
"tokenPlaceholder": "Collez le jeton"
},
"units": {
"board": {
"allImported_many": "Les {{count}} tableaux ont été importés.",
"allImported_one": "{{count}} tableau importé.",
"allImported_other": "Les {{count}} tableaux ont été importés.",
"empty": "Aucun tableau trouvé. Vérifiez que cette clé peut accéder aux tableaux que vous souhaitez importer.",
"found_many": "{{count}} tableaux trouvés. Chaque tableau sélectionné devient un nouveau projet dans {{workspace}}.",
"found_one": "{{count}} tableau trouvé. Si vous le sélectionnez, il devient un nouveau projet dans {{workspace}}.",
"found_other": "{{count}} tableaux trouvés. Chaque tableau sélectionné devient un nouveau projet dans {{workspace}}.",
"importButton_many": "Importer {{count}} tableaux",
"importButton_one": "Importer {{count}} tableau",
"importButton_other": "Importer {{count}} tableaux",
"limit": "Sélectionnez jusqu'à {{max}} tableaux par importation.",
"pick": "Sélectionnez les tableaux à importer.",
"progress_many": "{{done}} tableaux sur {{count}} importés",
"progress_one": "{{done}} tableau sur {{count}} importé",
"progress_other": "{{done}} tableaux sur {{count}} importés",
"runTitle_many": "{{source}}, {{count}} tableaux",
"runTitle_one": "{{source}}, {{count}} tableau",
"runTitle_other": "{{source}}, {{count}} tableaux",
"section": "Tableaux",
"someImported_many": "{{done}} tableaux sur {{count}} importés.",
"someImported_one": "{{done}} tableau sur {{count}} importé.",
"someImported_other": "{{done}} tableaux sur {{count}} importés.",
"step": "Choisir des tableaux"
},
"project": {
"allImported_many": "Les {{count}} projets ont été importés.",
"allImported_one": "{{count}} projet importé.",
"allImported_other": "Les {{count}} projets ont été importés.",
"empty": "Aucun projet trouvé. Vérifiez que cette clé peut accéder aux projets que vous souhaitez importer.",
"found_many": "{{count}} projets trouvés. Chaque projet sélectionné devient un nouveau projet dans {{workspace}}.",
"found_one": "{{count}} projet trouvé. Si vous le sélectionnez, il devient un nouveau projet dans {{workspace}}.",
"found_other": "{{count}} projets trouvés. Chaque projet sélectionné devient un nouveau projet dans {{workspace}}.",
"importButton_many": "Importer {{count}} projets",
"importButton_one": "Importer {{count}} projet",
"importButton_other": "Importer {{count}} projets",
"limit": "Sélectionnez jusqu'à {{max}} projets par importation.",
"pick": "Sélectionnez les projets à importer.",
"progress_many": "{{done}} projets sur {{count}} importés",
"progress_one": "{{done}} projet sur {{count}} importé",
"progress_other": "{{done}} projets sur {{count}} importés",
"runTitle_many": "{{source}}, {{count}} projets",
"runTitle_one": "{{source}}, {{count}} projet",
"runTitle_other": "{{source}}, {{count}} projets",
"section": "Projets",
"someImported_many": "{{done}} projets sur {{count}} importés.",
"someImported_one": "{{done}} projet sur {{count}} importé.",
"someImported_other": "{{done}} projets sur {{count}} importés.",
"step": "Choisir des projets"
},
"team": {
"allImported_many": "Les {{count}} équipes ont été importées.",
"allImported_one": "{{count}} équipe importée.",
"allImported_other": "Les {{count}} équipes ont été importées.",
"empty": "Aucune équipe trouvée. Vérifiez que cette clé peut accéder aux équipes que vous souhaitez importer.",
"found_many": "{{count}} équipes trouvées. Chaque équipe sélectionnée devient un nouveau projet dans {{workspace}}.",
"found_one": "{{count}} équipe trouvée. Si vous la sélectionnez, elle devient un nouveau projet dans {{workspace}}.",
"found_other": "{{count}} équipes trouvées. Chaque équipe sélectionnée devient un nouveau projet dans {{workspace}}.",
"importButton_many": "Importer {{count}} équipes",
"importButton_one": "Importer {{count}} équipe",
"importButton_other": "Importer {{count}} équipes",
"limit": "Sélectionnez jusqu'à {{max}} équipes par importation.",
"pick": "Sélectionnez les équipes à importer.",
"progress_many": "{{done}} équipes sur {{count}} importées",
"progress_one": "{{done}} équipe sur {{count}} importée",
"progress_other": "{{done}} équipes sur {{count}} importées",
"runTitle_many": "{{source}}, {{count}} équipes",
"runTitle_one": "{{source}}, {{count}} équipe",
"runTitle_other": "{{source}}, {{count}} équipes",
"section": "Équipes",
"someImported_many": "{{done}} équipes sur {{count}} importées.",
"someImported_one": "{{done}} équipe sur {{count}} importée.",
"someImported_other": "{{done}} équipes sur {{count}} importées.",
"step": "Choisir des équipes"
}
},
"jira": {
"emailDescription": "L'adresse e-mail de votre compte Atlassian. Laissez ce champ vide pour Jira Data Center.",
"emailLabel": "E-mail",
"nameMatchTip": "Jira masque souvent les adresses e-mail. Les personnes assignées peuvent donc être associées aux personnes ici par leur nom complet.",
"openSettings": "Ouvrir les jetons API Atlassian",
"stepCreate": "Créez un jeton API et copiez-le.",
"stepOpen": "Ouvrez id.atlassian.com, puis Sécurité, puis Jetons API.",
"stepPaste": "Collez-le avec l'adresse e-mail que vous utilisez pour vous connecter à Jira.",
"tokenDescription": "Cloud : créez-en un sur id.atlassian.com. Data Center : utilisez un jeton d'accès personnel.",
"tokenLabel": "Jeton API",
"tokenPlaceholder": "Collez le jeton",
"urlDescription": "Copiez-la depuis votre navigateur. Data Center est également pris en charge.",
"urlLabel": "URL du site Jira",
"urlPlaceholder": "https://your-site.atlassian.net"
}
},
"chatIntegrations": {
"activeDescription": "Désactivez pour mettre en pause sans perdre la configuration.",
"activeTitle": "Publication sur {{provider}}",
"channelHint": "Un simple libellé affiché dans cette liste.",
"channelLabel": "Canal",
"channelPlaceholder": "#actualites-equipe",
"disconnect": "Déconnecter",
"disconnectDescription": "Kaneo cessera de publier sur {{provider}} et supprimera les paramètres enregistrés.",
"disconnecting": "Déconnexion…",
"disconnectTitle": "Déconnecter {{provider}} ?",
"events": {
"taskCommentCreated": "Quelqu'un commente",
"taskCreated": "Une tâche est créée",
"taskDescriptionChanged": "La description change",
"taskPriorityChanged": "La priorité change",
"taskStatusChanged": "Le statut change",
"taskTitleChanged": "Le titre change"
},
"optional": "Facultatif",
"postWhen": "Publier quand",
"retry": "Réessayer",
"saveChanges": "Enregistrer les modifications",
"savedUrlPlaceholder": "Enregistrée. Collez une nouvelle URL pour la remplacer.",
"webhookUrlLabel": "URL du webhook"
},
"codeHosting": {
"browse": "Parcourir",
"changeToken": "Changer le jeton",
"checking": "Vérification de l'accès…",
"chooseProjectTitle": "Choisissez un projet",
"chooseRepositoryTitle": "Choisissez un dépôt",
"connectProject": "Connecter le projet",
"connectRepository": "Connecter le dépôt",
"copied": "Copié",
"copyFailed": "Impossible de copier dans le presse-papiers.",
"copySecret": "Copier le secret",
"copyUrl": "Copier l'URL du webhook",
"disconnect": "Déconnecter",
"disconnectDescription": "Les tâches ne seront plus synchronisées avec {{target}}. Vous pourrez le reconnecter plus tard.",
"disconnecting": "Déconnexion…",
"disconnectTitle": "Déconnecter {{provider}} ?",
"hideSecret": "Masquer le secret",
"importing": "Importation…",
"importIssues": "Importer les issues",
"importNeedsReconnect": "Reconnectez l'intégration pour activer l'importation.",
"importTitle": "Importer les issues ouvertes",
"issuesSection": "Tickets",
"lastImport": "Dernière importation : {{imported}} créées, {{updated}} mises à jour, {{skipped}} ignorées.",
"loadError": "Impossible de charger cette intégration.",
"pausedHint": "La synchronisation est en pause. Reconnectez l'intégration pour la reprendre.",
"projectSection": "Projet",
"reconnect": "Reconnecter",
"repositoryPathInvalid": "Entrez le dépôt au format owner/name.",
"repositoryPathLabel": "Dépôt",
"repositorySection": "Dépôt",
"retry": "Réessayer",
"saveToken": "Enregistrer le jeton",
"showSecret": "Afficher le secret",
"signInDescription": "Utilisez un jeton qui peut lire le projet et ses issues.",
"signInTitle": "Connectez-vous à votre instance",
"tokenStored": "Jeton enregistré",
"tokenTitle": "Jeton d'accès",
"webhookSecret": "Secret",
"webhookSection": "Webhook",
"webhookUrl": "URL"
},
"projectCustomFields": {
"fieldsDescription": "Faites glisser pour changer leur ordre d'affichage sur une tâche.",
"fieldsTitle": "Champs",
"newField": "Nouveau champ",
"pageTitle": "Champs personnalisés",
"subtitle": "Des informations supplémentaires que chaque tâche de {{project}} peut suivre, comme la taille ou le client.",
"subtitleFallback": "Des informations supplémentaires que chaque tâche de ce projet peut suivre, comme la taille ou le client.",
"title": "Champs personnalisés"
},
"shared": {
"autosave": "Les modifications sont enregistrées automatiquement"
},
"adminAuditLog": {
"actions": {
"sessionRevoked": "Revoked a session",
"sessionRevokedAll": "Revoked all sessions",
"userCreated": "Created user",
"userDeactivated": "Deactivated user",
"userDeleted": "Deleted user",
"userImpersonated": "Signed in as user",
"userPasswordSet": "Set user password",
"userReactivated": "Reactivated user",
"userRoleChanged": "Changed instance role",
"userUpdated": "Updated user details",
"workspaceMemberAdded": "Added workspace member",
"workspaceMemberRemoved": "Removed workspace member",
"workspaceMemberRoleChanged": "Changed workspace member role",
"workspaceOwnerTransferred": "Transferred workspace ownership",
"userAvatarChanged": "Changed profile picture",
"userAvatarRemoved": "Removed profile picture",
"userEmailVerified": "Marked email as verified",
"userPasswordResetSent": "Sent password reset link",
"userVerificationSent": "Sent verification email",
"apiKeyRevoked": "Revoked an API key",
"emailTestSent": "Sent test email",
"workspaceArchived": "Archived workspace",
"workspaceDeleted": "Deleted workspace",
"workspaceRestored": "Restored workspace",
"roleCreated": "Role created",
"roleDeleted": "Role deleted",
"roleUpdated": "Role updated",
"instanceSettingsUpdated": "Updated instance settings",
"webhookCreated": "Created webhook",
"webhookDeleted": "Deleted webhook",
"webhookSecretRotated": "Rotated webhook secret",
"webhookUpdated": "Updated webhook"
},
"categories": {
"all": "All actions",
"session": "Sessions",
"user": "Users",
"workspace": "Workspaces",
"apiKey": "API keys",
"email": "Email",
"role": "Roles",
"instance": "Instance settings",
"webhook": "Webhooks"
},
"categoryLabel": "Filter by category",
"clearFilter": "Show all actions",
"columns": {
"action": "Action",
"actor": "Administrator",
"target": "Target",
"time": "Time and IP"
},
"deletedActor": "Account deleted",
"details": {
"change": "{{from}} → {{to}}",
"fields": "Changed {{fields}}",
"memberChange": "{{member}}: {{from}} → {{to}}",
"memberWithRole": "{{member}} as {{role}}",
"noRole": "No role",
"reason": "Reason: {{reason}}",
"createdWithRole": "Role: {{role}}",
"sessionCount_many": "{{count}} sessions",
"sessionCount_one": "{{count}} session",
"sessionCount_other": "{{count}} sessions",
"workspaceContents": "{{members}} members, {{projects}} projects",
"permissionsChanged": "{{added}} permissions added, {{removed}} removed"
},
"directoryTitle": "Recorded actions",
"emptyTitle": "No actions recorded",
"fields": {
"email": "email",
"emailVerified": "email verification",
"image": "avatar",
"name": "name"
},
"loadError": "The audit log could not be loaded.",
"mobileSummary": "{{actor}} · {{target}} · {{time}}",
"next": "Next",
"pagination": "Page {{current}} of {{total}}",
"previous": "Previous",
"refreshing": "Refreshing audit log",
"retry": "Retry",
"targetTypes": {
"user": "User",
"workspace": "Workspace",
"role": "Role",
"instance": "Instance",
"webhook": "Webhook"
},
"title": "Audit log",
"unknownActor": "Unknown"
},
"sessions": {
"device": "{{browser}} on {{os}}",
"lastActive": "Active {{time}}",
"loadError": "Couldn't load sessions.",
"revoke": "Sign out",
"revokeConfirmDescription": "They'll be signed out right away.",
"revokeConfirmTitle": "Sign out {{device}}?",
"revokeLabel": "Sign out {{device}}",
"revoking": "Signing out...",
"signedIn": "Signed in {{date}}",
"thisDevice": "This device",
"toastRevoked": "Session signed out.",
"toastRevokeError": "Couldn't sign out the session.",
"unknownDevice": "Unknown device"
},
"adminSystem": {
"checkedAt": "Checked {{time}}",
"email": {
"down": "Can't connect to the mail server ({{code}})",
"notConfigured": "Set SMTP_HOST and SMTP_FROM to turn on email.",
"ok": "Connected to the mail server",
"send": "Send test email",
"sending": "Sending…",
"sendTest": "Test email",
"smtp": "SMTP",
"title": "Email"
},
"instance": {
"api": "API",
"apiDescription": "Up {{uptime}} · Node {{node}}",
"database": "Database",
"databaseDown": "Can't reach PostgreSQL ({{code}})",
"databaseVersion": "PostgreSQL {{version}}",
"latency": "{{ms}} ms",
"migrations_many": "{{count}} migrations applied",
"migrations_one": "{{count}} migration applied",
"migrations_other": "{{count}} migrations applied",
"realtime": "Live updates",
"realtimeConnections_many": "{{count}} open connections on this instance",
"realtimeConnections_one": "{{count}} open connection on this instance",
"realtimeConnections_other": "{{count}} open connections on this instance",
"realtimeInMemory": "delivered in memory",
"realtimeNotStarted": "WebSockets haven't started",
"realtimeRedis": "shared with other instances through Redis",
"realtimeRedisDown": "Redis is down, so only people on this instance get live updates",
"redis": "Redis",
"redisDown": "Can't reach Redis ({{code}})",
"redisModes": {
"cluster": "Cluster",
"sentinel": "Sentinel",
"standalone": "Standalone"
},
"redisNotConfigured": "Set REDIS_URL to share live updates across API instances.",
"redisOk": "{{mode}}, reachable",
"storage": "File storage",
"storageDown": "Can't reach the bucket ({{code}})",
"storageIncomplete": "Some S3 settings are missing, so uploads are off.",
"storageNotConfigured": "Set S3_ENDPOINT and S3_BUCKET to turn on uploads.",
"storageOk": "Bucket reachable",
"storageWarning": "Can't check the bucket with these credentials ({{code}}).",
"title": "Instance",
"version": "Kaneo version",
"versionUnknown": "Unknown"
},
"integrations": {
"available": "Available",
"connectedProjects_many": "Connected in {{count}} projects",
"connectedProjects_one": "Connected in {{count}} project",
"connectedProjects_other": "Connected in {{count}} projects",
"connectedUnknown": "Project count unavailable",
"instanceSetup": {
"down": "GitHub App unavailable",
"not_configured": "GitHub App not set up",
"ok": "GitHub App set up",
"warning": "Some GitHub App settings are missing"
},
"title": "Integrations"
},
"loadError": "System status could not be loaded.",
"refresh": "Refresh",
"refreshing": "Checking…",
"retry": "Retry",
"setupStatus": {
"down": "Down",
"not_configured": "Not configured",
"ok": "Configured",
"warning": "Incomplete"
},
"signIn": {
"emailOtpSignIn": "Email sign-in codes",
"guestAccess": "Guest access",
"off": "Off",
"on": "On",
"passwordRegistration": "Sign-up with a password",
"passwordSignIn": "Email and password sign-in",
"registration": "Registration",
"title": "Sign-in",
"workspaceCreation": "Workspace creation",
"customProvider": "OAuth or OpenID Connect"
},
"status": {
"down": "Down",
"not_configured": "Not configured",
"ok": "Operational",
"warning": "Warning"
},
"title": "System",
"toast": {
"testEmailError": "The test email could not be sent.",
"testEmailSent": "Test email sent to {{to}}"
}
},
"adminOverview": {
"activeUsers": "Active (30 days)",
"archivedWorkspaces": "Archived",
"configurationWarnings": "Configuration warnings",
"disabledUsers": "Disabled users",
"loadError": "Could not load the overview.",
"noActions": "No administrative actions",
"noUsers": "No users",
"recentActions": "Recent administrative actions",
"recentUsers": "Recent users",
"services": "Services",
"title": "Overview",
"totalUsers": "Total users",
"viewAuditLog": "View audit log",
"viewSystem": "View system",
"viewUsers": "View users",
"warnings": {
"noSecondAdmin": "Only one administrator has access. Assign a second admin in User management.",
"redisUnreachable": "Redis is unavailable. Check the connection.",
"registrationWithoutEmail": "Registration is open without email. Configure SMTP or set DISABLE_REGISTRATION=true.",
"smtpNotConfigured": "Email is not configured. Set SMTP_HOST and SMTP_FROM.",
"smtpUnreachable": "Email is unavailable. Check SMTP settings.",
"storageIncomplete": "Storage setup is incomplete. Check S3 settings.",
"storageUnreachable": "Storage needs attention. Check S3 access."
},
"workspaces": "Workspaces"
},
"adminRoles": {
"actions": "Actions for {{name}}",
"allPermissions": "All permissions",
"builtIn": "Built-in",
"create": "New role",
"deleteTitle": "Delete {{name}}?",
"dialog": {
"create": "Create role",
"createTitle": "New role",
"editTitle": "Edit role",
"name": "Name",
"nameHint": "Use 2–32 lowercase letters, digits, or hyphens, starting with a letter.",
"save": "Save"
},
"edit": "Edit",
"groups": {
"instance": "Instance",
"users": "Users",
"workspaces": "Workspaces"
},
"listTitle": "All roles",
"loadError": "Roles could not be loaded.",
"noPermissions": "No permissions",
"permissionCount_many": "{{count}} permissions",
"permissionCount_one": "{{count}} permission",
"permissionCount_other": "{{count}} permissions",
"permissions": {
"auditRead": "View the audit log",
"instanceSettings": "Change instance settings",
"systemRead": "View system status",
"usersApiKeys": "View and revoke API keys",
"usersCreate": "Create users",
"usersCredentials": "Send password reset and verification emails",
"usersDelete": "Delete users",
"usersDisable": "Deactivate and reactivate users",
"usersRead": "View users",
"usersSessions": "View and end sessions",
"usersUpdate": "Edit users and their roles",
"workspacesArchive": "Archive and restore workspaces",
"workspacesDelete": "Delete workspaces",
"workspacesManage": "Manage workspace members",
"workspacesRead": "View workspaces and members"
},
"title": "Roles",
"toast": {
"created": "Role created",
"deleted": "Role deleted",
"error": "The role could not be saved.",
"updated": "Role updated"
},
"userCount_many": "{{count}} users",
"userCount_one": "{{count}} user",
"userCount_other": "{{count}} users",
"viewUsers": "View users"
},
"adminSettings": {
"defaultRole": "Default role for new users",
"general": "General",
"instanceName": "Instance name",
"instanceUrl": "Instance URL",
"instanceUrlMissing": "Set KANEO_CLIENT_URL",
"integrations": "Integrations",
"loadError": "Couldn't load instance settings.",
"lockedByEnv": "Set by {{name}}",
"passwordRegistrationEnabled": "Email and password sign-up",
"registration": "Registration",
"registrationEnabled": "Open registration",
"requireEmailVerification": "Require email verification",
"requiresSmtp": "Requires SMTP",
"signInProviders": "Sign-in providers",
"title": "Settings",
"toast": {
"error": "Couldn't save settings",
"saved": "Settings saved"
},
"workspaceCreationRestricted": "Only administrators can create workspaces",
"workspaces": "Workspaces",
"save": "Save"
},
"adminWebhooks": {
"actions": "Actions for {{url}}",
"add": "Add webhook",
"attempts_many": "{{count}} attempts",
"attempts_one": "{{count}} attempt",
"attempts_other": "{{count}} attempts",
"categories": "Events",
"deleteTitle": "Delete webhook?",
"deliveries": "Recent deliveries",
"disabled": "Disabled",
"edit": "Edit webhook",
"empty": "No webhooks",
"enabled": "Enabled",
"errors": {
"destination": "Destination blocked",
"disabled": "Webhook disabled",
"http": "HTTP error",
"interrupted": "Delivery interrupted",
"network": "Connection failed",
"response": "Invalid response",
"signing": "Signing failed",
"timeout": "Timed out"
},
"failed": "Failed",
"httpStatus": "HTTP {{status}}",
"loadError": "Webhooks could not be loaded.",
"noDeliveries": "No deliveries",
"pending": "Pending",
"rotate": "Rotate secret",
"rotateTitle": "Rotate signing secret?",
"saveError": "The webhook could not be saved.",
"secretTitle": "Signing secret — save it now",
"sendTest": "Send test",
"setup": "Set NOTIFICATION_SECRET_ENCRYPTION_KEY to create webhooks.",
"signingSecret": "Signing secret",
"succeeded": "Delivered",
"testEvent": "Test event",
"testQueued": "Test event queued.",
"title": "Webhooks",
"url": "URL",
"save": "Save"
}
},
"navigation": {
"commandPalette": {
"suggestions": "Suggestions",
"commands": "Commandes",
"projects": "Projets",
"search": "Recherche",
"members": "Membres",
"createTask": "Créer une tâche",
"createProject": "Créer un projet",
"createWorkspace": "Créer un espace de travail",
"lightTheme": "Thème clair",
"darkTheme": "Thème sombre",
"systemTheme": "Thème système",
"keyboardShortcuts": "Raccourcis clavier",
"inputPlaceholder": "Rechercher des applications et des commandes...",
"empty": "Aucun résultat trouvé.",
"footer": {
"navigate": "Naviguer",
"open": "Ouvrir",
"close": "Fermer"
}
},
"sidebar": {
"projects": "Projets",
"members": "Membres",
"invitations": "Invitations",
"more": "Plus",
"backToBoard": "Retour au tableau",
"home": "Accueil",
"inbox": "Boîte de réception",
"invitePeople": "Inviter des personnes",
"myTasks": "Mes tâches"
},
"projectList": {
"viewProject": "Voir le projet",
"shareProject": "Partager le projet",
"projectSettings": "Paramètres du projet",
"linkCopied": "Lien du projet copié dans le presse-papiers",
"addProject": "Ajouter un projet",
"deleteConfirmTitle": "Supprimer le projet?",
"deleteConfirmDescription": "Cela supprimera définitivement le projet et toutes ses données. Vous ne pouvez pas annuler cette action.",
"deletedToast": "Projet supprimé",
"deleteProject": "Supprimer le projet",
"switcherLabel": "Changer de projet ou de vue"
},
"search": {
"inputPlaceholder": "Rechercher des tâches, projets, commentaires...",
"minCharsHint": "Tapez au moins 3 caractères pour rechercher",
"groups": {
"task": "Tâches",
"project": "Projets",
"workspace": "Espaces de travail",
"comment": "Commentaires",
"activity": "Activités",
"fallback": "Résultats"
}
},
"settingsLayout": {
"toggleSidebar": "Basculer la barre latérale",
"back": "Retour"
},
"userMenu": {
"signedOutSuccess": "Déconnexion réussie",
"signOutFailed": "Échec de la déconnexion",
"unnamedUser": "Utilisateur",
"settings": "Paramètres",
"signingOut": "Déconnexion...",
"logOut": "Déconnexion"
},
"workspaceSwitcher": {
"workspaces": "Espaces de travail",
"switching": "Changement...",
"addWorkspace": "Ajouter un espace de travail",
"selectWorkspace": "Sélectionner un espace de travail"
},
"page": {
"settingsTitle": "Paramètres",
"backToWorkspace": "Retour à l'espace de travail",
"settingsWorkspaceTab": "Espace de travail"
},
"projectSettings": {
"projectLabel": "Projet"
},
"shortcuts": {
"categories": {
"general": "Général",
"navigation": "Navigation",
"create": "Créer",
"views": "Vues",
"tasks": "Tâches",
"list": "Tableau et liste",
"inbox": "Boîte de réception",
"filters": "Filtres",
"editor": "Éditeur"
},
"items": {
"openCommandMenu": "Ouvrir la palette de commandes",
"openSearch": "Recherche globale",
"openShortcuts": "Afficher les raccourcis clavier",
"submit": "Enregistrer ou envoyer",
"back": "Fermer la modale/popover",
"switchWorkspace": "Changer d'espace de travail",
"logOut": "Déconnexion",
"showDisplayOptions": "Options d'affichage",
"dismissToasts": "Fermer toutes les notifications",
"toggleSidebar": "Basculer la barre latérale",
"goToHome": "Aller à l'accueil",
"goToInbox": "Aller à la boîte de réception",
"goToMyTasks": "Aller à mes tâches",
"goToProjects": "Aller aux projets",
"goToSettings": "Aller aux paramètres",
"goToTasks": "Aller aux tâches",
"goToBacklog": "Aller au backlog",
"goToProject": "Aller au projet 1–9",
"openTask": "Ouvrir une tâche",
"openProject": "Ouvrir un projet",
"createTask": "Créer une tâche",
"createProject": "Créer un projet",
"toggleLayout": "Basculer entre tableau et liste",
"deleteTask": "Supprimer la tâche",
"copyTaskUrl": "Copier le lien de la tâche",
"copyBranchName": "Copier la branche de la tâche",
"nextTask": "Élément suivant",
"previousTask": "Élément précédent",
"openFocusedTask": "Ouvrir l'élément sélectionné",
"selectAll": "Tout sélectionner",
"clearSelection": "Effacer la sélection",
"changeStatus": "Changer le statut",
"changePriority": "Changer la priorité",
"assignTask": "Assigner",
"assignToMe": "M'assigner",
"changeLabels": "Changer les étiquettes",
"setDueDate": "Définir l'échéance",
"removeDueDate": "Supprimer l'échéance",
"renameTask": "Renommer",
"editDescription": "Modifier la description",
"commentOnTask": "Commenter",
"moveToProject": "Déplacer vers un autre projet",
"createSubtask": "Créer une sous-tâche",
"setParent": "Définir la tâche parente",
"openParent": "Ouvrir la tâche parente",
"openSubtask": "Ouvrir une sous-tâche",
"markBlockedBy": "Marquer comme bloquée par",
"markBlocking": "Marquer comme bloquante",
"markRelated": "Marquer comme liée",
"addLink": "Ajouter un lien",
"toggleResources": "Afficher ou masquer les ressources",
"copyTaskId": "Copier l'ID de la tâche",
"copyTaskTitle": "Copier le titre de la tâche",
"copyAsMarkdown": "Copier en Markdown",
"peekTask": "Aperçu de la tâche sélectionnée",
"selectTask": "Sélectionner la tâche",
"selectGroup": "Tout sélectionner dans le groupe",
"copyPageUrl": "Copier l'URL de la page",
"focusRight": "Colonne suivante",
"focusLeft": "Colonne précédente",
"moveTaskTop": "Déplacer en haut du groupe",
"moveTaskUp": "Monter d'une position",
"moveTaskDown": "Descendre d'une position",
"moveTaskBottom": "Déplacer en bas du groupe",
"moveTaskLeft": "Déplacer vers la colonne précédente",
"moveTaskRight": "Déplacer vers la colonne suivante",
"toggleGroup": "Replier ou déplier le groupe",
"toggleAllGroups": "Replier ou déplier tous les groupes",
"deleteNotification": "Supprimer la notification",
"deleteReadNotifications": "Supprimer toutes les notifications lues",
"toggleNotificationRead": "Marquer comme lue ou non lue",
"markAllNotificationsRead": "Tout marquer comme lu",
"addFilter": "Ajouter un filtre",
"clearAllFilters": "Effacer tous les filtres",
"clearLastFilter": "Effacer le dernier filtre",
"editorBold": "Gras",
"editorItalic": "Italique",
"editorUnderline": "Souligné",
"editorStrike": "Barré",
"editorAttach": "Joindre une image ou un fichier",
"editorInlineCode": "Code en ligne",
"editorLink": "Transformer le texte en lien",
"editorQuote": "Citation",
"editorParagraph": "Texte normal",
"editorHeading1": "Titre 1",
"editorHeading2": "Titre 2",
"editorHeading3": "Titre 3",
"editorChecklist": "Liste de contrôle",
"editorToggleChecklist": "Cocher ou décocher l'élément",
"editorBulletList": "Liste à puces",
"editorNumberedList": "Liste numérotée",
"editorCodeBlock": "Bloc de code",
"editorUndo": "Annuler",
"editorRedo": "Rétablir"
},
"title": "Raccourcis clavier",
"searchPlaceholder": "Rechercher par action ou touche",
"results_one": "{{count}} résultat",
"results_many": "{{count}} résultats",
"results_other": "{{count}} résultats",
"noResults": "Aucun raccourci ne correspond",
"then": "puis",
"or": "ou",
"thenEllipsis": "puis…"
}
},
"notifications": {
"newCount_one": "{{count}} nouvelle",
"newCount_other": "{{count}} nouvelles",
"emptyTitle": "Aucune notification pour le moment",
"emptySubtitle": "Vous verrez les mises à jour et l'activité ici.",
"clearAll": "Effacer toutes les notifications",
"clearDialogTitle": "Effacer toutes les notifications?",
"clearDialogDescription": "Cela supprimera définitivement toutes les notifications. Vous ne pouvez pas annuler cette action.",
"events": {
"task_created": {
"title": "Nouvelle tâche créée",
"content": "La tâche \"{{taskTitle}}\" a été créée"
},
"workspace_created": {
"title": "Espace de travail créé",
"content": "Votre espace de travail \"{{workspaceName}}\" a été créé avec succès"
},
"task_status_changed": {
"title": "Statut de la tâche modifié",
"content": "Le statut de la tâche \"{{taskTitle}}\" est passé de \"{{oldStatus}}\" à \"{{newStatus}}\""
},
"task_assignee_changed": {
"title": "Une tâche vous est assignée",
"content": "Vous avez été assigné à la tâche : {{taskTitle}}"
},
"task_mention": {
"title": "{{mentionerName}} vous a mentionné",
"content": "{{mentionerName}} vous a mentionné dans : {{taskTitle}}"
},
"time_entry_created": {
"title": "Suivi du temps démarré",
"contentWithTask": "Le suivi du temps a démarré sur la tâche : {{taskTitle}}",
"contentWithoutTask": "Le suivi du temps a démarré sur une tâche"
},
"task_comment": {
"title": "{{commenterName}} a commenté votre tâche",
"content": "Nouveau commentaire sur {{taskTitle}} : {{commentPreview}}"
},
"due_date_reminder": {
"title": "Échéance proche",
"content": "{{taskTitle}} arrive à échéance dans {{leadTime}}"
},
"task_overdue": {
"title": "Tâche en retard",
"content": "{{taskTitle}} a dépassé sa date d'échéance"
}
},
"reminderLeadTime": {
"minutes_one": "{{count}} minute",
"minutes_other": "{{count}} minutes",
"hours_one": "{{count}} heure",
"hours_other": "{{count}} heures",
"days_one": "{{count}} jour",
"days_other": "{{count}} jours",
"minutes_many": "{{count}} minutes",
"days_many": "{{count}} jours",
"hours_many": "{{count}} heures"
},
"newCount_many": "{{count}} nouvelles",
"inbox": {
"back": "Boîte de réception",
"earlier": "Plus tôt",
"emptyFilter": "Aucune notification",
"filters": {
"all": "Tout",
"label": "Filtrer les notifications",
"mentions": "Mentions",
"unread": "Non lues"
},
"openTask": "Ouvrir la tâche",
"pageTitle": "Boîte de réception",
"recentActivity": "Activité récente",
"selectPrompt": "Sélectionnez une notification pour la lire",
"taskUnavailable": "Cette tâche n'est plus disponible.",
"today": "Aujourd'hui",
"unread": "Non lues",
"loadError": "Impossible de charger les notifications.",
"taskLoadError": "Impossible de charger cette tâche.",
"actionError": "Impossible de mettre à jour votre boîte de réception. Réessayez.",
"readCleared": "Notifications lues supprimées"
}
},
"activity": {
"assignedToSelf": "s'est assigné la tâche",
"unassigned": "a désassigné la tâche",
"assignedTo": "a assigné la tâche à {{name}}",
"changedStatus": "a changé le statut de {{from}} à {{to}}",
"changedPriority": "a changé la priorité de {{from}} à {{to}}",
"clearedDueDate": "a effacé la date d'échéance",
"setDueDate": "a défini la date d'échéance à {{date}}",
"changedDueDate": "a changé la date d'échéance de {{from}} à {{to}}",
"changedTitle": "a changé le titre de \"{{from}}\" à \"{{to}}\"",
"created": "a créé cette tâche",
"moved": "a déplacé la tâche de \"{{from}}\" à \"{{to}}\"",
"githubUser": "Utilisateur GitHub",
"comment": {
"viewGithubProfile": "Voir le profil GitHub",
"cannotBeEmpty": "Le commentaire ne peut pas être vide",
"mustBeLoggedInToEdit": "Vous devez être connecté pour modifier les commentaires",
"updated": "Commentaire mis à jour",
"failedToUpdate": "Échec de la mise à jour du commentaire",
"edit": "Modifier le commentaire",
"editPlaceholder": "Modifier le commentaire...",
"save": "Enregistrer",
"added": "Commentaire ajouté",
"failedToAdd": "Échec de l'ajout du commentaire",
"leavePlaceholder": "Laisser un commentaire...",
"attachFile": "Joindre un fichier",
"submitShortcut": "Soumettre le commentaire",
"editor": {
"uploadsOnlyOnSavedTasks": "Les téléversements de fichiers sont uniquement disponibles sur les tâches enregistrées.",
"uploadingFile": "Téléversement du fichier...",
"imageUploaded": "Image téléversée",
"fileAttached": "Fichier joint",
"failedToUploadFile": "Échec du téléversement du fichier",
"plaintext": "Texte brut",
"autoDetect": "Détection automatique",
"slashGroupText": "Texte",
"slashGroupLists": "Listes",
"slashGroupInsert": "Insérer",
"slashParagraph": "Texte",
"slashHeading": "Titre",
"slashBulletList": "Liste à puces",
"slashTaskList": "Liste de tâches",
"slashOrderedList": "Liste numérotée",
"slashQuote": "Citation",
"slashCodeBlock": "Bloc de code",
"slashTable": "Tableau",
"slashFile": "Fichier",
"searchParagraph": "texte paragraphe normal",
"searchHeading": "titre h2",
"searchBulletList": "liste puces non ordonnée",
"searchTaskList": "tache à faire liste à cocher case à cocher liste de tâches",
"searchOrderedList": "liste ordonnée numérotée",
"searchQuote": "citation",
"searchCodeBlock": "bloc de code",
"searchTable": "tableau grille",
"searchFile": "fichier pièce jointe image photo picture upload",
"embedErrorInvalidUrl": "Entrez une URL valide",
"embedErrorYoutubeOnly": "Seuls les liens YouTube peuvent être intégrés.",
"embedVideo": "Intégrer la vidéo",
"keepAsLink": "Conserver comme lien",
"hintTab": "Tab",
"hintEsc": "Esc",
"pasteUrl": "Coller l'URL",
"asLink": "Comme lien",
"embed": "Intégrer",
"noCommands": "Aucune commande",
"ariaCommentContent": "Contenu du commentaire",
"ariaCommentEditor": "Éditeur de commentaires",
"ariaCopyCode": "Copier le code",
"ariaCopied": "Copié",
"copy": "Copier",
"copied": "Copié",
"dropImageToUpload": "Déposer l'image pour téléverser",
"previewImageAlt": "Aperçu de l'image",
"codeLang": {
"bash": "Bash",
"csharp": "C#",
"cpp": "C++",
"css": "CSS",
"go": "Golang",
"graphql": "GraphQL",
"html": "HTML",
"json": "JSON",
"java": "Java",
"javascript": "JavaScript",
"markdown": "Markdown",
"mermaid": "Mermaid",
"plaintext": "Texte brut",
"python": "Python",
"rust": "Rust",
"sql": "SQL",
"swift": "Swift",
"typescript": "TypeScript",
"yaml": "YAML"
},
"table": {
"addColumnBefore": "Insérer une colonne à gauche",
"addColumnAfter": "Insérer une colonne à droite",
"deleteColumn": "Supprimer la colonne",
"addRowBefore": "Insérer une ligne au-dessus",
"addRowAfter": "Insérer une ligne en dessous",
"deleteRow": "Supprimer la ligne",
"deleteTable": "Supprimer le tableau"
},
"mermaid": {
"renderFailed": "Impossible d'afficher le diagramme Mermaid"
}
},
"importedFrom": "Importé depuis {{source}}",
"importedBy": "Importé par {{name}}",
"commentedOnForge": "a commenté sur {{forge}}"
},
"movedFromOtherProject": "a déplacé la tâche depuis un autre projet vers « {{to}} »"
},
"tasks": {
"dateFilter": {
"startDate": "Date de début",
"noDate": "Aucune date",
"condition": "Condition de date",
"exact": "Date exacte",
"range": "Plage de dates",
"before": "Avant",
"after": "Après",
"apply": "Appliquer le filtre de date",
"exactValue": "Le {{date}}",
"beforeValue": "Avant le {{date}}",
"afterValue": "Après le {{date}}",
"rangeValue": "{{date}} – {{end}}"
},
"title": "Tâches",
"status": {
"label": "Statut",
"to-do": "À faire",
"in-progress": "En cours",
"in-review": "En revue",
"done": "Fait",
"archived": "Archivé",
"planned": "Planifié"
},
"priority": {
"label": "Priorité",
"no-priority": "Pas de priorité",
"low": "Basse",
"medium": "Moyenne",
"high": "Haute",
"urgent": "Urgente"
},
"view": {
"board": "Tableau",
"list": "Liste",
"backlog": "Backlog",
"gantt": "Gantt",
"heading": "Vue"
},
"common": {
"selectTask": "Sélectionner une tâche",
"loadingTask": "Chargement de la tâche...",
"taskNotFound": "Tâche non trouvée",
"taskNotFoundDescription": "La tâche que vous recherchez n'existe pas ou a été supprimée.",
"ticketAmbiguous": "Cet identifiant correspond à plusieurs tâches",
"ticketAmbiguousDescription": "{{ticketId}} correspond à des tâches dans plusieurs projets de cet espace de travail. Attribuez une clé différente à l'un de ces projets pour que le lien fonctionne.",
"ticketNotFoundDescription": "Aucune tâche avec l'identifiant {{ticketId}} n'existe dans cet espace de travail, ou vous n'y avez pas accès.",
"customFields": "Champs personnalisés"
},
"detail": {
"subtaskOf": "Sous-tâche de",
"activity": "Activité",
"noActivity": "Aucune activité trouvée",
"openInFullPage": "Ouvrir en plein écran",
"titlePlaceholder": "Cliquez pour ajouter un titre",
"addDescription": "Ajouter une description...",
"editor": {
"ariaLabel": "Éditeur de description de tâche",
"placeholder": "Écrire une description...",
"previewImage": "Aperçu de l'image",
"autoDetect": "Détection automatique",
"copyCode": "Copier le code",
"copy": "Copier",
"copied": "Copié",
"attachFile": "Joindre un fichier",
"dropToUpload": "Déposer l'image pour téléverser",
"checkbox": {
"markIncomplete": "Marquer la tâche comme incomplète",
"markComplete": "Marquer la tâche comme terminée"
},
"upload": {
"loading": "Téléversement du fichier...",
"failed": "Échec du téléversement du fichier",
"imageSuccess": "Image téléversée",
"fileSuccess": "Fichier joint"
},
"slash": {
"groups": {
"text": "Texte",
"lists": "Listes",
"insert": "Insérer"
},
"empty": "Aucune commande",
"commands": {
"paragraph": "Texte",
"heading-2": "Titre",
"bullet-list": "Liste à puces",
"task-list": "Liste de tâches",
"ordered-list": "Liste numérotée",
"blockquote": "Citation",
"code-block": "Bloc de code",
"table": "Tableau",
"file": "Fichier"
}
},
"languages": {
"bash": "Bash",
"csharp": "C#",
"cpp": "C++",
"css": "CSS",
"clojure": "Clojure",
"cypher": "Cypher",
"dart": "Dart",
"diff": "Diff",
"elixir": "Elixir",
"excel": "Excel",
"go": "Golang",
"graphql": "GraphQL",
"html": "HTML",
"haskell": "Haskell",
"json": "JSON",
"java": "Java",
"javascript": "JavaScript",
"kotlin": "Kotlin",
"makefile": "Makefile",
"markdown": "Markdown",
"mermaid": "Mermaid",
"ocaml": "OCaml",
"php": "PHP",
"perl": "Perl",
"plaintext": "Texte brut",
"python": "Python",
"r": "R",
"reasonml": "ReasonML",
"ruby": "Ruby",
"rust": "Rust",
"sql": "SQL",
"swift": "Swift",
"toml": "TOML",
"terraform": "Terraform",
"typescript": "TypeScript",
"xml": "XML",
"yaml": "YAML"
},
"embed": {
"choice": {
"embedVideo": "Intégrer la vidéo",
"keepAsLink": "Conserver comme lien"
},
"inputPlaceholder": "Coller l'URL",
"embeddedContent": "Contenu intégré",
"asLink": "Comme lien",
"submit": "Intégrer",
"errors": {
"invalidUrl": "Entrez une URL valide",
"onlyYoutube": "Seuls les liens YouTube peuvent être intégrés."
},
"onlyYoutubeInline": "Seuls les liens YouTube peuvent être intégrés. Utilisez le mode lien à la place."
},
"mermaid": {
"renderFailed": "Impossible d'afficher le diagramme Mermaid"
},
"image": {
"large": "Grande",
"medium": "Moyenne",
"reset": "Réinitialiser la taille",
"resizeHandle": "Redimensionner l'image",
"small": "Petite"
},
"saved": "Enregistré",
"saving": "Enregistrement…",
"saveFailed": "Impossible d'enregistrer les modifications",
"retrySave": "Réessayer"
}
},
"entity": {
"task": "Tâche"
},
"relations": {
"title": "Relations",
"tasksInProject": "Tâches dans le projet",
"linkError": "Échec de la liaison de la tâche",
"empty": "Aucune tâche liée",
"searchPlaceholder": "Rechercher des tâches à lier...",
"noTasksFound": "Aucune tâche trouvée",
"openTask": "Ouvrir la tâche",
"removeRelation": "Supprimer la relation",
"related": "Liée",
"blocks": "Bloquée",
"selectTask": "Sélectionnez une tâche à lier",
"types": {
"blocks": "bloqué",
"blocked_by": "bloqué par",
"related": "relatif à"
},
"blockedBy": "Bloquée par",
"parentPlaceholder": "Définir la tâche parente…"
},
"subtasks": {
"title": "Sous-tâches",
"inputPlaceholder": "Titre de la sous-tâche...",
"addAction": "Ajouter",
"empty": "Aucune sous-tâche pour le moment",
"createError": "Échec de la création de la sous-tâche",
"deleteSuccess": "Tâche supprimée avec succès",
"deleteError": "Échec de la suppression de la tâche",
"deleteDialogTitle": "Supprimer la tâche ?",
"deleteDialogDescription": "Cela supprimera définitivement la tâche et toutes ses données. Vous ne pouvez pas annuler cette action.",
"deleteAction": "Supprimer la tâche",
"completeAria": "Marquer la sous-tâche comme terminée",
"progress": "{{completed}} sous-tâches terminées sur {{total}}",
"noCompletionColumn": "Ce projet ne possède aucune colonne correspondante pour terminer ou rouvrir cette sous-tâche."
},
"properties": {
"title": "Propriétés",
"labels": "Labels",
"addLabels": "Ajouter des étiquettes",
"copyTaskLink": "Copier le lien de la tâche",
"copyTaskBranch": "Copier la branche de la tâche",
"taskLinkCopied": "Lien de la tâche copié",
"taskBranchCopied": "Nom de la branche copié",
"start": "Début",
"startDate": "Date de début",
"noDate": "Pas de date",
"dates": "Dates",
"project": "Projet"
},
"move": {
"title": "Déplacer la tâche",
"projectLabel": "Projet de destination",
"projectPlaceholder": "Sélectionner un projet",
"statusLabel": "Statut de destination",
"statusHintKeep": "Le workflow du projet de destination supporte déjà le statut actuel.",
"statusHintAdjust": "Choisissez le statut à utiliser dans le projet de destination.",
"action": "Déplacer la tâche",
"success": "Tâche déplacée avec succès",
"error": "Échec du déplacement de la tâche"
},
"popover": {
"assignee": {
"unassigned": "Non assigné",
"updateError": "Échec de la mise à jour de l'assigné de la tâche"
},
"status": {
"updateError": "Échec de la mise à jour du statut de la tâche"
},
"priority": {
"updateError": "Échec de la mise à jour de la priorité de la tâche"
},
"dueDate": {
"updateError": "Échec de la mise à jour de la date d'échéance de la tâche",
"clear": "Effacer la date"
},
"startDate": {
"updateError": "Échec de la mise à jour de la date de début de la tâche",
"clear": "Effacer la date de début"
},
"labels": {
"searchPlaceholder": "Rechercher des labels...",
"empty": "Aucun label trouvé",
"create": "Créer \"{{name}}\"",
"chooseColor": "Choisir une couleur",
"updateError": "Échec de la mise à jour du label",
"createSuccess": "Label créé et ajouté",
"createError": "Échec de la création du label",
"colors": {
"stone": "Pierre",
"slate": "Ardoise",
"lavender": "Lavande",
"sage": "Sauge",
"forest": "Forêt",
"amber": "Ambre",
"terracotta": "Terre cuite",
"rose": "Rose",
"crimson": "Cramoisi",
"lagoon": "Lagon",
"ocean": "Océan",
"orchid": "Orchidée",
"sky": "Ciel"
},
"editLabels": "Modifier les labels"
},
"recurrence": {
"updateError": "Échec de la mise à jour de la répétition de la tâche",
"every": "Fréquence",
"hint": "Une fois cette tâche terminée, la suivante est créée.",
"interval": "Intervalle",
"onDays": "Les jours suivants",
"pattern": {
"daily": "Tous les jours",
"monthly": "Tous les mois",
"periodically": "Périodiquement",
"weekly": "Toutes les semaines",
"yearly": "Tous les ans"
},
"repeats": "Répétition",
"toggle": "Répéter",
"unit": {
"days_many": "jours",
"days_one": "jour",
"days_other": "jours",
"label": "Unité",
"months_many": "mois",
"months_one": "mois",
"months_other": "mois",
"weeks_many": "semaines",
"weeks_one": "semaine",
"weeks_other": "semaines",
"years_many": "ans",
"years_one": "an",
"years_other": "ans"
}
}
},
"backlog": {
"pageTitle": "Backlog de {{name}}",
"noTasksToMove": "Aucune tâche planifiée à déplacer",
"moveAllConfirm": "Déplacer toutes les tâches planifiées {{count}} vers À faire ?",
"moveAllSuccess": "Déplacé {{count}} tâches vers À faire",
"plan": "Planifier",
"moveAllTooltip": "Déplacer toutes les tâches planifiées vers À faire",
"moveAll": "Déplacer toutes",
"addTask": "Ajouter une tâche",
"sections": {
"planned": "Planifié",
"archived": "Archivé"
},
"noTasksInSection": "Aucune tâche {{section}}",
"filters": {
"dueThisWeek": "Échéance cette semaine",
"dueNextWeek": "Échéance la semaine prochaine",
"noDueDate": "Pas de date d'échéance"
}
},
"sort": {
"direction": "Direction",
"ascending": "Croissant",
"descending": "Décroissant",
"fields": {
"position": "Manuel (position)",
"createdAt": "Date de création",
"priority": "Priorité",
"dueDate": "Date d'échéance",
"title": "Titre",
"number": "Numéro de tâche"
}
},
"boardFilters": {
"selectedCount": "{{count}} sélectionné",
"subjects": {
"status": "Statut",
"priority": "Priorité",
"assignee": "Assigné",
"dueDate": "Date d'échéance",
"labels": "Labels"
},
"operators": {
"isAnyOf": "est l'un des",
"includeAnyOf": "inclut l'un des",
"is": "est",
"isNot": "n'est pas",
"isNoneOf": "n'est aucun de",
"include": "inclut",
"exclude": "exclut"
},
"allCustomFieldValues": "Toutes les valeurs",
"noCustomFieldValues": "Aucune valeur de champ personnalisé",
"noValuesUsedYet": "Aucune valeur utilisée pour le moment"
},
"gantt": {
"searchPlaceholder": "Rechercher des tâches planifiées...",
"pageTitle": "{{name}} / Gantt",
"title": "Chronologie de Gantt",
"hideTasks": "Masquer les tâches",
"showTasks": "Afficher les tâches",
"noTasks": "Aucune tâche planifiée",
"noTasksSubtitle": "Ajoutez une date de début, une date d'échéance ou les deux pour placer les tâches dans la chronologie du projet.",
"noTasksFound": "Aucune tâche trouvée",
"taskHeader": "Tâche",
"updateDatesError": "Échec de la mise à jour des dates de la tâche",
"resizeStart": "Redimensionner la date de début",
"resizeDue": "Redimensionner la date d'échéance",
"taskAriaLabel": "{{title}} : ouvrir ou déplacer",
"jumpToToday": "Aller à aujourd'hui",
"previousPeriod": "Période précédente",
"nextPeriod": "Période suivante",
"periodStart": "Date de début de la chronologie",
"showTaskDates": "Afficher les dates des tâches"
},
"delete": {
"title": "Supprimer la tâche ?",
"description": "Cela supprimera définitivement la tâche et toutes ses données. Vous ne pouvez pas annuler cette action.",
"action": "Supprimer la tâche",
"success": "Tâche supprimée avec succès",
"error": "Échec de la suppression de la tâche"
},
"duplicate": {
"titleSuffix": "{{title}} (copie)",
"success": "Tâche dupliquée avec succès",
"error": "Échec de la duplication de la tâche"
},
"archive": {
"success": "{{count}} tâches archivées",
"confirmTitle_one": "Archiver {{count}} tâche terminée ?",
"confirmTitle_many": "Archiver {{count}} tâches terminées ?",
"confirmTitle_other": "Archiver {{count}} tâches terminées ?",
"confirmDescription": "Elles quittent le tableau et passent dans la section « Archivé » du backlog."
},
"listView": {
"addTask": "Ajouter une tâche",
"archiveAllTooltip": "Archiver toutes les tâches terminées",
"noTasks": "Aucune tâche",
"collapseSubtasks": "Masquer les sous-tâches de {{title}}",
"expandSubtasks": "Afficher les sous-tâches de {{title}}",
"subtaskLevel": "Sous-tâche, niveau {{level}}",
"subtasksLoadError": "Impossible de charger les sous-tâches : les tâches s'affichent sans leur hiérarchie."
},
"kanban": {
"addTask": "Ajouter une tâche",
"automaticallySortedHint": "Tri automatique par {{sort}}"
},
"pr": {
"merged": "Fusionné",
"draft": "Brouillon",
"open": "Ouvert",
"label": "Demande de fusion",
"count_one": "{{count}} PR",
"count_other": "{{count}} PR",
"count_many": "{{count}} PR",
"closed": "Fermée"
},
"assignee": {
"label": "Assigné",
"unassigned": "Non assigné"
},
"dueDate": {
"label": "Date d'échéance",
"clear": "Effacer la date",
"updateError": "Échec de la mise à jour de la date d'échéance de la tâche",
"clearError": "Échec de l'effacement de la date d'échéance"
},
"labels": {
"empty": "Aucun label disponible"
},
"update": {
"error": "Échec de la mise à jour de la tâche"
},
"contextMenu": {
"copyLink": "Copier le lien",
"copyLinkSuccess": "Lien de la tâche copié !"
},
"actions": {
"duplicate": "Dupliquer",
"archive": "Archiver",
"markAsPlanned": "Marquer comme planifié",
"delete": "Supprimer..."
},
"bulk": {
"selectedCount": "{{count}} sélectionné",
"moveToBacklog": "Déplacer vers le backlog",
"moveToBacklogSuccess": "{{count}} tâches déplacées vers le backlog",
"moveToBacklogError": "Échec du déplacement des tâches vers le backlog",
"moveToBoard": "Déplacer vers le tableau",
"moveToBoardSuccess": "{{count}} tâches déplacées vers le tableau",
"moveToBoardError": "Échec du déplacement des tâches vers le tableau",
"delete": "Supprimer les tâches",
"deleteConfirmTitle_one": "Supprimer {{count}} tâche ?",
"deleteConfirmTitle_many": "Supprimer {{count}} tâches ?",
"deleteConfirmTitle_other": "Supprimer {{count}} tâches ?",
"deleteConfirmDescription": "Cela supprimera définitivement les tâches sélectionnées et toutes leurs données. Vous ne pouvez pas annuler cette action.",
"deleteSuccess": "{{count}} tâches supprimées",
"deleteError": "Échec de la suppression des tâches",
"archive": "Archiver les tâches",
"archiveSuccess": "{{count}} tâches archivées",
"archiveError": "Échec de l'archivage des tâches",
"updateSuccess": "{{count}} tâches mises à jour",
"updateError": "Échec de la mise à jour des tâches",
"assignTo": "Attribuer à",
"assignSuccess": "{{count}} tâches attribuées",
"assignError": "Échec de l'attribution des tâches",
"setPriority": "Définir la priorité",
"updatePriorityError": "Échec de la mise à jour de la priorité",
"addLabel": "Ajouter un label",
"addLabelSuccess": "Label ajouté à {{count}} tâches",
"addLabelError": "Échec de l'ajout du label",
"updateDueDateError": "Échec de la mise à jour de la date d'échéance",
"actions": "Actions",
"searchActions": "Rechercher des actions...",
"noActionsFound": "Aucune action trouvée.",
"changeStatus": "Changer le statut",
"clearSelection": "Effacer la sélection",
"selectAll": "Tout sélectionner",
"moreActions": "Plus d'actions",
"statusPlaceholder": "Changer le statut…",
"priorityPlaceholder": "Définir la priorité…",
"assigneePlaceholder": "Assigner à…",
"labelPlaceholder": "Ajouter une étiquette…",
"columnPlaceholder": "Déplacer vers la colonne…"
},
"editor": {
"table": {
"addColumnBefore": "Insérer une colonne à gauche",
"addColumnAfter": "Insérer une colonne à droite",
"deleteColumn": "Supprimer la colonne",
"addRowBefore": "Insérer une ligne au-dessus",
"addRowAfter": "Insérer une ligne en dessous",
"deleteRow": "Supprimer la ligne",
"deleteTable": "Supprimer le tableau"
}
},
"calendar": {
"dayTasksAriaLabel": "Afficher toutes les tâches du {{date}}",
"moreTasks": "+{{count}} de plus",
"nextMonth": "Mois suivant",
"noTasks": "Aucune tâche planifiée",
"noTasksSubtitle": "Ajoutez une date de début, une date d’échéance ou les deux aux tâches pour les afficher dans le calendrier.",
"pageTitle": "{{name}} / Calendrier",
"previousMonth": "Mois précédent",
"taskAriaLabel": "{{title}}, {{range}} : ouvrir la tâche",
"title": "Calendrier",
"today": "Aujourd’hui",
"loadError": "Échec du chargement des tâches.",
"noTasksThisMonth": "Rien de planifié ce mois-ci"
},
"descriptionSearchLoading": "Recherche dans les descriptions complètes…",
"descriptionSearchError": "La recherche dans les descriptions a échoué. Les résultats peuvent être incomplets.",
"descriptionRetry": "Réessayer",
"descriptionLoading": "Chargement de la description…",
"descriptionLoadError": "Impossible de charger la description. Réessayez pour charger la version actuelle.",
"checklistProgress": "{{completed}} éléments de la liste terminés sur {{total}}",
"customFields": {
"fields": "Champs",
"empty": "Vide",
"required": "Requis",
"enterKey": "Entrée",
"toSave": "pour enregistrer",
"clear": "Effacer",
"setValue": "Définir {{field}}…",
"noMatches": "Aucune option correspondante",
"missingRequired_one": "{{count}} champ obligatoire est vide",
"missingRequired_many": "{{count}} champs obligatoires sont vides",
"missingRequired_other": "{{count}} champs obligatoires sont vides",
"saveError": "Impossible d'enregistrer {{field}}",
"moreFields_one": "{{count}} champ de plus",
"moreFields_many": "{{count}} champs de plus",
"moreFields_other": "{{count}} champs de plus",
"manage": "Gérer les champs"
},
"board": {
"reorderFailed": "Impossible de déplacer la tâche. Veuillez réessayer.",
"keyboardInstructions": "Appuyez sur Espace pour l'aperçu et sur Entrée pour ouvrir cette tâche. Utilisez Alt ou Option avec les flèches pour la déplacer.",
"loadErrorTitle": "Ce tableau ne s'est pas chargé",
"loadErrorDescription": "Un problème est survenu lors de la récupération des tâches. Vérifiez votre connexion et réessayez.",
"refreshError": "Impossible d'actualiser ce tableau, il n'est peut-être pas à jour.",
"tryAgain": "Réessayer"
},
"recurrence": {
"daily_many": "Tous les {{count}} jours",
"daily_one": "Tous les jours",
"daily_other": "Tous les {{count}} jours",
"monthly_many": "Tous les {{count}} mois",
"monthly_one": "Tous les mois",
"monthly_other": "Tous les {{count}} mois",
"weekly_many": "Toutes les {{count}} semaines",
"weekly_one": "Toutes les semaines",
"weekly_other": "Toutes les {{count}} semaines",
"yearly_many": "Tous les {{count}} ans",
"yearly_one": "Tous les ans",
"yearly_other": "Tous les {{count}} ans",
"onDays": "{{rule}} : {{days}}"
},
"toolbar": {
"search": "Rechercher des tâches",
"clearSearch": "Effacer la recherche",
"taskCount_one": "{{count}} tâche",
"taskCount_many": "{{count}} tâches",
"taskCount_other": "{{count}} tâches",
"shownCount_one": "{{shown}} sur {{count}} tâche",
"shownCount_many": "{{shown}} sur {{count}} tâches",
"shownCount_other": "{{shown}} sur {{count}} tâches"
},
"display": {
"title": "Affichage",
"sortBy": "Trier par",
"showOnCards": "Afficher sur les cartes",
"showOnRows": "Afficher sur les lignes",
"checklistProgress": "Progression de la liste",
"projectBackground": "Arrière-plan du projet",
"layout": "Disposition",
"includeSubtasks": "Inclure les sous-tâches",
"useProjectDefault": "Utiliser le réglage par défaut du projet"
},
"filterBar": {
"label": "Filtres actifs",
"removeFilter": "Retirer le filtre {{name}}",
"noMatches": "Aucune tâche ne correspond à votre recherche ou à vos filtres.",
"customFieldsLoading": "Loading custom-field values. Results are shown without custom-field filters.",
"customFieldsRefreshError": "Custom-field values could not be refreshed. Results may be out of date.",
"customFieldsUnavailable": "Custom-field values could not be loaded. Results are shown without custom-field filters."
},
"filterMenu": {
"addFilter": "Ajouter un filtre…",
"searchSubject": "{{name}}…",
"noResults": "Aucun résultat"
},
"shortcuts": {
"assignedToMe": "Assignée à vous",
"idCopied": "ID de la tâche copié",
"titleCopied": "Titre de la tâche copié",
"markdownCopied": "Copié en Markdown",
"copyFailed": "Impossible de copier dans le presse-papiers.",
"pageUrlCopied": "URL de la page copiée"
},
"due": {
"overdueDays_one": "En retard de {{count}} j",
"overdueDays_many": "En retard de {{count}} j",
"overdueDays_other": "En retard de {{count}} j",
"overdueWeeks_one": "En retard de {{count}} sem.",
"overdueWeeks_many": "En retard de {{count}} sem.",
"overdueWeeks_other": "En retard de {{count}} sem.",
"today": "Aujourd’hui",
"tomorrow": "Demain",
"inDays_one": "Dans {{count}} jour",
"inDays_many": "Dans {{count}} jours",
"inDays_other": "Dans {{count}} jours",
"fullDate": "Échéance le {{date}}"
},
"datePicker": {
"dueDatePlaceholder": "Définir l’échéance…",
"startDatePlaceholder": "Définir la date de début…",
"datePlaceholder": "Définir une date…",
"thisWeekend": "Ce week-end",
"nextWeek": "La semaine prochaine",
"pickDate": "Choisir une date",
"startsOn": "Commence le {{date}}",
"beforeStart": "{{date}} est avant la date de début",
"afterDue": "{{date}} est après l’échéance"
}
},
"invitations": {
"email": {
"subject": "{{inviterName}} vous invite à rejoindre {{workspaceName}} sur {{instanceName}}",
"preview": "Vous êtes invité à rejoindre {{workspaceName}} sur Kaneo",
"title": "Rejoindre {{workspaceName}}",
"subtitle": "{{inviterName}} ({{inviterEmail}}) vous invite à collaborer sur Kaneo.",
"cta": "Accepter l’invitation",
"sameEmail": "Vous pouvez accepter l’invitation avec l’adresse e-mail qui a reçu ce message.",
"ignore": "Si vous ne vous attendiez pas à recevoir ce message, vous pouvez l’ignorer.",
"footer": "Invitation à un espace de travail Kaneo",
"details": {
"title": "Détails de l’invitation",
"sentTo": "Envoyée à",
"instance": "Instance",
"role": "Rôle",
"expires": "Expire"
}
},
"pageTitle": "Invitations",
"pendingInvitations": "Invitations en attente",
"acceptSubtitle": "Acceptez les invitations pour rejoindre les workspaces",
"noPendingTitle": "Aucune invitation en attente",
"noPendingDescription": "Vous n'avez aucune invitation de workspace en attente pour le moment.",
"continueToSetup": "Continuer vers la configuration",
"skipForNow": "Ignorer pour l'instant",
"table": {
"workspace": "Espace de travail",
"invitedBy": "Invité par",
"expires": "Expire"
},
"toast": {
"acceptError": "Échec de l'acceptation de l'invitation",
"acceptSuccess": "Invitation acceptée ! Bienvenue dans l'équipe.",
"rejectError": "Échec du rejet de l'invitation",
"rejectSuccess": "Invitation rejetée"
}
},
"workspace": {
"projects": {
"pageTitle": "Projets",
"createProject": "Créer un projet",
"title": "Titre",
"progress": "Progression",
"targetDate": "Date cible",
"dueDate": "Date d'échéance",
"status": "Statut",
"emptyTitle": "Aucun projet pour le moment",
"emptyDescription": "Commencez par créer votre premier projet.",
"emptyDescriptionReadOnly": "Il n'y a pas encore de projets dans cet espace de travail. Demandez à un administrateur d'en créer un.",
"projectStatus": {
"notStarted": "Non commencé",
"complete": "Terminé",
"inProgress": "En cours"
},
"noDueDate": "Pas de date d'échéance",
"reorderHandle": "Réorganiser le projet",
"reorderError": "Échec de la réorganisation des projets",
"unavailable": {
"backToWorkspace": "Retour à l'espace de travail",
"noAccessDescription": "Demandez à un administrateur de l'espace de travail de vous donner accès.",
"noAccessTitle": "Vous n'avez pas accès à ce projet",
"notFoundDescription": "Ce projet n'existe pas ou a été supprimé.",
"notFoundTitle": "Projet introuvable"
}
},
"search": {
"pageTitle": "Rechercher",
"backToDashboard": "Retour au tableau de bord",
"placeholder": "Rechercher des tâches par titre ou ID court (ex: DEP-23)...",
"hint": "Rechercher dans tous les projets de ce workspace. Utilisez des ID courts comme DEP-23 pour trouver des tâches spécifiques.",
"searching": "Recherche...",
"resultsFound_one": "{{count}} résultat trouvé",
"resultsFound_other": "{{count}} résultats trouvés",
"noResultsTitle": "Aucun résultat trouvé",
"noResultsDescription": "Essayez d'ajuster vos termes de recherche ou recherchez autre chose",
"startTitle": "Commencer la recherche",
"startDescription": "Entrez un terme de recherche pour trouver des tâches dans tous les projets",
"quickSearchesLabel": "Recherches rapides :",
"suggestionHighPriority": "Priorité élevée",
"suggestionBug": "Bug",
"suggestionFeature": "Fonctionnalité",
"suggestionInProgress": "En cours",
"suggestionCompleted": "Terminé",
"resultsFound_many": "{{count}} résultats trouvés"
},
"create": {
"pageTitle": "Créer un workspace",
"heading": "Créer un nouveau workspace",
"subtitle": "Les workspaces sont des environnements partagés où les équipes peuvent travailler sur des projets, des cycles et des problèmes.",
"nameLabel": "Nom du workspace",
"namePlaceholder": "Entrez le nom du workspace",
"descriptionLabel": "Description (optionnel)",
"descriptionPlaceholder": "Ajoutez une description pour votre workspace",
"required": "Obligatoire",
"creating": "Création...",
"submit": "Créer un workspace",
"success": "Workspace créé avec succès",
"error": "Échec de la création du workspace"
},
"home": {
"activity": {
"commented": "a commenté",
"empty": "Aucune activité au cours des 30 derniers jours.",
"loadError": "Impossible de charger l'activité.",
"title": "Activité",
"updated": "a mis à jour la tâche"
},
"greeting": {
"afternoon": "Bon après-midi",
"evening": "Bonsoir",
"morning": "Bonjour"
},
"newTask": "Nouvelle tâche",
"pageTitle": "Accueil",
"projects": {
"all": "Tous les projets",
"tasks_many": "{{count}} tâches",
"tasks_one": "{{count}} tâche",
"tasks_other": "{{count}} tâches",
"title": "Vos projets",
"loadError": "Impossible de charger les projets."
},
"upNext": {
"assigned_many": "{{count}} tâches vous sont assignées",
"assigned_one": "{{count}} tâche vous est assignée",
"assigned_other": "{{count}} tâches vous sont assignées",
"title": "À suivre",
"viewAll": "Tout voir"
},
"week": {
"more_many": "+{{count}} de plus",
"more_one": "+{{count}} de plus",
"more_other": "+{{count}} de plus",
"truncated": "L'aperçu de la semaine ne comprend que les {{shown}} premières tâches assignées sur {{total}}."
}
},
"myTasks": {
"emptyDescription": "Les tâches qui vous sont assignées dans cet espace de travail s'affichent ici.",
"groupBy": {
"dueDate": "Date d'échéance",
"label": "Grouper par",
"project": "Projet"
},
"pageTitle": "Mes tâches",
"truncated": "Affichage des {{shown}} premières tâches sur {{total}}."
},
"myWork": {
"due": {
"later": "Plus tard",
"noDueDate": "Aucune date d'échéance",
"overdue": "En retard",
"thisWeek": "Cette semaine",
"today": "Aujourd'hui",
"tomorrow": "Demain"
},
"empty": "Rien ne vous est assigné",
"loadError": "Impossible de charger vos tâches."
},
"archived": {
"description": "Contact an administrator to restore access.",
"manage": "Manage workspaces",
"otherWorkspaces": "Go to workspaces",
"title": "Workspace archived"
}
},
"team": {
"roles": {
"owner": "Propriétaire",
"admin": "Administrateur",
"member": "Membre",
"viewer": "Observateur"
},
"members": {
"pageTitle": "Membres",
"inviteMember": "Inviter un membre",
"you": "Vous"
},
"invitations": {
"pendingBadge": "En attente",
"expires": "Expire {{date}}",
"linkLabel": "Lien d'invitation",
"copyLink": "Copier le lien",
"linkCopied": "Lien d'invitation copié",
"copyFailed": "Impossible de copier automatiquement. Sélectionnez le lien et appuyez sur Ctrl+C."
},
"inviteModal": {
"title": "Inviter un membre de l'équipe",
"emailLabel": "E-mail",
"emailPlaceholder": "collegue@entreprise.fr",
"sendInvitation": "Envoyer l'invitation",
"success": "Invitation envoyée avec succès",
"error": "Échec de l'envoi de l'invitation",
"createdTitle": "Invitation créée",
"shareLinkDescription": "Partagez ce lien avec {{email}} pour qu'il puisse rejoindre l'espace de travail.",
"done": "Terminé"
},
"membersTable": {
"emptyTitle": "Aucun membre de l'équipe pour le moment",
"emptyDescription": "Invitez votre premier membre dans l'équipe pour commencer.",
"columns": {
"name": "Nom",
"role": "Rôle",
"joined": "Rejoint",
"actions": "Actions",
"projects": "Projets"
},
"memberRolePending": "{{role}} (En attente)",
"ariaCancelInvitation": "Annuler l'invitation",
"ariaRemoveMember": "Supprimer le membre",
"removeDialogTitle": "Supprimer un membre de l'équipe ?",
"removeDialogDescription": "Êtes-vous sûr de vouloir supprimer {{name}} de l'équipe ? Cette action ne peut pas être annulée.",
"cancelDialogTitle": "Annuler l'invitation ?",
"cancelDialogDescription": "Êtes-vous sûr de vouloir annuler l'invitation pour {{email}} ? Cette action ne peut pas être annulée.",
"removeMember": "Supprimer le membre",
"cancelInvitation": "Annuler l'invitation",
"removeSuccess": "Membre de l'équipe supprimé avec succès",
"removeError": "Échec de la suppression du membre de l'équipe",
"cancelInviteSuccess": "Invitation annulée avec succès",
"cancelInviteError": "Échec de l'annulation de l'invitation",
"roleUpdateSuccess": "Rôle mis à jour",
"roleUpdateError": "Échec de la mise à jour du rôle",
"ariaInvitationActions": "Actions de l'invitation"
},
"projectAccess": {
"allProjects": "Tous les projets",
"allProjectsDescription": "Accéder à tous les projets de cet espace de travail, y compris les nouveaux.",
"description": "Choisissez les projets que cette personne peut voir.",
"dialogDescription": "Choisissez les projets auxquels {{name}} peut accéder.",
"dialogTitle": "Accès aux projets",
"editAria": "Modifier l'accès aux projets de {{name}} ({{access}})",
"label": "Accès aux projets",
"noProjects": "Aucun projet dans cet espace de travail pour le moment.",
"projectCount_many": "{{count}} projets",
"projectCount_one": "{{count}} projet",
"projectCount_other": "{{count}} projets",
"projectsLabel": "Projets",
"save": "Enregistrer",
"selectAtLeastOne": "Choisissez au moins un projet.",
"selectedProjects": "Projets sélectionnés",
"selectedProjectsDescription": "Accéder uniquement aux projets que vous choisissez.",
"updateError": "Échec de la mise à jour de l'accès aux projets",
"updateSuccess": "Accès aux projets mis à jour",
"archived": "Archivé",
"allProjectsUnavailable": "Vos propres accès sont limités. Vous ne pouvez donc donner accès qu'à certains projets."
}
},
"publicProject": {
"pageTitle": "Vue publique",
"badge": "Public",
"readOnly": "Lecture seule",
"error": {
"title": "Projet non trouvé",
"description": "Ce projet n'existe pas ou n'est pas accessible publiquement."
},
"taskCard": {
"viewDetailsAria": "Voir les détails de la tâche {{title}}"
},
"taskDetail": {
"labels": "Labels",
"externalLinks": "Liens externes",
"pullRequestFallback": "Demande de fusion",
"issueFallback": "Problème",
"prStatusMerged": "Fusionné",
"prStatusDraft": "Brouillon",
"prStatusOpen": "Ouvert",
"dueWithDate": "Échéance {{date}}",
"created": "Créé",
"dueDateLabel": "Date d'échéance"
},
"theme": {
"switchToLight": "Passer en mode clair",
"switchToDark": "Passer en mode sombre"
},
"copyUrl": {
"successToast": "URL copiée",
"errorToast": "Échec de la copie de l'URL",
"copied": "Copié",
"share": "Partager"
},
"branding": {
"poweredBy": "Propulsé par"
}
},
"press": {
"title": "Kit de presse",
"headline": "Kit de presse Kaneo",
"intro": "Logos et captures d'écran de Kaneo pour les articles, vidéos et autres médias.",
"description": "Ressources presse de Kaneo : informations sur le produit, logos, captures d'écran et coordonnées pour les journalistes et les créateurs.",
"downloadKit": "Télécharger toutes les ressources",
"boilerplateTitle": "À propos de Kaneo",
"boilerplate": "Kaneo est une plateforme de gestion de projet open source créée par Andrej Acevski. Les équipes peuvent organiser les tâches en tableaux et en listes, assigner le travail, définir des priorités et des dates d'échéance, et connecter GitHub. Kaneo est disponible sous licence MIT pour l'auto-hébergement, ou en tant que service géré via Kaneo Cloud.",
"logosTitle": "Logos",
"darkLogo": "Logotype sombre",
"darkLogoAlt": "Logo Kaneo sombre sur fond clair",
"darkLogoDetail": "SVG",
"lightLogo": "Logotype clair",
"lightLogoAlt": "Logo Kaneo clair sur fond sombre",
"lightLogoDetail": "SVG",
"icon": "Icône de l'application",
"iconAlt": "Icône de l'application Kaneo",
"iconDetail": "PNG, 512 × 512",
"download": "Télécharger",
"screenshotsTitle": "Captures d'écran",
"lightScreenshot": "Tableau (clair)",
"lightScreenshotAlt": "Tableau Kaneo en thème clair, avec les cartes de tâches organisées par statut",
"darkScreenshot": "Tableau (sombre)",
"darkScreenshotAlt": "Tableau Kaneo en thème sombre, avec les cartes de tâches organisées par statut",
"contactTitle": "Demandes presse",
"contactBody": "Contactez l'équipe Kaneo pour toute question sur le produit, demande d'entretien ou ressource supplémentaire.",
"usageContrast": "Choisissez le logotype clair pour les fonds sombres et le logotype sombre pour les fonds clairs.",
"usageProportions": "Conservez les proportions et les couleurs d'origine, sans étirement ni ajout d'effets.",
"usageSpace": "Laissez suffisamment d'espace autour du logo pour qu'il reste net et lisible.",
"darkListScreenshot": "Liste (sombre)",
"darkListScreenshotAlt": "Liste de tâches Kaneo en thème sombre, regroupées par statut avec les personnes assignées, les priorités, les labels et les dates d'échéance",
"darkTaskScreenshot": "Détails de la tâche (sombre)",
"darkTaskScreenshotAlt": "Détails d'une tâche Kaneo en thème sombre, avec une description, une liste de contrôle, un commentaire d'équipe et les propriétés de la tâche",
"darkTimelineScreenshot": "Chronologie (sombre)",
"darkTimelineScreenshotAlt": "Diagramme de Gantt Kaneo en thème sombre, affichant les tâches planifiées et leurs durées",
"lightListScreenshot": "Liste (claire)",
"lightListScreenshotAlt": "Liste de tâches Kaneo en thème clair, regroupées par statut avec les personnes assignées, les priorités, les labels et les dates d'échéance",
"lightTaskScreenshot": "Détails de la tâche (clair)",
"lightTaskScreenshotAlt": "Détails d'une tâche Kaneo en thème clair, avec une description, une liste de contrôle, un commentaire d'équipe et les propriétés de la tâche",
"lightTimelineScreenshot": "Chronologie (claire)",
"lightTimelineScreenshotAlt": "Diagramme de Gantt Kaneo en thème clair, affichant les tâches planifiées et leurs durées"
},
"landing": {
"sponsors": {
"ciSponsor": "Partenaires"
},
"founder": {
"title": "Pourquoi Kaneo existe",
"intro": "Je m'appelle Andrej et j'ai créé Kaneo parce que j'en avais assez des outils de gestion de projet qui gênaient plus qu'ils n'aidaient. Après des années à utiliser des plateformes surchargées et trop complexes qui détournaient l'attention du vrai travail, je savais qu'il devait y avoir une meilleure solution.",
"problem": "Le problème n'était pas que ces outils manquaient de fonctionnalités, mais qu'ils en avaient trop. Chaque notification, chaque bouton inutile, chaque processus complexe éloignait mon équipe de l'essentiel : créer d'excellents produits.",
"principle": "Je crois que les meilleurs outils sont invisibles. Ils doivent accompagner la façon de travailler de votre équipe, sans vous imposer la leur. Kaneo repose sur un principe : aller à l'essentiel. Chaque fonctionnalité existe parce qu'elle résout un vrai problème, pas pour impressionner lors d'une démonstration."
},
"hero": {
"cloudCta": "Essayer Kaneo Cloud",
"trialNote": "Essai cloud de 14 jours. Aucune carte bancaire requise.",
"github": "GitHub",
"productHunt": "Product Hunt",
"title": "Une gestion de projet",
"titleAccent": "qui ne devient pas un projet en soi.",
"description": "Une gestion de projet open source avec des tableaux, des diagrammes de Gantt et une intégration GitHub. Auto-hébergez gratuitement avec le SSO inclus, ou laissez Kaneo Cloud s'occuper de l'hébergement.",
"pricingCta": "See pricing",
"appStore": "App Store"
},
"navigation": {
"product": "Produit",
"pricing": "Tarifs",
"resources": "Ressources",
"docs": "Documentation",
"blog": "Blog",
"guides": "Guides",
"comparisons": "Comparer les outils",
"roadmap": "Feuille de route",
"community": "Communauté",
"menu": "Menu",
"closeMenu": "Fermer le menu",
"home": "Accueil de Kaneo",
"signIn": "Connexion",
"getStarted": "Commencer"
},
"showcase": {
"label": "Vues du produit Kaneo",
"controls": "Choisir une vue du produit",
"play": "Faire défiler les vues du produit",
"pause": "Mettre en pause le défilement des vues du produit",
"board": "Tableau",
"list": "Backlog",
"gantt": "Gantt"
},
"features": {
"tasks": {
"label": "Sous-tâches et contexte",
"title": "De grandes tâches. Des étapes claires.",
"description": "Décomposez le travail en sous-tâches, assignez chacune d'elles et suivez l'avancement sans perdre de vue la demande d'origine. Chaque détail reste lié au travail."
},
"github": {
"label": "Intégration GitHub",
"title": "De la demande de fusion à la tâche terminée.",
"description": "Les tickets et les labels se synchronisent dans les deux sens. Les demandes de fusion liées font passer les tâches en revue puis à l'état terminé au fil de l'ouverture et de la fusion de votre code.",
"link": "Configurer GitHub"
},
"hosting": {
"title": "Exécutez-le sur votre propre serveur.",
"description": "Déployez avec Docker et conservez votre espace de travail sur une infrastructure que vous contrôlez.",
"link": "Auto-héberger Kaneo"
},
"source": {
"title": "Le code est ouvert, lui aussi.",
"description": "Consultez le code source, signalez un problème ou proposez une modification. Le développement se déroule sur GitHub.",
"link": "Voir le code source"
},
"preview": {
"taskAlt": "Aperçu interactif d'une tâche Kaneo et de ses sous-tâches.",
"githubAlt": "Aperçu interactif d'une fusion GitHub mettant à jour une tâche Kaneo.",
"taskTitle": "Publier la nouvelle page d'accueil",
"taskDescription": "Mettez à jour le texte et vérifiez la mise en page avant la prochaine version.",
"checklistDone": "Relire le texte",
"checklistOpen": "Vérifier la mise en page mobile",
"inProgress": "En cours",
"high": "Haute",
"date": "12 oct.",
"design": "conception",
"done": "Terminé",
"relationsAlt": "Aperçu interactif des dépendances entre tâches Kaneo.",
"inReview": "En revue",
"trySubtasks": "Essayez de cocher une sous-tâche.",
"tryGithub": "Prévisualisez une fusion pour voir la tâche se mettre à jour.",
"tryRelations": "Ouvrez une tâche liée pour suivre la relation.",
"mergeAction": "Prévisualiser la fusion",
"resetAction": "Réinitialiser l'aperçu",
"mergedHint": "Fusion effectuée. Tâche déplacée vers Terminé.",
"progress": "{{completed}} sous-tâches sur {{total}} terminées",
"backToTask": "Retour à la tâche de la page d'accueil",
"releaseNotes": "Rédiger les notes de version",
"dependencyDescription": "La page d'accueil attend la vérification mobile. Gardez les notes de lancement liées pour conserver le contexte.",
"mobileDescription": "Vérifiez la nouvelle page d'accueil sur les petits écrans avant sa mise en ligne.",
"notesDescription": "Notez les changements pour l'annonce du lancement."
},
"relations": {
"label": "Tâches liées et dépendances",
"title": "Repérez ce qui bloque l'avancement.",
"description": "Reliez les blocages, suivez les dépendances et gardez les travaux associés à portée de main. Ouvrez une tâche liée pour comprendre le contexte de la prochaine étape."
}
},
"seo": {
"title": "Kaneo — Gestion de projet open source et auto-hébergée",
"description": "Une gestion de projet open source avec des tableaux, des diagrammes de Gantt et une intégration GitHub. Auto-hébergez gratuitement avec le SSO inclus, ou utilisez Kaneo Cloud."
},
"resources": {
"eyebrow": "Adaptez-le à vos besoins",
"title": "De l'essai à l'utilisation, un parcours clair.",
"description": "Configurez votre serveur, connectez vos outils ou comparez Kaneo à votre outil de suivi actuel.",
"sso": {
"title": "Utilisez votre propre fournisseur d'identité",
"description": "Configurez l'authentification unique OIDC dans la version auto-hébergée gratuite."
},
"mcp": {
"title": "Connectez vos outils d'IA",
"description": "Utilisez MCP pour gérer les tâches et les projets depuis un client d'IA."
},
"linear": {
"title": "Comparer Kaneo et Linear",
"description": "Découvrez les différences d'hébergement, de licence et de flux de travail."
},
"startups": {
"description": "What a startup needs from a tracker, and what Kaneo Cloud costs as you hire.",
"title": "Project management for startups"
}
},
"product": {
"title": "Avant de commencer",
"description": "Les informations pratiques sur l'hébergement, la planification et la connexion de votre équipe.",
"overview": "Kaneo est une plateforme de gestion de projet open source sous licence MIT, avec des tableaux, un backlog, des vues Gantt et calendrier, des champs personnalisés, le suivi du temps et une intégration GitHub. Auto-hébergez-la sur votre propre infrastructure ou utilisez Kaneo Cloud.",
"hosting": {
"question": "L'auto-hébergement de Kaneo est-il gratuit ?",
"answer": "Oui. Kaneo est sous licence MIT et son auto-hébergement est gratuit, avec l'authentification unique incluse. Exécutez l'application avec PostgreSQL via Docker Compose, ou déployez-la avec le chart Helm officiel. Vous gérez l'infrastructure, les mises à jour et les sauvegardes.",
"link": "Lire le guide d'installation"
},
"planning": {
"question": "Kaneo propose-t-il des diagrammes de Gantt ?",
"answer": "Oui. Kaneo inclut des vues Gantt et calendrier en plus des tableaux, des listes et de la planification du backlog. Utilisez les dates de début et d'échéance des tâches pour planifier le travail sur une chronologie. La budgétisation, les comparaisons avec une référence initiale et les rapports d'avancement de sprint ne font pas partie de ses fonctionnalités actuelles.",
"link": "Comparer les fonctionnalités de planification"
},
"sso": {
"question": "L'authentification unique est-elle incluse ?",
"answer": "Oui. La version auto-hébergée gratuite prend en charge Google, GitHub, Discord et les fournisseurs OAuth/OIDC personnalisés. Configurez votre fournisseur sur votre instance sans acheter une édition distincte de Kaneo.",
"link": "Configurer OIDC"
},
"agents": {
"question": "Les clients d'IA peuvent-ils utiliser Kaneo ?",
"answer": "Oui. Kaneo fournit un serveur MCP via le paquet @kaneo/mcp et un point d'accès HTTP. Les clients d'IA compatibles peuvent consulter et modifier les tâches avec une clé API liée à un utilisateur, dans la limite des permissions de l'espace de travail.",
"link": "Lire le guide MCP"
},
"mobile": {
"answer": "Yes. Kaneo is on the App Store for iPhone and iPad, and Android is coming soon. The app is free for Kaneo Cloud accounts. Connecting it to a self-hosted server is a one-time $9.99 unlock per person, and like the rest of Kaneo, the app is open source.",
"link": "Download on the App Store",
"question": "Is there a mobile app?"
}
},
"comparison": {
"feature": "Fonctionnalité",
"yes": "Oui",
"no": "Non"
},
"selfHostingGuide": {
"summary": "Ce qu'implique l'auto-hébergement, avec des liens vers la configuration Docker Compose maintenue et les étapes d'installation.",
"answer": "Pour auto-héberger Kaneo, exécutez l'application et PostgreSQL avec Docker Compose, configurez votre URL publique et vos secrets, et placez un proxy inverse TLS devant l'application. Le guide d'installation indique un minimum de 2 Go de RAM et de 10 Go d'espace disque. Prévoyez les mises à jour régulières, les sauvegardes de la base de données et le stockage des fichiers téléversés.",
"requirements": "Le minimum documenté est de 2 Go de RAM et de 10 Go d'espace disque, avec Docker 20.10 ou une version ultérieure et Docker Compose V2. Prévoyez davantage de capacité selon votre charge de travail, la croissance de la base de données et les fichiers téléversés.",
"compose": "Utilisez le fichier compose.yml maintenu dans le guide Docker Compose. Il définit PostgreSQL, un volume persistant pour la base de données, l'application Kaneo et les vérifications d'état. Configurez le fichier d'environnement avant de démarrer les services ; en production, fixez une version d'image pour maîtriser les mises à jour.",
"backups": "Sauvegardez PostgreSQL ainsi que tout stockage objet utilisé pour les fichiers téléversés. Choisissez une fréquence adaptée à la quantité de travail que votre équipe peut se permettre de perdre, conservez des copies hors du serveur de l'application et testez leur restauration avant d'en avoir besoin.",
"worth": "L'auto-hébergement est pertinent lorsque vous devez contrôler l'infrastructure et les données, et qu'une personne peut assurer la maintenance. Tenez compte de la capacité du serveur, du stockage, des sauvegardes et du temps de maintenance lorsque vous comparez les coûts à ceux d'un service géré.",
"minimum": "Le guide d'installation indique Docker 20.10 ou une version ultérieure, Docker Compose V2, au moins 2 Go de RAM et 10 Go d'espace disque. La configuration Compose inclut PostgreSQL. Redis est facultatif pour une seule instance API.",
"composeLink": "Configuration Docker Compose",
"composeLinkDescription": "Le fichier compose.yml maintenu, avec stockage persistant et vérifications d'état.",
"startLink": "Démarrer et vérifier les services",
"startLinkDescription": "Démarrez les services, consultez leur état et vérifiez que l'application est disponible."
}
},
"mobile": {
"common": {
"save": "Enregistrer",
"cancel": "Annuler",
"delete": "Supprimer",
"retry": "Réessayer",
"somethingWrong": "Une erreur s'est produite",
"close": "Fermer"
},
"errors": {
"notSignedIn": "Non connecté",
"unreachable": "Impossible de joindre le serveur. Vérifiez votre connexion et l'adresse du serveur.",
"sessionExpired": "Votre session a expiré. Veuillez vous reconnecter.",
"forbidden": "Vous n'avez pas l'autorisation de faire cela.",
"notFound": "Introuvable.",
"tooManyRequests": "Trop de requêtes. Veuillez patienter un instant.",
"serverProblem": "Le serveur a rencontré un problème ({{status}}).",
"requestFailed": "La requête a échoué ({{status}}).",
"notKaneo": "{{url}} ne semble pas être un serveur Kaneo.",
"noInstance": "Aucune instance Kaneo trouvée à {{url}} (HTTP {{status}}).",
"noSession": "Le serveur n'a pas renvoyé de session. Essayez de vous connecter via le navigateur.",
"deviceFailed": "Échec de la connexion de l'appareil (HTTP {{status}}).",
"apiKeyRejected": "Cette clé API a été refusée.",
"signInRejected": "Le serveur a refusé la connexion.",
"uploadFailed": "Échec de l'envoi ({{status}})"
},
"signIn": {
"tagline": "La gestion de projet en toute simplicité. Connectez-vous à Kaneo Cloud ou à votre propre instance.",
"cloud": "Kaneo Cloud",
"selfHosted": "Auto-hébergé",
"captcha": "Ce serveur exige une vérification dans le navigateur pour cette étape. Utilisez plutôt « Continuer dans le navigateur ».",
"invalidClient": "Ce serveur n'autorise pas la connexion par appareil. Demandez à son administrateur d'ajouter « kaneo-cli » à DEVICE_AUTH_CLIENT_IDS, ou connectez-vous avec un mot de passe ou une clé API.",
"serverAddress": "Adresse du serveur",
"serverAddressHint": "L'adresse à laquelle vous ouvrez Kaneo. Utilisez http:// pour les serveurs sans TLS. Si l'API tourne sur un autre hôte, saisissez l'adresse de l'API.",
"connect": "Se connecter",
"recent": "Récents",
"change": "Modifier",
"email": "E-mail",
"password": "Mot de passe",
"togglePassword": "Afficher ou masquer le mot de passe",
"signIn": "Se connecter",
"or": "ou",
"continueInBrowser": "Continuer dans le navigateur",
"browserHint": "GitHub, Google, Discord ou SSO",
"emailCode": "Recevoir un code de connexion par e-mail",
"sendTo": "Envoyer à {{email}}",
"noPassword": "Aucun mot de passe requis",
"useApiKey": "Utiliser une clé API",
"newToKaneo": "Nouveau sur Kaneo ?",
"createAccount": "Créer un compte",
"code": {
"title": "Se connecter avec un code",
"message": "Nous vous enverrons un code à 6 chiffres par e-mail. Aucun mot de passe requis.",
"send": "Envoyer le code",
"checkEmail": "Consultez vos e-mails",
"sent": "Nous avons envoyé un code à 6 chiffres à {{email}}",
"verify": "Vérifier",
"didntGet": "Rien reçu ?",
"resend": "Renvoyer le code"
},
"device": {
"denied": "La connexion a été refusée dans le navigateur.",
"expired": "Le code de connexion a expiré. Recommencez pour en obtenir un nouveau.",
"openFailed": "Impossible d'ouvrir le navigateur. Copiez plutôt le lien.",
"message": "Approuvez cet appareil depuis le site de Kaneo. GitHub, Google, Discord et SSO y fonctionnent tous.",
"yourCode": "Votre code",
"copyCode": "Copier le code",
"codeCopied": "Code copié",
"copyLink": "Copier le lien",
"linkCopied": "Lien copié",
"openBrowser": "Ouvrir le navigateur",
"tryAgain": "Réessayer",
"waiting": "En attente d'approbation…",
"gettingCode": "Obtention d'un code…"
},
"apiKey": {
"message": "Créez-en une sur le web dans Paramètres, puis Clés API. Elle fonctionne même si les autres méthodes de connexion sont désactivées.",
"label": "Clé API"
},
"signUp": {
"name": "Nom",
"passwordHint": "Au moins 8 caractères"
},
"unlock": {
"buy": "Unlock for {{price}}",
"buyNoPrice": "Unlock",
"message": "Signing in to Kaneo Cloud is always included. Connecting the app to a self-hosted server is a one-time purchase that supports Kaneo's development.",
"nothingToRestore": "No earlier purchase was found for this store account.",
"restore": "Restore purchase",
"title": "Connect your own server",
"unavailable": "Purchases aren't available right now. Try again later."
}
},
"invitations": {
"accepted": "Invitation acceptée",
"declined": "Invitation refusée",
"title": "Invitations",
"description": "Les espaces de travail que vous êtes invité à rejoindre.",
"emptyTitle": "Aucune invitation en attente",
"emptyMessage": "Les invitations apparaissent ici une fois votre adresse e-mail vérifiée. Vous pouvez toujours rejoindre l'espace avec le lien reçu par e-mail.",
"invitedYou": "{{name}} vous a invité",
"decline": "Refuser",
"accept": "Accepter",
"joinWithLink": "Rejoindre avec un lien d'invitation",
"linkPlaceholder": "Collez le lien reçu par e-mail",
"join": "Rejoindre"
},
"taskDetail": {
"someone": "Quelqu'un",
"status": {
"planned": "Planifiée",
"archived": "Archivée"
},
"section": {
"addTo": "Ajouter à {{title}}"
},
"fields": {
"title": "Champs",
"empty": "Vide",
"none": "Aucun"
},
"subtasks": {
"title": "Sous-tâches",
"add": "Ajouter une sous-tâche",
"parent": "Tâche parente",
"empty": "Aucune sous-tâche"
},
"relations": {
"title": "Relations",
"link": "Lier une tâche",
"blocks": "Bloque",
"blockedBy": "Bloquée par",
"related": "Liée",
"relatedTo": "Liée à",
"remove": "Supprimer la relation",
"empty": "Aucune tâche liée",
"removeTitle": "Supprimer la relation ?",
"removeMessage": "Les tâches sont conservées ; seul le lien entre elles est supprimé.",
"removeConfirm": "Supprimer",
"searchPlaceholder": "Rechercher des tâches par titre ou numéro"
},
"links": {
"title": "Liens",
"add": "Ajouter un lien",
"remove": "Supprimer le lien",
"synced": "Synchronisé",
"empty": "Aucun lien",
"url": "URL",
"titleLabel": "Titre",
"optional": "Facultatif"
},
"time": {
"title": "Temps",
"total": "{{duration}} au total",
"log": "Saisir du temps",
"editEntry": "Modifier l'entrée de temps",
"logged": "Temps enregistré",
"stop": "Arrêter",
"start": "Démarrer le minuteur",
"running": "{{time}} (en cours)",
"hoursUnit": "h",
"minutesUnit": "min",
"chipMinutes": "{{count}} min",
"chipHours": "{{count}} h",
"logDuration": "Saisir {{duration}}",
"durationHoursMinutes": "{{hours}} h {{minutes}} min",
"durationMinutes": "{{minutes}} min",
"date": "Date",
"notePlaceholder": "Sur quoi avez-vous travaillé ?"
},
"activity": {
"title": "Activité",
"comment": "Commenter",
"edit": "Modifier",
"editComment": "Modifier le commentaire",
"edited": "{{time}}, modifié",
"deleteTitle": "Supprimer le commentaire ?",
"deleteMessage": "Cette action est irréversible.",
"entry": "{{name}} {{action}}"
},
"menu": {
"share": "Partager",
"duplicate": "Dupliquer",
"move": "Déplacer vers un projet…",
"refresh": "Actualiser",
"delete": "Supprimer la tâche",
"moveTitle": "Déplacer vers un projet",
"duplicated": "Tâche dupliquée",
"moved": "Tâche déplacée",
"deleted": "Tâche supprimée",
"deleteTitle": "Supprimer la tâche ?",
"deleteMessage": "« {{title}} » et ses commentaires seront définitivement supprimés."
},
"screen": {
"copyLink": "Copier le lien",
"linkCopied": "Lien copié",
"more": "Plus",
"editTitle": "Modifier le titre",
"addDescription": "Ajouter une description…"
}
},
"workspaceNew": {
"title": "Nouvel espace de travail",
"description": "Un lieu pour les projets de votre équipe. Vous pourrez inviter des personnes ensuite.",
"name": "Nom",
"namePlaceholder": "Studio de design",
"descriptionLabel": "Description",
"optional": "Facultatif",
"descriptionPlaceholder": "À quoi sert cet espace de travail ?",
"create": "Créer l'espace de travail"
},
"taskFields": {
"status": "Statut",
"planned": "Planifiée",
"priority": "Priorité",
"assignee": "Assigné",
"unassigned": "Non assigné",
"startDate": "Date de début",
"dueDate": "Date d'échéance",
"labels": "Labels",
"none": "Aucun",
"searchPeople": "Rechercher des personnes",
"you": "{{name}} (vous)",
"addNumber": "Ajouter un nombre",
"empty": "Vide",
"archived": "Archivée",
"doneColumn": "Colonne terminée",
"starts": "Début : {{date}}",
"overdue_one": "{{date}}, {{count}} jour de retard",
"overdue_other": "{{date}}, {{count}} jours de retard",
"done": "Terminée",
"searchOrCreate": "Rechercher ou créer",
"createLabel": "Créer le label « {{name}} »",
"labelColor": "Couleur du nouveau label",
"noLabels": "Aucun label pour l'instant. Saisissez un nom pour en créer un.",
"overdue_many": "{{date}}, {{count}} jours de retard"
},
"taskNew": {
"newSubtask": "Nouvelle sous-tâche",
"project": "Projet",
"create": "Créer",
"taskTitle": "Titre de la tâche",
"noLabels": "Aucun label dans cet espace de travail pour l'instant.",
"labelsAndParentFailed": "Tâche créée, mais certains labels et le lien vers la tâche parente n'ont pas pu être enregistrés.",
"labelsFailed": "Tâche créée, mais certains labels n'ont pas pu être ajoutés.",
"parentFailed": "Tâche créée, mais elle n'a pas pu être liée à la tâche parente."
},
"editor": {
"placeholder": "Ajoutez une description… Markdown est pris en charge.",
"bold": "Gras",
"italic": "Italique",
"heading": "Titre",
"list": "Liste",
"code": "Code",
"link": "Lien",
"insertImage": "Insérer une image",
"attachment": "Pièce jointe",
"applyLink": "Apply",
"checklist": "Checklist",
"linkUrl": "URL",
"numberedList": "Numbered list",
"quote": "Quote",
"removeLink": "Remove link",
"hideKeyboard": "Hide keyboard"
},
"composer": {
"reply": "Répondre à {{name}}…",
"placeholder": "Ajouter un commentaire…",
"mentionSomeone": "Mentionner quelqu'un",
"attachImage": "Joindre une image",
"sendComment": "Envoyer le commentaire",
"mention": "Mentionner",
"searchPeople": "Rechercher des personnes"
},
"board": {
"filterTasksActive": "Filtrer les tâches… (filtres actifs : {{count}})",
"movedTask": "{{ticket}} déplacée vers {{status}}",
"showTasks_one": "Afficher {{count}} tâche",
"showTasks_other": "Afficher {{count}} tâches",
"memberYou": "{{name}} (vous)",
"dueDateOverdue_one": "{{date}}, {{count}} j de retard",
"dueDateOverdue_other": "{{date}}, {{count}} j de retard",
"projects": "Projets",
"back": "Retour",
"boardView": "Vue tableau",
"listView": "Vue liste",
"more": "Plus",
"switchProject": "Changer de projet",
"noTasksMatchTheFilters": "Aucune tâche ne correspond aux filtres",
"nothingPlannedYet": "Rien de planifié pour l'instant",
"noTasksHere": "Aucune tâche ici",
"addTask": "Ajouter une tâche",
"noTasksMatch": "Aucune tâche correspondante",
"noTasksYet": "Aucune tâche pour l'instant",
"filters": "Filtres",
"filterTasks": "Filtrer les tâches…",
"me": "Moi",
"newTask": "Nouvelle tâche",
"board": "Tableau",
"projectSettings": "Paramètres du projet",
"hidePlanned": "Masquer les planifiées",
"showPlanned": "Afficher les planifiées",
"hideArchived": "Masquer les archivées",
"showArchived": "Afficher les archivées",
"refresh": "Actualiser",
"planned": "Planifiées",
"archived": "Archivées",
"reset": "Réinitialiser",
"assignee": "Assigné",
"unassigned": "Non assigné",
"priority": "Priorité",
"labels": "Labels",
"overdueOnly": "En retard uniquement",
"tasksNotOnTheBoardYet": "Tâches pas encore sur le tableau",
"moveTo": "Déplacer vers",
"assignToMe": "M'assigner",
"sendToTopOfColumn": "Envoyer en haut de la colonne",
"sendToBottomOfColumn": "Envoyer en bas de la colonne",
"openTask": "Ouvrir la tâche",
"searchPeople": "Rechercher des personnes",
"dueDateOverdue_many": "{{date}}, {{count}} j de retard",
"showTasks_many": "Afficher {{count}} tâches"
},
"projectSettings": {
"deleteNamedTitle": "Supprimer « {{name}} » ?",
"text": "Texte",
"number": "Nombre",
"date": "Date",
"checkbox": "Case à cocher",
"dropdown": "Liste déroulante",
"multiSelect": "Choix multiple",
"projectUpdated": "Projet mis à jour",
"project": "Projet",
"projectSettings": "Paramètres du projet",
"general": "Général",
"publicBoard": "Tableau public",
"anyoneWithTheLinkCanViewTheBoard": "Toute personne disposant du lien peut voir le tableau",
"columns": "Colonnes",
"addColumn": "Ajouter une colonne",
"doneColumn": "Colonne terminée",
"moveUp": "Monter",
"moveDown": "Descendre",
"customFields": "Champs personnalisés",
"addField": "Ajouter un champ",
"noCustomFields": "Aucun champ personnalisé",
"projectRestored": "Projet restauré",
"archiveProjectTitle": "Archiver le projet ?",
"itDisappearsFromTheProjectListYouCanRestoreItLater": "Il disparaît de la liste des projets. Vous pourrez le restaurer plus tard.",
"archive": "Archiver",
"projectArchived": "Projet archivé",
"restoreProject": "Restaurer le projet",
"archiveProject": "Archiver le projet",
"moveToAnotherWorkspace": "Déplacer vers un autre espace de travail",
"deleteProjectTitle": "Supprimer le projet ?",
"allTasksCommentsAndTimeEntriesInThisProjectWillBePermanentlyDeleted": "Toutes les tâches, commentaires et entrées de temps de ce projet seront définitivement supprimés.",
"projectDeleted": "Projet supprimé",
"deleteProject": "Supprimer le projet",
"column": "Colonne",
"rename": "Renommer",
"unmarkAsDoneColumn": "Ne plus marquer comme colonne terminée",
"markAsDoneColumn": "Marquer comme colonne terminée",
"deleteColumn": "Supprimer la colonne",
"tasksInThisColumnMayNeedToBeMovedFirst": "Il faudra peut-être d'abord déplacer les tâches de cette colonne.",
"columnDeleted": "Colonne supprimée",
"renameColumn": "Renommer la colonne",
"field": "Champ",
"deleteField": "Supprimer le champ",
"valuesStoredInThisFieldAreDeletedFromEveryTask": "Les valeurs de ce champ sont supprimées de toutes les tâches.",
"fieldDeleted": "Champ supprimé",
"moveToWorkspace": "Déplacer vers l'espace de travail",
"projectMoved": "Projet déplacé",
"ok": "OK",
"name": "Nom",
"key": "Clé",
"changesFutureAndExistingTaskIDs": "Modifie les identifiants des tâches existantes et futures",
"saveChanges": "Enregistrer les modifications",
"newColumn": "Nouvelle colonne",
"blocked": "Bloquée",
"tasksHereCountAsFinished": "Les tâches ici sont considérées comme terminées",
"newCustomField": "Nouveau champ personnalisé",
"platform": "Plateforme",
"type": "Type",
"options": "Options",
"separateWithCommas": "Séparez par des virgules",
"androidIOSWeb": "Android, iOS, Web",
"required": "Obligatoire",
"checked": "Coché",
"chooseDefault": "Choisir une valeur par défaut",
"defaultValue": "Valeur par défaut",
"multiselectOptionsRequired": "Ajoutez au moins deux options différentes.",
"unchecked": "Non coché",
"validDefaultRequired": "Entrez une valeur par défaut valide pour ce champ obligatoire."
},
"projectNew": {
"newProject": "Nouveau projet",
"name": "Nom",
"customerPortal": "Portail client",
"key": "Clé",
"usedInTaskIDs": "Utilisée dans les identifiants de tâche",
"createProject": "Créer le projet"
},
"home": {
"noWorkspace": {
"title": "Aucun espace de travail",
"body": "Les espaces de travail regroupent vos projets et votre équipe. Créez-en un ou acceptez une invitation.",
"create": "Créer un espace de travail",
"viewInvitations_one": "Voir {{count}} invitation",
"viewInvitations_other": "Voir {{count}} invitations",
"joinWithLink": "Rejoindre avec un lien d'invitation",
"signedInAs": "Connecté en tant que {{email}}",
"viewInvitations_many": "Voir {{count}} invitations"
},
"switchWorkspace": "Changer d'espace de travail",
"search": "Rechercher",
"account": "Compte",
"archived": "Archivé",
"due": "Échéance : {{date}}",
"progress": "{{done}} sur {{total}}",
"noTasks": "Aucune tâche",
"upNext": "À suivre",
"viewAll": "Tout voir",
"projects": "Projets",
"newProject": "Nouveau projet",
"empty": {
"title": "Aucun projet pour l'instant",
"message": "Les projets regroupent vos tableaux et vos tâches."
},
"hideArchived": "Masquer les projets archivés",
"showArchived": "Afficher les projets archivés"
},
"inbox": {
"title": "Notifications",
"markAllRead": "Tout marquer comme lu",
"allCaughtUpToast": "Tout est lu",
"more": "Plus",
"empty": {
"title": "Vous êtes à jour",
"message": "Les assignations, commentaires et mentions apparaissent ici."
},
"today": "Aujourd'hui",
"earlier": "Plus tôt",
"recent": "Récentes",
"clearAll": "Effacer toutes les notifications",
"confirmClear": {
"title": "Effacer toutes les notifications ?",
"message": "Toutes les notifications de cet espace de travail seront supprimées.",
"confirm": "Tout effacer"
}
},
"activity": {
"title": "Activité",
"subtitle": "Tout ce qui se passe dans {{workspace}}",
"empty": "Aucune activité récente",
"someone": "Quelqu'un",
"commentedOn": "a commenté {{target}}"
},
"myTasks": {
"title": "Mes tâches",
"by": {
"due": "Échéance",
"project": "Projet",
"status": "Statut"
},
"due": {
"overdue": "En retard",
"today": "Aujourd'hui",
"thisWeek": "Cette semaine",
"later": "Plus tard",
"none": "Sans échéance"
},
"empty": {
"title": "Rien ne vous est assigné",
"message": "Les tâches qui vous sont assignées dans cet espace de travail apparaissent ici."
},
"showing": "{{shown}} tâches sur {{total}}",
"assigned_one": "{{count}} assignée",
"assigned_other": "{{count}} assignées",
"assigned_many": "{{count}} assignées"
},
"nav": {
"home": "Accueil",
"tasks": "Mes tâches",
"inbox": "Notifications",
"activity": "Activité",
"inboxUnread": "Notifications, {{count}} non lues"
},
"workspaceSwitcher": {
"title": "Espaces de travail",
"settings": "Paramètres de l'espace de travail",
"members": "Membres",
"labels": "Labels",
"invitations": "Invitations",
"create": "Créer un espace de travail"
},
"search": {
"placeholder": "Rechercher tâches, projets, commentaires",
"clear": "Effacer",
"kinds": {
"all": "Tout",
"tasks": "Tâches",
"projects": "Projets",
"comments": "Commentaires",
"activity": "Activité"
},
"empty": {
"title": "Rechercher dans cet espace de travail",
"message": "Trouvez des tâches par titre ou numéro, des projets et des commentaires."
},
"failed": "La recherche a échoué",
"noResults": "Aucun résultat pour « {{query}} »",
"commentMeta": "{{name}}, {{when}}"
},
"notificationText": {
"activity": {
"created": "a créé la tâche",
"commented": "a commenté : {{text}}",
"statusChanged": "l'a déplacée de {{from}} à {{to}}",
"priorityChanged": "a changé la priorité de {{from}} à {{to}}",
"assigneeChanged": "a changé l'assignation",
"selfAssigned": "se l'est assignée",
"assignedTo": "l'a assignée à {{assignee}}",
"unassigned": "a retiré l'assignation",
"dueDateSet": "a fixé l'échéance au {{date}}",
"dueDateRemoved": "a retiré la date d'échéance",
"renamed": "l'a renommée « {{title}} »",
"titleChanged": "a modifié le titre",
"descriptionChanged": "a mis à jour la description",
"taskUpdated": "a mis à jour la tâche"
},
"taskCreated": "Nouvelle tâche qui vous est assignée",
"assignedByActor": "{{actor}} vous a assigné une tâche",
"assignedToTask": "Vous avez été assigné à « {{title}} »",
"assignedToUntitled": "Vous avez été assigné à une tâche",
"statusChangedOnTask": "Statut modifié pour « {{title}} »",
"statusChangedOnUntitled": "Statut d'une tâche modifié",
"statusTransition": "{{from}} → {{to}}",
"commentedByActor": "{{actor}} a commenté",
"newComment": "Nouveau commentaire",
"mentionedByActor": "{{actor}} vous a mentionné",
"mentioned": "Vous avez été mentionné",
"timeLoggedOnTask": "Temps saisi sur « {{title}} »",
"timeLoggedOnUntitled": "Temps saisi sur une tâche",
"workspaceCreated": "Espace de travail « {{name}} » créé"
},
"background": {
"summary_one": "{{count}} autre nouvelle notification",
"summary_other": "{{count}} autres nouvelles notifications",
"channelName": "Activité Kaneo",
"channelDescription": "Assignations, commentaires et mentions de vos espaces de travail",
"summary_many": "{{count}} autres nouvelles notifications"
},
"ui": {
"back": "Retour",
"loadFailed": "Impossible de charger",
"search": "Rechercher",
"nothingMatches": "Aucun résultat pour « {{query}} »"
},
"picker": {
"clear": "Effacer",
"nextWeek": "Semaine prochaine",
"previousMonth": "Mois précédent",
"nextMonth": "Mois suivant"
},
"time": {
"now": "maintenant",
"justNow": "à l'instant",
"minutesShort_one": "{{count}} min",
"minutesShort_other": "{{count}} min",
"hoursShort_one": "{{count}} h",
"hoursShort_other": "{{count}} h",
"secondsShort_one": "{{count}} s",
"secondsShort_other": "{{count}} s",
"minutesAgo_one": "il y a {{count}} min",
"minutesAgo_other": "il y a {{count}} min",
"hoursAgo_one": "il y a {{count}} h",
"hoursAgo_other": "il y a {{count}} h",
"durationHoursMinutes": "{{hours}} h {{minutes}} min",
"goodEvening": "Bonsoir",
"goodMorning": "Bonjour",
"goodAfternoon": "Bon après-midi",
"today": "Aujourd'hui",
"tomorrow": "Demain",
"yesterday": "Hier",
"minutes_one": "{{count}} min",
"minutes_other": "{{count}} min",
"hours_one": "{{count}} h",
"hours_other": "{{count}} h",
"hours_many": "{{count}} h",
"hoursAgo_many": "il y a {{count}} h",
"hoursShort_many": "{{count}} h",
"minutes_many": "{{count}} min",
"minutesAgo_many": "il y a {{count}} min",
"minutesShort_many": "{{count}} min",
"secondsShort_many": "{{count}} s"
},
"meta": {
"priority": {
"noPriority": "Pas de priorité",
"low": "Basse",
"medium": "Moyenne",
"high": "Haute",
"urgent": "Urgente"
},
"labelColor": {
"stone": "Pierre",
"slate": "Ardoise",
"lavender": "Lavande",
"sage": "Sauge",
"forest": "Forêt",
"amber": "Ambre",
"terracotta": "Terre cuite",
"rose": "Rose",
"crimson": "Cramoisi",
"ocean": "Océan",
"sky": "Ciel",
"lagoon": "Lagon",
"orchid": "Orchidée"
},
"role": {
"owner": "Propriétaire",
"admin": "Administrateur",
"member": "Membre",
"viewer": "Observateur"
},
"roleHint": {
"owner": "Contrôle total, y compris la suppression de l'espace de travail",
"admin": "Peut aussi gérer les membres et les paramètres",
"member": "Peut créer et modifier des tâches",
"viewer": "Peut voir les projets et les tâches"
}
},
"account": {
"title": "Compte",
"description": "Comment vos coéquipiers vous voient dans tous les espaces de travail.",
"profile": {
"title": "Profil",
"photo": "Photo de profil",
"photoFormats": "PNG, JPG ou WebP",
"change": "Modifier",
"name": "Nom",
"changePassword": "Changer le mot de passe"
},
"notifications": {
"title": "Notifications",
"phone": "Notifications sur le téléphone",
"phoneHint": "Vérifiées environ toutes les 15 minutes",
"delivery": "Envoi et événements",
"deliveryHint": "E-mail, ntfy, Gotify, webhooks",
"invitations": "Invitations",
"permissionDenied": "Autorisez d'abord les notifications pour Kaneo dans les réglages du système."
},
"connection": {
"title": "Connexion",
"server": "Serveur",
"signedInWith": "Connecté avec",
"apiKey": "Clé API",
"sessionToken": "Jeton de session",
"appVersion": "Version de l'app"
},
"signOut": {
"button": "Se déconnecter",
"title": "Se déconnecter ?",
"message": "Vous pourrez vous reconnecter à tout moment."
},
"photoMenu": {
"choose": "Choisir une photo",
"remove": "Supprimer la photo"
},
"toast": {
"photoUpdated": "Photo mise à jour",
"photoRemoved": "Photo supprimée",
"nameUpdated": "Nom mis à jour",
"passwordChanged": "Mot de passe modifié"
},
"password": {
"title": "Changer le mot de passe",
"current": "Mot de passe actuel",
"new": "Nouveau mot de passe",
"confirm": "Confirmer le nouveau mot de passe",
"confirmPlaceholder": "Saisissez-le à nouveau",
"mismatch": "Les mots de passe ne correspondent pas",
"signOutOthers": "Déconnecter les autres appareils"
},
"deleteAccount": {
"confirm": "Delete account",
"confirmLabel": "Type {{email}} to confirm",
"description": "Permanently delete your account and its data.",
"modalDescription": "This permanently deletes your account and cannot be undone. Workspaces only you belong to are deleted with it. Elsewhere, your tasks stay and become unassigned, and your comments are removed.",
"modalTitle": "Delete your account?",
"noPassword": "This account has no password. Leave the field empty.",
"password": "Password",
"passwordHint": "Leave empty if you sign in without a password.",
"sectionTitle": "Danger zone",
"sessionTooOld": "For your security, enter your password, or sign out and sign in again before deleting your account.",
"success": "Your account was deleted",
"title": "Delete account",
"wrongPassword": "That password is not correct."
}
},
"notificationSettings": {
"title": "Notifications",
"description": "Où Kaneo vous joint, et à quel sujet.",
"on": "Activé",
"off": "Désactivé",
"notSet": "Non configuré",
"delivery": {
"title": "Envoi",
"email": "E-mail",
"emailHint": "Envoyé à l'e-mail de votre compte",
"ntfyHint": "Envoyer les notifications vers un sujet ntfy",
"gotifyHint": "Envoyer les notifications vers un serveur Gotify",
"webhook": "Webhook",
"webhookHint": "Envoyer les notifications en POST vers une URL"
},
"events": {
"title": "Me prévenir pour",
"assignments": "Assignations",
"assignmentsHint": "Quand une tâche vous est assignée",
"comments": "Commentaires",
"commentsHint": "Nouveaux commentaires sur vos tâches",
"statusChanges": "Changements de statut",
"statusChangesHint": "Quand vos tâches changent de colonne",
"dueDate": "Rappels d'échéance",
"dueDateHint": "Avant l'échéance d'une tâche qui vous est assignée",
"remindMe": "Me rappeler",
"remindBefore": "{{time}} avant",
"remindPickerTitle": "Me rappeler avant"
},
"leadTime": {
"minutes15": "15 minutes",
"hour1": "1 heure",
"hours3": "3 heures",
"day1": "1 jour",
"days2": "2 jours",
"week1": "1 semaine",
"minutes_one": "{{count}} minute",
"minutes_other": "{{count}} minutes",
"minutes_many": "{{count}} minutes"
},
"channel": {
"enabled": "Envoyer les notifications ici",
"webhookUrl": "URL du webhook",
"serverUrl": "URL du serveur",
"topic": "Sujet",
"accessToken": "Jeton d'accès",
"appToken": "Jeton d'application",
"signingSecret": "Secret de signature",
"secretSaved": "Enregistré. Saisissez-en un nouveau pour le remplacer",
"secretOptional": "Facultatif"
}
},
"workspaceSettings": {
"title": "Espace de travail",
"description": "Paramètres pour tous les membres de {{name}}.",
"thisWorkspace": "cet espace de travail",
"general": {
"title": "Général",
"name": "Nom",
"description": "Description",
"slug": "Slug : {{slug}}",
"save": "Enregistrer les modifications"
},
"manage": {
"title": "Gérer",
"members": "Membres",
"labels": "Labels"
},
"danger": {
"title": "Zone dangereuse",
"leave": "Quitter l'espace de travail",
"leaveHint": "Vous pourrez revenir avec une nouvelle invitation",
"leaveButton": "Quitter",
"delete": "Supprimer l'espace de travail",
"deleteHint": "Supprime tous ses projets et tâches"
},
"confirm": {
"deleteTitle": "Supprimer l'espace de travail ?",
"leaveTitle": "Quitter l'espace de travail ?",
"deleteMessage": "Tous les projets, tâches et commentaires de {{name}} seront définitivement supprimés.",
"leaveMessage": "Vous perdrez l'accès jusqu'à ce que quelqu'un vous invite à nouveau."
},
"toast": {
"updated": "Espace de travail mis à jour",
"deleted": "Espace de travail supprimé",
"left": "Vous avez quitté l'espace de travail"
}
},
"members": {
"title": "Membres",
"description_one": "{{count}} personne dans {{name}}",
"description_other": "{{count}} personnes dans {{name}}",
"thisWorkspace": "cet espace de travail",
"invite": "Inviter",
"pending": {
"title": "Invitations en attente",
"expires": "{{role}}, expire : {{date}}",
"manage": "Gérer"
},
"people": {
"title": "Personnes",
"unknown": "Inconnu",
"you": "(vous)"
},
"memberMenu": {
"fallbackTitle": "Membre",
"changeRole": "Changer le rôle",
"remove": "Retirer de l'espace de travail"
},
"rolePicker": {
"title": "Rôle"
},
"remove": {
"title": "Retirer le membre ?",
"message": "{{name}} perdra l'accès à {{workspace}}.",
"they": "Cette personne",
"confirm": "Retirer"
},
"inviteMenu": {
"fallbackTitle": "Invitation",
"resend": "Renvoyer l'invitation",
"cancel": "Annuler l'invitation"
},
"inviteForm": {
"title": "Inviter un membre",
"intro": "La personne recevra un e-mail avec un lien pour rejoindre {{workspace}}.",
"email": "E-mail",
"role": "Rôle",
"send": "Envoyer l'invitation"
},
"toast": {
"roleUpdated": "Rôle mis à jour",
"removed": "Membre retiré",
"resent": "Invitation renvoyée",
"canceled": "Invitation annulée",
"sent": "Invitation envoyée à {{email}}"
},
"description_many": "{{count}} personnes dans {{name}}"
},
"labels": {
"title": "Labels",
"description": "Les labels vous aident à regrouper et filtrer les tâches.",
"new": "Nouveau label",
"edit": "Modifier le label",
"delete": "Supprimer le label",
"fallbackTitle": "Label",
"empty": {
"title": "Aucun label",
"message": "Créez des labels pour regrouper et filtrer les tâches de tous les projets."
},
"actions": "Actions pour {{name}}",
"deleteTitle": "Supprimer « {{name}} » ?",
"deleteMessage": "Le label est retiré de toutes les tâches de cet espace de travail.",
"form": {
"name": "Nom",
"color": "Couleur"
},
"toast": {
"deleted": "Label supprimé"
}
},
"permissions": {
"photos": "Kaneo utilise vos photos pour joindre des images aux tâches et aux commentaires, et pour votre photo de profil."
}
}
}