{ "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", "clearAllFilters": "Effacer tous les filtres" }, "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" }, "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" }, "formats": { "never": "Jamais" }, "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", "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", "clearDueDate": "Supprimer la date d'échéance", "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", "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" } } } }, "auth": { "signIn": { "pageTitle": "Connexion", "title": "Content de te revoir", "subtitle": "Entrez vos identifiants pour accéder à votre espace de travail", "invitationSubtitle": "Connectez-vous pour accepter votre invitation", "invitationAlert": "Après vous être connecté, vous pourrez accepter votre invitation à l'espace de travail.", "signingIn": "Connexion...", "continueWithGoogle": "Continuer avec Google", "continueWithGithub": "Continuer avec GitHub", "continueWithDiscord": "Continuer avec Discord", "continueWithOidc": "Continuer avec OIDC", "lastUsed": "Dernière utilisation", "registrationDisabled": "Inscription publique désactivée. Utilisez une invitation pour créer un compte.", "passwordRegistrationDisabled": "Inscription par mot de passe désactivée. Utilisez une méthode de connexion sociale ou OIDC configurée pour créer un compte.", "toggleMessage": "Vous n'avez pas de compte ?", "toggleLink": "Créer un compte", "guestSuccess": "Connecté en tant qu'invité", "guestError": "Échec de la connexion en tant qu'invité", "oidcError": "Échec de la connexion avec OIDC", "googleError": "Échec de la connexion avec Google", "githubError": "Échec de la connexion avec GitHub", "discordError": "Échec de la connexion avec Discord" }, "providers": { "google": "Google", "discord": "Discord" }, "forms": { "or": "ou", "email": "Email", "password": "Mot de passe", "emailPlaceholder": "moi@exemple.fr", "passwordPlaceholder": "••••••••", "showPassword": "Afficher le mot de passe", "hidePassword": "Masquer le mot de passe" }, "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", "title": "Créer un compte", "subtitleInvitation": "Créer un compte pour accepter votre invitation", "subtitleRegistrationDisabled": "L'inscription nécessite une invitation", "subtitlePasswordDisabled": "Utilisez la connexion sociale ou OIDC pour créer un compte", "subtitleDefault": "Commencez avec votre espace de travail", "invitationAlert": "Après avoir créé votre compte, vous pourrez accepter votre invitation à l'espace de travail.", "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.", "passwordDisabledAlert": "La création de compte par mot de passe est désactivée. Utilisez une méthode de connexion sociale ou OIDC configurée depuis la page de connexion.", "signingIn": "Connexion...", "continueAsGuest": "Continuer en tant qu'invité", "toggleMessage": "Vous avez déjà un compte?", "toggleLink": "Se connecter" }, "verifyOtp": { "pageTitle": "Vérifier le code", "title": "Entrez le code de vérification", "subtitle": "Utilisez le code à 6 chiffres envoyé à votre e-mail pour continuer", "codeSentTo": "Code envoyé à {{email}}", "verificationCodeLabel": "Code de vérification", "verifying": "Vérification...", "verifyAndSignIn": "Vérifier et se connecter", "changeEmail": "Changer l'email", "resend": "Renvoyer", "validation": { "codeLength": "Le code doit contenir 6 chiffres" }, "toast": { "invalidCode": "Code de vérification invalide", "signedInSuccess": "Connecté avec succès!", "verifyFailed": "Échec de la vérification du code", "resendFailed": "Échec de l'envoi du code", "resendSuccess": "Nouveau code de vérification envoyé!" } }, "otpSignIn": { "sendFailed": "Échec de l'envoi du code de vérification", "codeSent": "Code de vérification envoyé! Vérifiez votre e-mail.", "sending": "Envoi...", "sendVerificationCode": "Envoyer le code de vérification" }, "signInForm": { "failedSignIn": "Échec de la connexion", "signedInSuccess": "Connexion réussie", "signingIn": "Connexion...", "signIn": "Se connecter" }, "signUpForm": { "fullName": "Nom complet", "namePlaceholder": "John Doe", "failedSignUp": "Échec de l'inscription", "accountCreated": "Compte créé avec succès", "passwordTooShort": "Le mot de passe est trop court", "creatingAccount": "Création du compte...", "createAccount": "Créer un compte" }, "invitation": { "pageTitleAccept": "Accepter l'invitation", "pageTitleError": "Erreur d'invitation", "pageTitleInvalid": "Invitation invalide", "loadingTitle": "Chargement de l'invitation...", "errorTitle": "Erreur d'invitation", "invalidTitle": "Invitation invalide", "invitationExpired": "Invitation expirée", "errorLoadDescription": "Échec du chargement des détails de l'invitation. L'invitation peut être invalide ou expirée.", "goToSignIn": "Aller à la connexion", "workspaceLabel": "Espace de travail: {{workspaceName}}", "joinWorkspace": "Rejoindre {{workspaceName}}", "inviteBodySignedIn": "{{inviterName}} vous a invité à rejoindre son espace de travail.", "inviteBodySignedOut": "{{inviterName}} vous a invité à rejoindre son espace de travail sur Kaneo.", "signInToAccept": "Connectez-vous pour accepter cette invitation.", "accepting": "Acceptation...", "acceptInvitation": "Accepter l'invitation", "goToDashboard": "Aller au tableau de bord", "signedInAs": "Connecté en tant que {{email}}", "youveBeenInvited": "Vous avez été invité!", "invitationFor": "Invitation pour: {{email}}", "signIn": "Se connecter", "toast": { "acceptFailed": "Échec de l'acceptation de l'invitation", "acceptSuccess": "Invitation acceptée! Bienvenue dans l'équipe." } }, "onboarding": { "pageTitle": "Bienvenue sur Kaneo", "workspacePageTitle": "Créer un espace de travail", "createWorkspaceTitle": "Créer un espace de travail", "createWorkspaceSubtitle": "Configurez votre espace de travail pour commencer à gérer des projets", "workspaceName": "Nom de l'espace de travail", "workspaceNamePlaceholder": "ex: Acme Inc, Mon équipe", "descriptionOptional": "Description (optionnelle)", "descriptionPlaceholder": "Sur quoi travaille votre équipe?", "creating": "Création...", "createWorkspace": "Créer un espace de travail", "workspaceCreatedTitle": "Espace de travail créé", "redirectingToWorkspace": "Redirection vers {{name}}...", "toast": { "workspaceCreated": "Espace de travail créé avec succès", "createFailed": "Échec de la création de l'espace de travail" }, "validation": { "workspaceNameRequired": "Le nom de l'espace de travail est requis" } }, "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" } } }, "settings": { "account": "Compte", "developer": "Développeur", "information": "Information", "notifications": "Notifications", "preferences": "Préférences", "apiKeys": "Clés API", "informationPage": { "pageTitle": "Informations personnelles", "title": "Informations personnelles", "subtitle": "Gérez vos informations personnelles et les détails de votre compte.", "sectionTitle": "Informations sur le compte", "sectionSubtitle": "Gérez votre profil et les détails de votre compte.", "profilePicture": "Photo de profil", "fullName": "Nom complet", "fullNamePlaceholder": "Entrez votre nom", "email": "Email", "emailPlaceholder": "Entrez votre email", "updateSuccess": "Profil mis à jour avec succès", "updateError": "Échec de la mise à jour du profil", "validation": { "nameRequired": "Le nom est requis", "nameShort": "Le nom doit contenir au moins 2 caractères", "invalidEmail": "Adresse email invalide" } }, "notificationsPage": { "pageTitle": "Notifications", "title": "Notifications", "subtitle": "Choose how Kaneo delivers your account notifications and which channels to use.", "statusConnected": "Connected", "statusPaused": "Paused", "emailTitle": "Email", "emailDescription": "Use your account email as the destination for notifications.", "accountEmailLabel": "Account email", "accountEmailNoAddress": "No account email available", "accountEmailHint": "Email delivery always goes to the signed-in account email.", "saveChanges": "Save changes", "disconnect": "Disconnect", "ntfyTitle": "ntfy", "ntfyDescription": "Publish account notifications to an ntfy topic.", "serverUrl": "Server URL", "topic": "Topic", "token": "Token", "ntfyServerPlaceholder": "https://ntfy.example.com", "ntfyTopicPlaceholder": "team-alerts", "ntfyTokenPlaceholder": "Optional bearer token", "ntfyTokenHintConfigured": "A token is already configured ({{masked}}). Enter a new token to replace it.", "ntfyTokenHintOptional": "Optional. Provide a token if your ntfy server requires authentication.", "connectNtfy": "Connect ntfy", "gotifyTitle": "Gotify", "gotifyDescription": "Send account notifications to your Gotify server.", "gotifyTokenLabel": "App token", "gotifyServerPlaceholder": "https://gotify.example.com", "gotifyTokenPlaceholder": "Gotify app token", "gotifyTokenHintConfigured": "An app token is already configured ({{masked}}). Enter a new token to replace it.", "gotifyTokenHintRequired": "Required. Use an application token from your Gotify server.", "connectGotify": "Connect Gotify", "webhookTitle": "Custom webhook", "webhookDescription": "Send account notifications to your own endpoint as JSON.", "endpointUrl": "Endpoint URL", "signingSecret": "Signing secret", "webhookUrlPlaceholder": "https://example.com/webhooks/kaneo", "webhookSecretPlaceholder": "Optional shared secret", "webhookSecretHintConfigured": "A signing secret is already configured ({{masked}}). Enter a new one to replace it.", "webhookSecretHintOptional": "Optional. Kaneo signs the request body when a secret is set.", "connectWebhook": "Connect webhook", "workspaceRulesTitle": "Workspace delivery rules", "workspaceRulesDescription": "Reuse your global channels, then decide which workspaces and projects are allowed to send account notifications.", "workspaceCardHint": "Choose which channels this workspace can use for account notifications.", "workspaceCardLabelEmail": "Email", "workspaceCardLabelNtfy": "ntfy", "workspaceCardLabelGotify": "Gotify", "workspaceCardLabelWebhook": "Custom webhook", "emailChannelHintEnabled": "Send matching workspace notifications by email.", "emailChannelHintDisabled": "Configure and enable email globally first.", "ntfyChannelHintEnabled": "Send matching workspace notifications to ntfy.", "ntfyChannelHintDisabled": "Configure and enable ntfy globally first.", "gotifyChannelHintEnabled": "Send matching workspace notifications to Gotify.", "gotifyChannelHintDisabled": "Configure and enable Gotify globally first.", "webhookChannelHintEnabled": "Send matching workspace notifications to your webhook.", "webhookChannelHintDisabled": "Configure and enable the webhook globally first.", "projectScope": "Project scope", "projectScopeDescription": "All projects are included by default. Narrow it down if this workspace should only send notifications from selected projects.", "allProjects": "All projects", "allProjectsDescription": "Deliver notifications from every project in this workspace.", "selectedProjects": "Selected projects", "selectedProjectsDescription": "Only deliver notifications from chosen projects.", "noProjectsInWorkspace": "No projects available for this workspace yet.", "createRule": "Create rule", "removeRule": "Remove rule", "toastEmailSaved": "Email notification settings saved", "toastEmailSaveFailed": "Failed to save email settings", "toastNtfySaved": "ntfy settings saved", "toastNtfySaveFailed": "Failed to save ntfy settings", "toastNtfyDisconnected": "ntfy disconnected", "toastNtfyDisconnectFailed": "Failed to disconnect ntfy", "toastGotifySaved": "Gotify settings saved", "toastGotifySaveFailed": "Failed to save Gotify settings", "toastGotifyDisconnected": "Gotify disconnected", "toastGotifyDisconnectFailed": "Failed to disconnect Gotify", "toastWebhookSaved": "Webhook settings saved", "toastWebhookSaveFailed": "Failed to save webhook settings", "toastWebhookDisconnected": "Webhook disconnected", "toastWebhookDisconnectFailed": "Failed to disconnect webhook", "toastRuleSaved": "Saved notification rule for {{workspaceName}}", "toastRuleSaveFailed": "Failed to save workspace notification rule", "toastRuleRemoved": "Removed notification rule for {{workspaceName}}", "toastRuleRemoveFailed": "Failed to remove workspace notification rule", "toastPreferencesSaved": "Notification preferences saved", "toastPreferencesSaveFailed": "Failed to save notification preferences", "toastRuleSavedGeneric": "Workspace notification rule saved", "toastRuleRemovedGeneric": "Workspace notification rule removed" }, "preferencesPage": { "title": "Préférences", "subtitle": "Personnalisez votre expérience Kaneo.", "appearanceTitle": "Apparence", "appearanceSubtitle": "Paramètres visuels et préférences de mise en page.", "theme": "Thème", "themeDescription": "Choisissez votre palette de couleurs préférée", "selectTheme": "Sélectionnez un thème", "themeLight": "Clair", "themeDark": "Sombre", "themeSystem": "Système", "language": "Langue", "languageDescription": "Choisissez la langue de l'interface", "selectLanguage": "Sélectionnez une langue", "firstDayOfWeek": "Premier jour de la semaine", "firstDayOfWeekDescription": "Choisissez si les calendriers et les semaines commencent le dimanche ou le lundi", "selectFirstDayOfWeek": "Sélectionnez le premier jour", "weekStartsOnSunday": "Dimanche", "weekStartsOnMonday": "Lundi", "defaultView": "Vue par défaut", "defaultViewDescription": "Choisissez votre mode d'affichage des tâches préféré", "selectViewMode": "Sélectionnez un mode d'affichage", "board": "Tableau", "list": "Liste", "gantt": "Gantt", "sidebarDefault": "Barre latérale par défaut", "sidebarDefaultDescription": "Garder la barre latérale ouverte au démarrage", "displayOptions": "Options d'affichage", "displayOptionsDescription": "Choisissez les informations à afficher dans les vues de tâches", "taskNumbers": "Numéros de tâches", "taskNumbersDescription": "Afficher les ID et numéros de tâches", "assignees": "Assignés", "assigneesDescription": "Afficher les personnes assignées aux tâches", "dueDates": "Dates d'échéance", "dueDatesDescription": "Afficher les dates d'échéance des tâches", "labels": "Labels", "labelsDescription": "Afficher les labels et tags des tâches", "priority": "Priorité", "priorityDescription": "Afficher les indicateurs de priorité" }, "developerPage": { "pageTitle": "Paramètres développeur", "title": "Paramètres développeur", "subtitle": "Gérez vos clés API et vos ressources développeur.", "apiKeysCardTitle": "Clés API", "apiKeysCardDescription": "Créez et gérez des clés API pour un accès programmatique à Kaneo.", "createApiKey": "Créer une clé API", "unnamedKey": "Clé sans nom" }, "apiKey": { "createdModal": { "title": "Clé API créée", "description": "Votre clé API \"{{keyName}}\" a été créée avec succès.", "yourApiKey": "Votre clé API", "copy": "Copier", "copied": "Copié", "toastCopied": "Clé API copiée dans le presse-papiers", "alertTitle": "Succès! Votre clé API a été créée", "alertDescription": "Copiez cette clé maintenant. Vous ne pourrez plus la voir.", "done": "Terminé", "copyToContinue": "Copier la clé pour continuer" }, "table": { "loading": "Chargement des clés API...", "empty": "Aucune clé API pour le moment. Créez-en une pour commencer.", "columnName": "Nom", "columnKey": "Clé", "columnCreated": "Créé", "columnExpires": "Expiré", "columnActions": "Actions", "unnamedKey": "Clé sans nom", "expiredBadge": "Expiré {{label}}", "deleteConfirmTitle": "Supprimer la clé API?", "deleteConfirmDescription": "Cette action ne peut pas être annulée. Cela supprimera définitivement {{name}}.", "deleteFallbackName": "cette clé API", "delete": "Supprimer", "deleting": "Suppression...", "deleteAria": "Supprimer {{name}}", "deleteAriaFallback": "Clé API", "toastDeleted": "Clé API supprimée avec succès", "toastDeleteError": "Échec de la suppression de la clé API" }, "createDialog": { "title": "Créer une clé API", "description": "Créez une nouvelle clé API pour accéder à l'API Kaneo par programme.", "nameLabel": "Nom", "namePlaceholder": "Ma clé API", "nameDescription": "Un nom descriptif pour cette clé API", "expirationLabel": "Expiration", "expirationPlaceholder": "Sélectionner une expiration", "expirationDescription": "Choisissez combien de temps cette clé API doit rester valide. \"Jamais\" créera une clé sans expiration automatique.", "expiration1d": "1 jour", "expiration7d": "7 jours", "expiration30d": "30 jours", "expiration90d": "90 jours", "expirationNever": "Jamais", "create": "Créer", "creating": "Création...", "failedCreate": "Échec de la création de la clé API", "validation": { "nameRequired": "Le nom est requis", "nameShort": "Le nom doit contenir au moins 3 caractères", "expirationRequired": "Une date d'expiration est requise" } } }, "workspaceGeneral": { "pageTitle": "Paramètres Généraux", "title": "Paramètres Généraux", "subtitle": "Gérez le nom et la description de votre espace de travail.", "workspaceInfoTitle": "Informations sur l'espace de travail", "workspaceInfoSubtitle": "Configurez les détails et les préférences de votre espace de travail.", "nameLabel": "Nom de l'espace de travail", "nameHint": "Le nom de votre espace de travail", "namePlaceholder": "Entrez le nom de l'espace de travail", "descriptionLabel": "Description", "descriptionHint": "Une brève description de votre espace de travail", "descriptionPlaceholder": "Entrez la description de l'espace de travail", "dangerZone": "Zone dangereuse", "dangerZoneSubtitle": "Actions irréversibles et destructrices.", "deleteWorkspace": "Supprimer l'espace de travail", "deleteWorkspaceDescription": "Planifier la suppression définitive de l'espace de travail", "deleteModalTitle": "Supprimer l'espace de travail?", "deleteModalDescription": "Cela supprimera définitivement l'espace de travail \"{{name}}\" et toutes ses données. Cette action ne peut pas être annulée.", "deleteModalConfirm": "Supprimer l'espace de travail", "toastUpdated": "Espace de travail mis à jour avec succès", "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" } }, "projectGeneral": { "pageTitle": "Paramètres du projet", "title": "Paramètres Généraux", "subtitle": "Gérez le nom, la clé, l'icône et la description de votre projet.", "projectInfoTitle": "Informations sur le projet", "projectInfoSubtitle": "Configurez les détails et les préférences de votre projet.", "iconLabel": "Icône", "iconHint": "S'affiche dans la barre latérale et les surfaces du projet.", "pickIconTitle": "Choisir une icône", "searchIconsPlaceholder": "Rechercher des icônes...", "projectNameLabel": "Nom du projet", "projectNameHint": "Le nom de votre projet", "projectNamePlaceholder": "Entrez le nom du projet", "keyLabel": "Clé", "keyHint": "Utilisé pour les ID de tickets (ex: {{slug}}-123)", "keyPlaceholder": "PRO", "descriptionLabel": "Description", "descriptionHint": "Une brève description de votre projet", "descriptionPlaceholder": "Entrez la description du projet", "dangerZone": "Zone dangereuse", "dangerZoneSubtitle": "Actions irréversibles et destructrices.", "deleteProject": "Supprimer le projet", "deleteProjectDescription": "Planifier la suppression définitive du projet", "deleteModalTitle": "Supprimer le projet?", "deleteModalDescription": "Cela supprimera définitivement le projet \"{{name}}\" et toutes ses données. Cette action ne peut pas être annulée.", "deleteModalConfirm": "Supprimer le projet", "toastUpdated": "Projet mis à jour avec succès", "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", "nameShort": "Le nom du projet doit contenir au moins 2 caractères", "keyRequired": "La clé est requise", "keyShort": "La clé doit contenir au moins 2 caractères", "keyMax": "La clé doit contenir au plus 8 caractères", "iconRequired": "L'icône est requise" } }, "projectIntegrations": { "pageTitle": "Intégrations du projet", "title": "Intégrations du projet", "subtitle": "Connectez votre projet avec des outils et services externes pour rationaliser votre flux de travail.", "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 génériques", "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." }, "projectVisibility": { "pageTitle": "Visibilité du projet", "title": "Visibilité", "subtitle": "Contrôlez qui peut voir et accéder à votre projet.", "sectionTitle": "Visibilité", "sectionSubtitle": "Activez l'accès public et partagez l'URL publique.", "publicAccess": "Accès public", "publicAccessHint": "Permet à toute personne disposant de l'URL de visualiser ce projet", "publicUrl": "URL publique", "publicUrlHint": "Partagez ce lien si le projet est public", "copy": "Copier", "copiedToast": "Copié", "toastUpdated": "Visibilité mise à jour", "toastUpdateError": "Échec de la mise à jour de la visibilité" }, "projectWorkflow": { "pageTitle": "Paramètres du flux de travail", "title": "Flux de travail", "subtitle": "Configurez les colonnes du tableau et les règles d'automatisation pour ce projet.", "columnsTitle": "Colonnes", "columnsDescription": "Gérez les colonnes qui apparaissent sur votre tableau. Faites glisser pour réorganiser. Activez \"Colonne terminée\" pour les étapes qui représentent le travail terminé.", "automationTitle": "Règles d'automatisation", "automationDescription": "Mappez les événements d'intégration aux colonnes. Lorsqu'un événement se produit, la tâche liée se déplace vers la colonne spécifiée." }, "projectSwitcher": { "selectProject": "Sélectionner un projet", "noProjects": "Aucun projet" }, "columnEditor": { "toastCreated": "Colonne créée", "toastCreateError": "Échec de la création de la colonne", "toastRenamed": "Colonne renommée", "toastRenameError": "Échec de la mise à jour de la colonne", "toastFinalOn": "Colonne marquée comme terminée", "toastFinalOff": "La colonne n'est plus marquée comme terminée", "toastUpdateError": "Échec de la mise à jour de la colonne", "toastDeleted": "Colonne supprimée", "toastDeleteError": "Échec de la suppression de la colonne", "loading": "Chargement des colonnes...", "doneColumnTooltip": "Considérer ceci comme une colonne terminée", "doneColumn": "Colonne terminée", "markDoneAria": "Marquer {{name}} comme colonne terminée", "on": "On", "off": "Off", "newColumnPlaceholder": "Nouveau nom de colonne...", "add": "Ajouter" }, "githubIntegration": { "validation": { "ownerRequired": "Le propriétaire du dépôt est requis", "ownerInvalid": "Format de propriétaire de dépôt invalide", "nameRequired": "Le nom du dépôt est requis", "nameInvalid": "Format de nom de dépôt invalide" }, "toast": { "installedOk": "L'application GitHub est correctement installée!", "installedMissingPerms": "L'application GitHub est installée mais manque des permissions requises", "needsInstallOnRepo": "L'application GitHub doit être installée sur ce dépôt", "repoNotFound": "Dépôt non trouvé ou inaccessible", "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" }, "connectionStatus": "Statut de la connexion", "connectedActive": "Dépôt connecté et actif", "notConnectedHint": "Aucun dépôt connecté", "badgeConnected": "Connecté", "badgeNotConnected": "Non connecté", "repository": "Dépôt", "repositoryHint": "Dépôt GitHub connecté", "commentTaskLinkTitle": "Commenter le lien Kaneo sur les nouveaux problèmes", "commentTaskLinkHint": "Lorsque cette option est activée, Kaneo publie un commentaire avec un lien de tâche sur chaque nouveau problème GitHub.", "appStatusTitle": "Statut de l'application GitHub", "appStatusHint": "Statut d'installation et de permissions", "statusProperlyConfigured": "Correctement configuré", "statusMissingPermissions": "Permissions manquantes", "statusNotInstalled": "Non installé", "ownerLabel": "Propriétaire du dépôt", "ownerHint": "Nom d'utilisateur ou organisation GitHub", "ownerPlaceholder": "e.g., octocat", "repoNameLabel": "Nom du dépôt", "repoNameHint": "Le nom du dépôt", "repoNamePlaceholder": "e.g., my-project", "actionsTitle": "Actions", "actionsHint": "Gérer la connexion de votre dépôt", "browse": "Parcourir", "verify": "Vérifier", "update": "Mettre à jour", "connect": "Connecter", "disconnect": "Déconnecter", "missingPermissionsLabel": "Permissions manquantes:", "updatePermissions": "Mettre à jour les permissions", "installGithubApp": "Installer l'application GitHub", "importSectionTitle": "Importer les problèmes GitHub", "importSectionHint": "Importer les problèmes existants de votre dépôt GitHub en tant que tâches", "importing": "Importation...", "importIssues": "Importer les problèmes", "importDisabledHint": "Complétez la configuration du dépôt ci-dessus pour activer l'importation" }, "giteaIntegration": { "validation": { "baseUrlRequired": "Gitea base URL is required", "baseUrlInvalid": "Enter a valid URL (e.g. https://gitea.example.com)", "ownerRequired": "Repository owner is required", "ownerInvalid": "Invalid repository owner format", "nameRequired": "Repository name is required", "nameInvalid": "Invalid repository name format" }, "toast": { "verifyOk": "Gitea token can access this repository", "verifyWarning": "Check token permissions or repository access", "repoNotFound": "Repository not found or not accessible", "verifyError": "Failed to verify Gitea access", "tokenRequired": "Personal access token is required", "tokenRequiredVerify": "Enter a token to verify", "verifyFirst": "Verify access failed — check URL, token, and repository", "updated": "Gitea integration saved", "updateError": "Failed to save Gitea integration", "removed": "Gitea integration removed", "removeError": "Failed to remove Gitea integration", "issuesImported": "Issues imported successfully", "importError": "Failed to import issues", "commentOnEnabled": "Kaneo will comment with a task link on new issues", "commentOnDisabled": "Task link comments on new issues are turned off", "settingsUpdateError": "Failed to update Gitea integration", "secretCopied": "Copied", "unableToCopySecret": "Unable to copy secret" }, "webhookShow": "Show", "webhookHide": "Hide", "webhookCopy": "Copy", "connectionStatus": "Connection status", "connectedActive": "Repository connected and active", "notConnectedHint": "No Gitea repository connected", "badgeConnected": "Connected", "badgeNotConnected": "Not connected", "repository": "Repository", "repositoryHint": "Linked Gitea repository", "commentTaskLinkTitle": "Comment Kaneo link on new issues", "commentTaskLinkHint": "When enabled, Kaneo posts a comment on each new issue with a link to the task.", "webhookTitle": "Webhook", "webhookHint": "In your Gitea repository, add a webhook with this URL and secret. Enable push, pull request, issues, issue comments, and create (for labels).", "webhookSecretLabel": "Secret (must match the webhook secret in Gitea)", "baseUrlLabel": "Gitea URL", "baseUrlHint": "Root URL of your Gitea instance", "tokenLabel": "Personal access token", "tokenHint": "Token with repo and issues access", "tokenPlaceholder": "Paste token", "tokenPlaceholderUpdate": "Paste new token to rotate", "currentToken": "stored", "ownerLabel": "Owner", "ownerHint": "User or organization name", "repoNameLabel": "Repository name", "repoNameHint": "Repository name only (no owner)", "actionsTitle": "Actions", "actionsHint": "Verify access and connect", "browse": "Browse", "verify": "Verify", "update": "Update", "connect": "Connect", "disconnect": "Disconnect", "importSectionTitle": "Import Gitea issues", "importSectionHint": "Import open issues and pull requests from the repository", "importing": "Importing…", "importIssues": "Import issues", "importDisabledHint": "Verify the repository above to enable importing", "browseModalTitle": "Your repositories", "browseModalHint": "Repositories your token can access", "searchRepos": "Search…", "browseNeedsCredentials": "Enter Gitea URL and token to browse", "loadingRepos": "Loading repositories…", "retry": "Retry" }, "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" }, "connectionTitle": "Connexion webhook Slack", "connectionHint": "Collez une URL de webhook entrant Slack et choisissez les événements de tâche à publier.", "connected": "Connecté", "paused": "En pause", "webhookLabel": "URL du webhook entrant", "webhookPlaceholder": "https://hooks.slack.com/services/...", "webhookHint": "Créez un webhook entrant dans Slack et collez l'URL générée ici.", "channelLabel": "Nom du canal", "channelPlaceholder": "#team-updates", "channelHint": "Libellé facultatif pour votre référence. Slack contrôle le canal réel via la configuration du webhook.", "eventsTitle": "Notifications d'événements", "eventsHint": "Choisissez les changements de projet à envoyer vers Slack.", "events": { "taskCreated": "Nouvelles tâches", "taskStatusChanged": "Changements de statut", "taskPriorityChanged": "Changements de priorité", "taskTitleChanged": "Changements de titre", "taskDescriptionChanged": "Changements de description", "taskCommentCreated": "Nouveaux commentaires" }, "connect": "Connecter Slack", "saveChanges": "Enregistrer les modifications", "update": "Mettre à jour Slack", "disconnect": "Déconnecter" }, "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" }, "connectionTitle": "Connexion webhook Discord", "connectionHint": "Collez une URL de webhook Discord et choisissez les événements de tâche à publier.", "connected": "Connecté", "paused": "En pause", "webhookLabel": "URL du webhook", "webhookPlaceholder": "https://discord.com/api/webhooks/...", "webhookHint": "Créez un webhook de canal dans Discord et collez l'URL générée ici.", "channelLabel": "Nom du canal", "channelPlaceholder": "#team-updates", "channelHint": "Libellé facultatif pour votre référence. Discord contrôle le canal réel via la configuration du webhook.", "eventsTitle": "Notifications d'événements", "eventsHint": "Choisissez les changements de projet à envoyer vers Discord.", "events": { "taskCreated": "Nouvelles tâches", "taskStatusChanged": "Changements de statut", "taskPriorityChanged": "Changements de priorité", "taskTitleChanged": "Changements de titre", "taskDescriptionChanged": "Changements de description", "taskCommentCreated": "Nouveaux commentaires" }, "connect": "Connecter Discord", "saveChanges": "Enregistrer les modifications", "update": "Mettre à jour Discord", "disconnect": "Déconnecter" }, "genericWebhookIntegration": { "validation": { "webhookInvalid": "Entrez une URL de webhook valide" }, "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" }, "connectionTitle": "Connexion webhook sortant", "connectionHint": "Envoyez les événements de tâche en JSON vers votre propre point de terminaison. Un en-tête signé X-Kaneo-Signature est inclus lorsqu'un secret est configuré.", "connected": "Connecté", "paused": "En pause", "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é facultatif", "secretHint": "Facultatif. Si défini, Kaneo signe le corps de la requête et envoie le digest hexadécimal dans l'en-tête X-Kaneo-Signature.", "secretHintConfigured": "Un secret de signature est déjà configuré ({{secret}}). Entrez-en un nouveau pour le remplacer.", "eventsTitle": "Notifications d'événements", "eventsHint": "Choisissez les changements de projet qui déclenchent les webhooks sortants.", "events": { "taskCreated": "Nouvelles tâches", "taskStatusChanged": "Changements de statut", "taskPriorityChanged": "Changements de priorité", "taskTitleChanged": "Changements de titre", "taskDescriptionChanged": "Changements de description", "taskCommentCreated": "Nouveaux commentaires" }, "connect": "Connecter le webhook", "saveChanges": "Enregistrer les modifications", "disconnect": "Déconnecter" }, "telegramIntegration": { "validation": { "botTokenInvalid": "Entrez un jeton de bot Telegram valide", "chatIdRequired": "L'identifiant du chat est requis", "threadIdInvalid": "Entrez un identifiant de sujet Telegram 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" }, "connectionTitle": "Connexion du bot Telegram", "connectionHint": "Utilisez un jeton de bot Telegram et un identifiant de chat pour envoyer les mises à jour du projet dans un chat ou un sujet.", "connected": "Connecté", "paused": "En pause", "botTokenLabel": "Jeton du bot", "botTokenPlaceholder": "123456789:AAExampleBotToken", "botTokenHint": "Créez un bot avec BotFather et collez son jeton ici.", "botTokenHintConfigured": "Un jeton de bot est déjà configuré ({{token}}). Entrez-en un nouveau pour le remplacer.", "chatIdLabel": "Identifiant du chat", "chatIdPlaceholder": "-1001234567890 ou @team_updates", "chatIdHint": "Entrez l'identifiant du chat Telegram ou le nom d'utilisateur du canal où publier les mises à jour.", "threadIdLabel": "Identifiant du sujet", "threadIdPlaceholder": "Identifiant de sujet facultatif", "threadIdHint": "Facultatif. Utilisez-le pour les sujets de forum dans les groupes Telegram.", "chatLabelLabel": "Libellé du chat", "chatLabelPlaceholder": "Mises à jour engineering", "chatLabelHint": "Libellé facultatif pour votre référence dans Kaneo.", "eventsTitle": "Notifications d'événements", "eventsHint": "Choisissez les changements du projet à publier dans Telegram.", "events": { "taskCreated": "Nouvelles tâches", "taskStatusChanged": "Changements de statut", "taskPriorityChanged": "Changements de priorité", "taskTitleChanged": "Changements de titre", "taskDescriptionChanged": "Changements de description", "taskCommentCreated": "Nouveaux commentaires" }, "connect": "Connecter Telegram", "saveChanges": "Enregistrer les modifications", "disconnect": "Déconnecter" }, "repositoryBrowser": { "title": "Sélectionner un dépôt", "description": "Choisissez un dépôt où votre application GitHub est installée pour activer la synchronisation des problèmes.", "searchPlaceholder": "Rechercher des dépôts...", "loadError": "Échec du chargement des dépôts", "tryAgain": "Réessayer", "emptyTitle": "Aucun dépôt trouvé", "emptyHint": "Installez l'application GitHub sur vos dépôts pour les voir ici.", "installGithubApp": "Installer l'application GitHub", "noSearchMatchTitle": "Aucun dépôt ne correspond à votre recherche", "noSearchMatchHint": "Essayez d'ajuster vos termes de recherche ou effacez la recherche pour voir tous les dépôts.", "footerSummary": "{{repoCount}} dépôts répartis sur {{installationCount}} installations", "manageInstallations": "Gérer les installations", "updatedPrefix": "Mis à jour", "relativeJustNow": "Maintenant", "relativeMinutesAgo": "il y a {{count}}m", "relativeHoursAgo": "il y a {{count}}h", "relativeDaysAgo": "il y a {{count}}j" }, "tasksImportExport": { "exportTasks": "Exporter les tâches", "importTasks": "Importer les tâches", "dialogTitle": "Importer les 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" }, "workflowEditor": { "loading": "Chargement...", "createColumnsFirst": "Créez des colonnes d'abord pour configurer les règles d'automatisation.", "githubHeading": "GitHub", "githubHint": "Lorsqu'un événement GitHub se produit, déplacez la tâche liée vers une colonne.", "selectColumnPlaceholder": "Sélectionner une colonne...", "toastUpdated": "Règle de workflow mise à jour", "toastError": "Échec de la mise à jour de la règle", "events": { "branch_push": "Push de branche", "pr_opened": "PR Ouverte", "pr_merged": "PR Fusionné", "issue_opened": "Problème Ouvert", "issue_closed": "Problème Fermé" } }, "externalLinks": { "resources": "Ressources", "issue": "Problème", "branch": "Branche", "merged": "Fusionné", "draft": "Brouillon", "open": "Ouvert" } }, "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" } }, "notifications": "Notifications", "sidebar": { "overview": "Vue d'ensemble", "projects": "Projets", "members": "Membres", "invitations": "Invitations", "more": "Plus" }, "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" }, "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": { "projectsTitle": "Projets", "settingsTitle": "Paramètres", "backToWorkspace": "Retour à l'espace de travail", "settingsWorkspaceTab": "Espace de travail" }, "projectSettings": { "projectLabel": "Projet" }, "keyboardShortcuts": { "title": "Raccourcis clavier", "subtitle": "Accélérez votre flux de travail avec les raccourcis clavier", "searchPlaceholder": "Rechercher des raccourcis...", "footer": "Appuyez sur Echap pour fermer", "categories": { "general": "Général", "create": "Créer", "views": "Vues", "navigation": "Navigation", "quickSelect": "Sélection rapide (dans les popovers)" }, "items": { "openCommandPalette": "Ouvrir la palette de commandes", "globalSearch": "Recherche globale", "toggleSidebar": "Basculer la barre latérale", "showShortcuts": "Afficher les raccourcis clavier", "closeModal": "Fermer la modale/popover", "createTask": "Créer une tâche", "createProject": "Créer un projet", "createWorkspace": "Créer un espace de travail", "boardView": "Passer à la vue tableau", "listView": "Passer à la vue de liste", "backlogView": "Passer à la vue backlog", "nextTask": "Tâche suivante", "prevTask": "Tâche précédente", "openTask": "Ouvrir la tâche sélectionnée", "quickSelectNumber": "Sélectionner une option par numéro" } } }, "notifications": { "title": "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.", "shortcuts": { "open": "Ouvrir les notifications" }, "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": "Tâche assignée à vous", "content": "Vous avez été assigné à la tâche : {{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" } } }, "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}}\"", "githubUser": "GitHub User", "comment": { "github": "GitHub", "viewGithubProfile": "View GitHub Profile", "commentedOnGithub": "a commenté sur 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", "enterUrl": "Entrer une URL", "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", "plaintext": "Plaintext", "python": "Python", "rust": "Rust", "sql": "SQL", "swift": "Swift", "typescript": "TypeScript", "yaml": "YAML" } } } }, "tasks": { "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" }, "boardSearchPlaceholder": "Rechercher des tickets...", "view": { "board": "Tableau", "list": "Liste" }, "common": { "selectTask": "Sélectionner une tâche", "loadingTask": "Chargement de la tâche..." }, "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", "enterUrl": "Entrer une URL", "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", "ocaml": "OCaml", "php": "PHP", "perl": "Perl", "plaintext": "Plaintext", "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." } } }, "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": "Related", "blocks": "Blocks", "selectTask": "Select a task to link", "types": { "blocks": "blocs", "related": "relatif à" } }, "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" }, "properties": { "title": "Propriétés", "labels": "Labels", "copyTaskLink": "Copier le lien de la tâche", "copyTaskBranch": "Copier la branche de la tâche", "start": "Début", "startDate": "Date de début", "noDate": "Pas de date" }, "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": { "updateSuccess": "Date d'échéance de la tâche mise à jour avec succès", "updateError": "Échec de la mise à jour de la date d'échéance de la tâche", "clear": "Effacer la date" }, "startDate": { "updateSuccess": "Date de début de la tâche mise à jour avec succès", "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", "addSuccess": "Label ajouté", "removeSuccess": "Label supprimé", "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" } } }, "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": "Plan", "moveAllTooltip": "Déplacer toutes les tâches planifiées vers À faire", "moveAll": "Déplacer toutes", "addTask": "Ajouter une tâche", "filter": "Filtrer", "addFilter": "Ajouter un filtre...", "sections": { "planned": "Planifié", "archived": "Archivé" }, "noTasksInSection": "Aucune tâche {{section}}", "filters": { "priority": "Priorité: {{name}}", "assignee": "Assigné: {{name}}", "due": "Échéance: {{date}}", "label": "Label: {{name}}", "dueThisWeek": "Échéance cette semaine", "dueNextWeek": "Échéance la semaine prochaine", "noDueDate": "Pas de date d'échéance" } }, "sort": { "label": "Trier", "by": "Trier par", "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": { "filterBy": "Filtrer par", "allStatuses": "Tous les statuts", "allPriorities": "Toutes les priorités", "allAssignees": "Tous les assignés", "allDueDates": "Toutes les dates d'échéance", "allLabels": "Tous les labels", "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" } }, "gantt": { "pageTitle": "{{name}} — Gantt", "title": "Chronologie de Gantt", "searchPlaceholder": "Rechercher des tâches planifiées...", "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", "noTasksMatch": "Aucune tâche planifiée ne correspond à \"{{query}}\"", "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" }, "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" }, "archive": { "success": "{{count}} tâches archivées" }, "listView": { "addTask": "Ajouter une tâche", "archiveAllTooltip": "Archiver toutes les tâches terminées", "noTasks": "Aucune tâche" }, "kanban": { "addTask": "Ajouter une tâche" }, "pr": { "merged": "Fusionné", "draft": "Brouillon", "open": "Ouvert", "label": "Pull Request", "count_one": "{{count}} PR", "count_other": "{{count}} PRs" }, "assignee": { "label": "Assigné", "unassigned": "Non assigné" }, "dueDate": { "label": "Date d'échéance", "clear": "Effacer la date", "updateSuccess": "Date d'échéance de la tâche mise à jour avec succès", "updateError": "Échec de la mise à jour de la date d'échéance de la tâche", "clearSuccess": "Date d'échéance de la tâche effacée", "clearError": "Échec de l'effacement de la date d'échéance" }, "labels": { "label": "Labels", "empty": "Aucun label disponible" }, "update": { "success": "Tâche mise à jour avec succès", "error": "Échec de la mise à jour de la tâche" }, "contextMenu": { "copyLink": "Copier le lien", "copyLinkSuccess": "Lien de la tâche copié !" }, "actions": { "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", "deleteConfirm": "Supprimer {{count}} tâches ? Cette action ne peut pas être annulée.", "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", "setDueDate": "Définir la date d'échéance", "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" } }, "invitations": { "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": "Workspace", "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.", "projectStatus": { "notStarted": "Non commencé", "complete": "Terminé", "inProgress": "En cours" }, "noDueDate": "Pas de date d'échéance" }, "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é" }, "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" } }, "team": { "roles": { "owner": "Propriétaire", "admin": "Admin", "member": "Membre" }, "members": { "pageTitle": "Membres", "inviteMember": "Inviter un membre" }, "inviteModal": { "title": "Inviter un membre de l'équipe", "emailLabel": "Email", "emailPlaceholder": "collegue@entreprise.fr", "sendInvitation": "Envoyer l'invitation", "success": "Invitation envoyée avec succès", "error": "Échec de l'envoi de l'invitation" }, "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" }, "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" } }, "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" } } }