gitdataai/i18n/fr.json
ZhenYi 5be85c265b feat(i18n): add German and French translation files
Translate all UI strings to German (Deutsch) and French (Français)
with proper technical terminology.
2026-04-27 21:31:01 +08:00

1409 lines
63 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"landing": {
"hero": {
"badgeText": "Command as Service · Human + Agent Engineering",
"heading": "Where Humans & Agents Engineer Together.",
"subtitle": "Every action is a command. Every command is versioned, auditable, and composable. Git repositories, rooms, and AI agents — all driven by a command stream you own.",
"startBuilding": "Start Building",
"viewDocumentation": "View Documentation",
"terminalTitle": "gitdata — every action is a command"
},
"features": {
"sectionTitle": "Build. Review. Automate. All via Commands.",
"sectionSubtitle": "Every capability is exposed as a command. Agents listen. Humans approve. Everything is logged and replayable.",
"commandAsService": {
"title": "Command as Service",
"description": "Every action — a repo create, a PR review, an agent deploy — is a versioned command. Audit, replay, and compose them. Your CLI is your API."
},
"collaborativeRooms": {
"title": "Collaborative Rooms",
"description": "Command-first rooms where humans and AI agents work together via shared command streams. Issue commands, review results, and build consensus — all in one thread."
},
"aiAgents": {
"title": "Agents IA",
"description": "Deploy agents that listen to room commands, execute tasks, and report back. Agents run skills, query repos, and call your own services."
},
"gitRepositories": {
"title": "Depots Git",
"description": "Full Git operations — branches, commits, merges, and diffs. HTTP and SSH access. Built-in branch protection and access control."
},
"issuesPullRequests": {
"title": "Issues & Pull Requests",
"description": "Track issues, review code, and manage pull requests. Agents can listen to PR events and automatically run review commands."
},
"skillRegistry": {
"title": "Skill Registry",
"description": "Package agent behaviors as reusable Skills. Publish to a registry, pull into any room, and invoke via command. Your workflows become shared services."
},
"commandAuditTrail": {
"title": "Command Audit Trail",
"description": "Every command is logged with its intent, result, and caller. Trace every AI decision back to the human who issued it."
},
"agentMemory": {
"title": "Agent Memory",
"description": "Agents have persistent, git-native memory. Branch, commit, and roll back context just like source code. No more stateless agents."
}
},
"highlight": {
"heading": "Your CLI is also your API.",
"subtitle": "Every GitDataAI action is a command with a name, parameters, and a result. Agents subscribe to command streams. Rooms execute commands. Your entire development workflow becomes a versioned, replayable, diffable stream — without a separate event bus.",
"commandsAllTheWayDown": {
"title": "Commands All the Way Down",
"description": "Every operation — repo create, agent deploy, skill run — is a command. Your workflow is a composable, queryable stream."
},
"agentsListenToCommands": {
"title": "Agents Listen to Commands",
"description": "Deploy an agent to a room and it subscribes to command events. Agents don't guess — they execute what you command."
},
"gitNativeAudit": {
"title": "Git-Native Audit",
"description": "Command history is stored in Git. Branch your command log, diff a workflow, replay it anywhere. Full traceability without a separate log store."
},
"approve": "Approuver",
"viewDiff": "Voir le diff"
},
"nav": {
"platform": "Plateforme",
"skills": "Skills",
"network": "Reseau",
"pricing": "Tarifs",
"signIn": "Se connecter",
"joinBeta": "Rejoindre la beta",
"commandAsServiceNav": "Command as Service",
"collaborativeRoomsNav": "Collaborative Rooms",
"aiAgentsNav": "Agents IA",
"gitRepositoriesNav": "Depots Git",
"exploreSkillsNav": "Explorer les skills",
"publishSkillNav": "Publier un skill",
"skillDocumentationNav": "Documentation des skills",
"exploreNetworkNav": "Explorer le reseau",
"publicRoomsNav": "Salons publics",
"developerApiNav": "Developer API",
"plansPricingNav": "Plans & Tarifs",
"enterpriseNav": "Enterprise",
"billingFaqNav": "FAQ Facturation"
},
"footer": {
"readyHeading": "Pret pour l'ere des agents?",
"getStartedFree": "Commencer gratuitement",
"contactSales": "Contacter le service commercial",
"platform": "Plateforme",
"skills": "Skills",
"developers": "Developpeurs",
"company": "Entreprise",
"gitRepositories": "Depots Git",
"issuesPullRequests": "Issues & PRs",
"collaborativeRooms": "Collaborative Rooms",
"aiAgents": "Agents IA",
"commandStream": "Command Stream",
"skillRegistry": "Skill Registry",
"publishSkill": "Publier un skill",
"skillDocs": "Documentation des skills",
"community": "Communaute",
"documentation": "Documentation",
"cliReference": "Reference CLI",
"apiReference": "Reference API",
"status": "Statut",
"about": "A propos",
"careers": "Carrieres",
"contact": "Contact",
"privacy": "Confidentialite",
"brandTagline": "The platform where humans and AI agents engineer together via commands. Every action versioned. Every agent accountable. Built for teams that ship."
}
},
"auth": {
"login": {
"heading": "Se connecter",
"subtitleWelcome": "Bienvenue sur GitDataAI",
"subtitleContinue": "Continuer vers {path}",
"usernameLabel": "Nom d'utilisateur",
"usernamePlaceholder": "Entrez votre nom d'utilisateur",
"passwordLabel": "Mot de passe",
"passwordForgot": "Oublie?",
"verificationLabel": "Verification",
"verificationPlaceholder": "Entrez le code",
"submitButton": "Se connecter",
"noAccount": "Pas encore de compte?",
"createOne": "Creer un compte",
"errorFillRequired": "Veuillez remplir tous les champs obligatoires.",
"errorInvalidCredentials": "Identifiants invalides. Veuillez reessayer."
},
"register": {
"heading": "Creer un compte",
"subtitle": "Rejoignez la prochaine generation de collaboration humain-agent",
"emailLabel": "E-mail",
"emailPlaceholder": "nom@entreprise.fr",
"usernameLabel": "Nom d'utilisateur",
"usernamePlaceholder": "architecte_01",
"passwordLabel": "Mot de passe",
"passwordPlaceholder": "••••••••",
"confirmLabel": "Confirmer",
"confirmPlaceholder": "••••••••",
"verificationLabel": "Verification",
"verificationPlaceholder": "Captcha",
"submitButton": "Creer le compte",
"alreadyHaveAccount": "Deja un compte?",
"signIn": "Se connecter",
"encrypted": "Chiffre",
"errorEmailRequired": "L'e-mail est requis",
"errorInvalidEmail": "Adresse e-mail invalide",
"errorUsernameRequired": "Le nom d'utilisateur est requis",
"errorUsernameLength": "Le nom d'utilisateur doit contenir au moins 3 caracteres",
"errorPasswordRequired": "Le mot de passe est requis",
"errorPasswordLength": "Le mot de passe doit contenir au moins 8 caracteres",
"errorPasswordComplexity": "Le mot de passe doit contenir des majuscules, des minuscules et un chiffre",
"errorPasswordMismatch": "Les mots de passe ne correspondent pas",
"errorCaptchaRequired": "Le code de verification est requis",
"errorRegistrationFailed": "Echec de l'inscription",
"successAccountCreated": "Compte cree avec succes!"
},
"passwordReset": {
"heading": "Reinitialiser le mot de passe",
"subtitle": "Entrez votre adresse e-mail et nous vous enverrons un lien pour vous reconnecter a votre compte.",
"emailLabel": "Adresse e-mail",
"emailPlaceholder": "nom@exemple.fr",
"submitButton": "Envoyer le lien de reinitialisation",
"backToSignIn": "Retour a la connexion",
"successHeading": "Verifiez votre e-mail",
"successMessage": "Nous avons envoye un lien securise a {email}. Cliquez sur le lien pour reinitialiser votre phrase secrete.",
"returnToSignIn": "Retour a la connexion",
"didNotReceive": "Pas recu l'e-mail? Verifiez votre dossier spam ou",
"tryAgain": "reessayez",
"secureLink": "Lien securise",
"expiry24h": "Expire dans 24h",
"errorEmailRequired": "L'adresse e-mail est requise.",
"errorInvalidEmail": "Veuillez entrer une adresse e-mail valide.",
"errorSendFailed": "Echec de l'envoi de l'e-mail de reinitialisation.",
"successLinkSent": "Lien de reinitialisation envoye!"
},
"confirmPasswordReset": {
"heading": "Definir un nouveau mot de passe",
"subtitle": "Creez un mot de passe强者 pour votre compte.",
"newPasswordLabel": "Nouveau mot de passe",
"newPasswordPlaceholder": "Au moins 8 caracteres",
"confirmPasswordLabel": "Confirmer le mot de passe",
"confirmPasswordPlaceholder": "Repetez votre mot de passe",
"submitButton": "Reinitialiser le mot de passe",
"backToSignIn": "Retour a la connexion",
"successHeading": "Reinitialisation du mot de passe terminee",
"successMessage": "Votre mot de passe a ete mis a jour. Vous pouvez maintenant vous connecter avec votre nouveau mot de passe.",
"signIn": "Se connecter",
"passwordUpdated": "Mot de passe mis a jour",
"secureConnection": "Connexion securisee",
"errorMissingToken": "Jeton de reinitialisation manquant. Veuillez utiliser le lien de votre e-mail.",
"errorPasswordRequired": "Le nouveau mot de passe est requis.",
"errorPasswordLength": "Le mot de passe doit contenir au moins 8 caracteres.",
"errorPasswordUppercase": "Le mot de passe doit contenir au moins une majuscule.",
"errorPasswordLowercase": "Le mot de passe doit contenir au moins une minuscule.",
"errorPasswordDigit": "Le mot de passe doit contenir au moins un chiffre.",
"errorPasswordMismatch": "Les mots de passe ne correspondent pas.",
"errorResetFailed": "Echec de la reinitialisation du mot de passe. Le lien a peut-etre expire.",
"successResetComplete": "Mot de passe reinitialise avec succes!"
},
"verifyEmail": {
"heading": "Verification de l'e-mail",
"loadingText": "Verification du jeton securise...",
"successHeading": "Identite confirmee",
"successMessage": "Votre e-mail a ete verifie avec succes. Vous avez maintenant un acces complet a la plateforme GitDataAI.",
"goToDashboard": "Aller au tableau de bord",
"errorHeading": "Echec de la verification",
"backToSettings": "Retour aux parametres",
"needHelp": "Besoin d'aide?",
"contactSupport": "Contacter le support technique",
"encryptedLink": "Lien chiffre",
"soc2Compliant": "Conforme SOC2",
"errorTokenMissing": "Le jeton de verification est manquant ou mal forme.",
"errorLinkExpired": "Le lien de verification a expire ou est invalide.",
"successVerified": "Identite verifiee avec succes."
},
"acceptWorkspaceInvite": {
"heading": "Invitation Workspace",
"loadingHeading": "Validation de l'invitation",
"loadingText": "Verification des permissions et du statut du workspace...",
"successHeading": "Bienvenue a bord!",
"successMessage": "Invitation acceptee. Vous avez ete ajoute a l'equipe. Nous vous redirigeons vers le tableau de bord.",
"proceedManually": "Proceder manuellement",
"errorHeading": "Invitation invalide",
"returnHome": "Retour a l'accueil",
"needNewLink": "Besoin d'un nouveau lien?",
"contactAdmin": "Contacter l'admin du workspace",
"secureJoin": "JOINTURE SECURISEE",
"dataOwnership": "PROPRIETE DES DONNEES",
"errorMissingToken": "Le lien d'invitation ne contient pas de jeton de securite valide.",
"errorExpired": "Le lien d'invitation a expire ou a deja ete utilise.",
"successJoined": "Vous avez rejoint le workspace avec succes"
}
},
"project": {
"overview": {
"settings": "Parametres",
"members": "membres",
"likes": "likes",
"watches": "abonnements",
"public": "Public",
"private": "Prive",
"activity": "Activite",
"viewAll": "Voir tout",
"recentEvents": "Evenements recents dans ce projet",
"noActivity": "Pas encore d'activite.",
"projectInfo": "Info projet",
"projectName": "Nom du projet",
"yourRole": "Votre role",
"created": "Cree",
"visibility": "Visibilite",
"guest": "Invite",
"quickActions": "Actions rapides",
"newIssue": "Nouvel Issue",
"viewActivity": "Voir l'activite",
"membersAction": "Membres",
"createRepository": "Creer un depot",
"projectNotFound": "Projet non trouve.",
"noDescription": "Aucune description fournie",
"expand": "Developper",
"collapse": "Reduire"
},
"eventTypes": {
"commit": "Commit",
"branch": "Branche",
"tag": "Tag",
"issue": "Issue",
"comment": "Commentaire",
"pullRequest": "Pull Request",
"merged": "Fusionne",
"message": "Message",
"room": "Salon",
"starred": "Favori ajoute",
"unstarred": "Favori retire",
"watched": "Abonne",
"unwatched": "Desabonne",
"member": "Membre",
"label": "Label",
"repo": "Depot"
},
"dateLabels": {
"today": "Aujourd'hui",
"yesterday": "Hier"
},
"issues": {
"breadcrumb": {
"projects": "Projets",
"issues": "Issues"
},
"searchPlaceholder": "Rechercher des issues…",
"boardView": "Vue tableau",
"listView": "Vue liste",
"board": "Tableau",
"list": "Liste",
"new": "Nouveau",
"open": "Ouvert",
"closed": "Ferme",
"of": "sur",
"shown": "affiches",
"errorLoading": "Erreur:",
"errorLoadFailed": "Echec du chargement des issues",
"noIssues": "Aucun issue trouve",
"clearSearch": "Effacer la recherche",
"title": "Titre",
"author": "Auteur",
"date": "Date",
"newIssue": "Nouvel issue",
"noIssuesInColumn": "Aucun issue"
},
"issueDetail": {
"backToIssues": "Retour aux Issues",
"closeIssue": "Fermer l'issue",
"reopenIssue": "Rouvrir l'issue",
"edit": "Modifier",
"openStatus": "Ouvert",
"closedStatus": "Ferme",
"openedBy": "Ouvert par",
"aiTriage": "Triage IA",
"highPriority": "haute priorite",
"mediumPriority": "priorite moyenne",
"lowPriority": "basse priorite",
"accept": "Accepter",
"applying": "Application en cours…",
"ignore": "Ignorer",
"noActivity": "Pas encore d'activite.",
"openedThisIssue": "a ouvert cet issue",
"commented": "a commente",
"editComment": "Modifier le commentaire",
"deleteComment": "Supprimer le commentaire",
"cancel": "Annuler",
"save": "Enregistrer",
"saving": "Enregistrement…",
"leaveComment": "Laisser un commentaire…",
"comment": "Commentaire",
"posting": "Publication…",
"commentCannotEmpty": "Le commentaire ne peut pas etre vide",
"isTyping": "{user} tape…",
"areTyping": "{user1} et {user2} tapent…",
"peopleTyping": "{count} personnes tapent…",
"linkedRepositories": "Depots lies",
"details": "Details",
"status": "Statut",
"author": "Auteur",
"created": "Cree",
"updated": "Mis a jour",
"closed": "Ferme",
"labelsApplied": "Labels appliques",
"failedApplyLabels": "Echec de l'application des labels",
"commentAdded": "Commentaire ajoute",
"failedAddComment": "Echec de l'ajout du commentaire",
"commentDeleted": "Commentaire supprime",
"failedDeleteComment": "Echec de la suppression du commentaire",
"commentUpdated": "Commentaire mis a jour",
"failedUpdateComment": "Echec de la mise a jour du commentaire",
"issueClosed": "Issue ferme",
"issueReopened": "Issue rouvert",
"failedUpdateIssue": "Echec de la mise a jour de l'issue",
"errorLoadingIssue": "Echec du chargement de l'issue"
},
"room": {
"selectChannel": "Selectionnez une chaine",
"chooseChannelHint": "Choisissez une chaine dans la barre laterale pour commencer a discuter.",
"channels": "Chaines",
"noChannelsYet": "Pas encore de chaines",
"createChannel": "Creer une chaine",
"addCategory": "+ Ajouter une categorie",
"categoryNamePlaceholder": "Nom de la categorie",
"addChannel": "Ajouter une chaine",
"channelSettings": "Parametres de la chaine",
"expand": "Developper",
"collapse": "Reduire",
"mute": "Muet",
"unmute": "Reactiver le son",
"archive": "Archiver",
"unarchive": "Desarchiver",
"members": "Membres",
"online": "En ligne",
"ai": "IA"
},
"roomDialog": {
"newRoom": "Nouveau salon",
"createRoomDescription": "Creez un nouveau salon de chat. Choisissez un nom et une visibilite.",
"roomName": "Nom du salon",
"roomNamePlaceholder": "ex. general",
"publicLabel": "Public (visible par tous les membres du projet)",
"cancel": "Annuler",
"create": "Creer",
"creating": "Creation...",
"deleteRoom": "Supprimer le salon",
"deleteRoomConfirm": "Etes-vous sur de vouloir supprimer \"{name}\"? Tous les messages seront definitivement supprimes. Cette action est irreversible.",
"deleting": "Suppression..."
},
"roomChat": {
"connecting": "Connexion...",
"disconnected": "Deconnecte",
"mentions": "@Mentions",
"searchMessages": "Rechercher des messages",
"memberList": "Liste des membres",
"pinnedMessages": "Messages epingles",
"roomSettings": "Parametres du salon",
"deleteChannel": "Supprimer la chaine",
"showChannels": "Afficher les chaines",
"hideChannels": "Masquer les chaines",
"back": "Retour",
"isThinking": "{name} reflechit...",
"typingSingular": "{user} tape...",
"typingDual": "{user1} et {user2} tapent...",
"typingOthers": "{user} et {count} autres tapent...",
"messageUpdated": "Message mis a jour",
"messageDeleted": "Message supprime",
"failedCreateThread": "Echec de la creation du fil",
"navigateToMessage": "Naviguer vers le message dans {room}",
"roomUpdated": "Salon mis a jour",
"failedUpdateRoom": "Echec de la mise a jour du salon"
},
"commandPalette": {
"placeholder": "Rechercher projets, depots, salons, commandes…",
"noResults": "Aucun resultat trouve.",
"navigation": "Navigation",
"create": "Creer",
"projects": "Projets",
"repositories": "Depots",
"rooms": "Salons",
"gotoNotifications": "Aller aux notifications",
"createProject": "Creer un projet",
"createRepoIn": "Creer un depot dans {project}"
},
"issueNew": {
"backToIssues": "Retour aux Issues",
"creatingIn": "Creation dans {project}",
"titleRequired": "Titre *",
"titlePlaceholder": "Resume bref de l'issue",
"description": "Description",
"markdown": "Markdown",
"bold": "Gras",
"italic": "Italique",
"code": "Code",
"link": "Lien",
"list": "Liste",
"quote": "Citation",
"bodyPlaceholder": "Decrivez l'issue en detail. Markdown est supporte.",
"bodyHint": "Supporte Markdown — utilisez **gras**, `code`, listes, et plus",
"linkedRepositories": "Depots lies",
"linkedReposHint": "Suivre les commits et pull requests lies a cette issue",
"assignees": "Assignes",
"labels": "Labels",
"cancel": "Annuler",
"createIssue": "Creer l'issue",
"creating": "Creation…",
"discardChanges": "Abandonner les modifications?",
"discardChangesDesc": "Vous avez des modifications non enregistrees. Etes-vous sur de vouloir quitter?",
"keepEditing": "Continuer a modifier",
"discard": "Abandonner",
"titleRequiredError": "Le titre est requis",
"issueCreated": "Issue cree",
"failedCreateIssue": "Echec de la creation de l'issue",
"selectAssignees": "Selectionner les assiges",
"selectAssigneesDesc": "Choisissez les membres de l'equipe a assigner a cette issue",
"noMembers": "Aucun membre trouve dans ce projet",
"done": "Termine",
"selectLabels": "Selectionner les labels",
"selectLabelsDesc": "Choisissez les labels pour categoriser cette issue",
"noLabels": "Pas encore de labels dans ce projet"
},
"issueEdit": {
"backToIssue": "Retour a l'issue #{number}",
"editingIssue": "Modification de l'issue #{number}",
"title": "Modifier l'issue",
"titleSection": "Titre",
"titleCantChange": "Le titre ne peut pas etre modifie apres la creation",
"status": "Statut",
"changeStatusHint": "Modifier le statut depuis la page de detail de l'issue",
"description": "Description",
"descriptionPlaceholder": "Ajouter une description pour plus de contexte (Markdown supporte)",
"markdownHint": "Formatage Markdown supporte",
"linkedRepositories": "Depots lies",
"noRepositories": "Aucun depot dans ce projet",
"cancel": "Annuler",
"saveChanges": "Enregistrer les modifications",
"saving": "Enregistrement…",
"discardChanges": "Abandonner les modifications?",
"discardChangesDesc": "Vous avez des modifications non enregistrees. Etes-vous sur de vouloir quitter?",
"keepEditing": "Continuer a modifier",
"discard": "Abandonner",
"issueNotFound": "Issue non trouvee.",
"issueUpdated": "Issue mise a jour avec succes",
"failedUpdateIssue": "Echec de la mise a jour de l'issue",
"returnToIssue": "Retour a l'issue"
},
"activity": {
"title": "Activite",
"subtitle": "Evenements recents dans {project}",
"filterEvents": "Filtrer les evenements",
"perPage": "{count} / page",
"noActivity": "Aucune activite trouvee.",
"tryDifferentType": "Essayez de selectionner un autre type d'evenement.",
"failedLoad": "Echec du chargement du fil d'activite.",
"page": "Page {page} sur {totalPages}",
"events": "{count} evenements",
"allEvents": "Tous les evenements",
"commits": "Commits",
"branchCreated": "Branche creee",
"branchDeleted": "Branche supprimee",
"tagCreated": "Tag cree",
"tagDeleted": "Tag supprime",
"repoCreated": "Depot cree",
"issueOpened": "Issue ouverte",
"issueClosed": "Issue fermee",
"issueReopened": "Issue rouverte",
"issueComment": "Commentaire d'issue",
"prOpened": "PR ouverte",
"prMerged": "PR fusionnee",
"prClosed": "PR fermee",
"roomMessage": "Message de salon",
"roomCreated": "Salon cree",
"projectStarred": "Projet mis en favori",
"projectUnstarred": "Favori du projet retire",
"memberAdded": "Membre ajoute",
"memberRemoved": "Membre supprime",
"roleChanged": "Role modifie",
"labelCreated": "Label cree",
"labelUpdated": "Label mis a jour",
"labelDeleted": "Label supprime"
},
"resources": {
"title": "Ressources",
"subtitle": "Gerez et publiez les ressources du projet sur le marketplace.",
"comingSoon": "Bientot disponible",
"description": "Publiez des skills, des paquets et d'autres ressources sur le marketplace."
},
"articles": {
"title": "Articles",
"subtitle": "Redigez et gerez la documentation et les articles du projet.",
"comingSoon": "Bientot disponible",
"description": "Redigez et publiez des articles pour votre projet."
},
"skillsInit": {
"backToSkills": "Retour aux Skills",
"title": "Nouveau Skill",
"subtitle": "Ajouter un skill a ce projet",
"slug": "Slug",
"slugPlaceholder": "coding/code-review",
"slugHint": "Identifiant unique, utilisez / pour grouper les skills",
"displayName": "Nom d'affichage",
"namePlaceholder": "Agent de revue de code",
"description": "Description",
"descPlaceholder": "Revoit les pull requests avec l'IA",
"content": "Contenu (SKILL.md)",
"contentPlaceholder": "# Revue de code\n\nVous etes un expert en revue de code...",
"contentHint": "Markdown decrivant quand et comment utiliser ce skill.",
"cancel": "Annuler",
"createSkill": "Creer le skill",
"created": "Skill \"{name}\" cree",
"failedCreate": "Echec de la creation du skill"
}
},
"notification": {
"title": "Notifications",
"live": "En direct",
"unreadTotal": "{unread} non lues · {total} total",
"totalNotifications": "{count} notification{plural}",
"noGrouping": "Pas de regroupement",
"groupByProject": "Regrouper par projet",
"groupByType": "Regrouper par type",
"cancel": "Annuler",
"markRead": "Marquer comme lu",
"archive": "Archiver",
"markAllRead": "Tout marquer comme lu",
"selectMultiple": "Selection multiple",
"selectModeActive": "✓ Mode selection active",
"markAllReadInGroup": "Tout marquer comme lu dans le groupe",
"filterAll": "Tout",
"filterUnread": "Non lues",
"filterArchived": "Archivees",
"notificationSettings": "Parametres de notification",
"noUnread": "Pas de notifications non lues",
"noArchived": "Pas de notifications archivees",
"noNotifications": "Pas encore de notifications",
"allCaughtUp": "Vous etes a jour!",
"archivedAppearHere": "Les notifications archivees apparaitront ici.",
"notificationsAppearHere": "Vous verrez les notifications ici lorsqu'un evenement se produit.",
"justNow": "a l'instant",
"minutesAgo": "il y a {count}m",
"hoursAgo": "il y a {count}h",
"daysAgo": "il y a {count}j",
"markAsRead": "Marquer comme lu",
"notificationArchived": "Notification archivee",
"failedMarkRead": "Echec du marquage comme lu",
"failedArchive": "Echec de l'archivage",
"failedMarkAllRead": "Echec du marquage de tout comme lu",
"notificationsArchived": "{count} notifications archivees",
"typeMention": "Mention",
"typeInvitation": "Invitation",
"typeProjectInvite": "Invitation projet",
"typeWorkspaceInvite": "Invitation workspace",
"typeRoleChange": "Changement de role",
"typeRoomCreated": "Salon cree",
"typeRoomDeleted": "Salon supprime",
"typeAnnouncement": "Annonce",
"typeIssueOpened": "Issue ouverte",
"typeIssueCommented": "Commentaire d'issue",
"typeIssueClosed": "Issue fermee",
"typeReviewRequested": "Revue demandee",
"typePrApproved": "PR approuvee",
"typePrMerged": "PR fusionnee"
},
"search": {
"placeholder": "Rechercher projets, depots, issues, utilisateurs...",
"searchButton": "Rechercher",
"projects": "Projets",
"repositories": "Depots",
"issues": "Issues",
"users": "Utilisateurs",
"messages": "Messages",
"resultsFor": "{count} resultats pour \"{query}\"",
"noResultsFor": "Aucun resultat pour \"{query}\"",
"messagesFor": "{count} message{plural} pour \"{query}\"{inRoom}",
"noMessagesFor": "Aucun message trouve correspondant a \"{query}\"",
"noMessagesInRoom": "Aucun message trouve dans le salon \"{room}\" correspondant a \"{query}\"",
"searchFailed": "Echec de la recherche",
"enterKeyword": "Entrez un mot-cle pour rechercher dans tous les contenus.",
"noResultsFound": "Aucun resultat trouve",
"tryDifferentKeywords": "Essayez d'autres mots-cles ou verifiez l'orthographe.",
"showing": "Affichage de {count} sur {total} {type}",
"roomIdPlaceholder": "ID du salon pour rechercher les messages (ex. workspace:general)...",
"acrossAllRooms": "dans tous les salons accessibles",
"inRoom": " dans le salon {room}"
},
"settings": {
"account": {
"title": "Compte",
"subtitle": "Gerez les informations et preferences de votre compte.",
"changePassword": "Changer le mot de passe",
"changePasswordDesc": "Mettez a jour votre mot de passe pour securiser votre compte.",
"currentPassword": "Mot de passe actuel",
"currentPasswordPlaceholder": "Entrez votre mot de passe actuel",
"newPassword": "Nouveau mot de passe",
"newPasswordPlaceholder": "Entrez votre nouveau mot de passe",
"confirmNewPassword": "Confirmer le nouveau mot de passe",
"confirmNewPasswordPlaceholder": "Confirmez votre nouveau mot de passe",
"passwordMinLength": "Doit contenir au moins 8 caracteres",
"changePasswordButton": "Changer le mot de passe",
"changing": "Modification...",
"emailAddress": "Adresse e-mail",
"emailAddressDesc": "Mettez a jour votre adresse e-mail. Un e-mail de verification sera envoye pour confirmation.",
"currentEmail": "E-mail actuel",
"noEmailOnRecord": "Pas d'e-mail enregistre",
"newEmailAddress": "Nouvelle adresse e-mail",
"newEmailPlaceholder": "Entrez votre nouvelle adresse e-mail",
"confirmWithPassword": "Confirmer avec le mot de passe",
"passwordPlaceholder": "Entrez votre mot de passe actuel",
"sendVerificationEmail": "Envoyer l'e-mail de verification",
"sending": "Envoi...",
"preferences": "Preferences",
"preferencesDesc": "Personnalisez vos preferences de compte et parametres de notification.",
"language": "Langue",
"theme": "Theme",
"timezone": "Fuseau horaire",
"light": "Clair",
"dark": "Sombre",
"system": "Systeme",
"notifications": "Notifications",
"emailNotifications": "Notifications par e-mail",
"emailNotificationsDesc": "Recevoir des notifications par e-mail pour les mises a jour importantes",
"inAppNotifications": "Notifications dans l'application",
"inAppNotificationsDesc": "Afficher les notifications dans l'application",
"reset": "Reinitialiser",
"saveChanges": "Enregistrer les modifications",
"saving": "Enregistrement...",
"passwordChangedSuccess": "Mot de passe change avec succes",
"preferencesUpdatedSuccess": "Preferences mises a jour avec succes",
"failedChangePassword": "Echec du changement de mot de passe",
"failedUpdatePreferences": "Echec de la mise a jour des preferences",
"failedLoadPreferences": "Echec du chargement des preferences.",
"verificationEmailSent": "E-mail de verification envoye! Veuillez verifier votre nouvel e-mail pour confirmer.",
"failedRequestEmailChange": "Echec de la demande de changement d'e-mail",
"enterCurrentPassword": "Veuillez entrer votre mot de passe actuel",
"enterNewPassword": "Veuillez entrer un nouveau mot de passe",
"newPasswordMinLength": "Le nouveau mot de passe doit contenir au moins 8 caracteres",
"passwordsDoNotMatch": "Les mots de passe ne correspondent pas",
"enterNewEmail": "Veuillez entrer une nouvelle adresse e-mail",
"enterValidEmail": "Veuillez entrer une adresse e-mail valide",
"enterPasswordConfirm": "Veuillez entrer votre mot de passe pour confirmer"
},
"preferences": {
"title": "Preferences",
"subtitle": "Gerez vos preferences personnelles et parametres de notification.",
"notificationChannels": "Canaux de notification",
"notificationChannelsDesc": "Choisissez comment vous souhaitez recevoir les notifications.",
"emailNotificationsLabel": "Notifications par e-mail",
"emailNotificationsDesc": "Recevoir les notifications par e-mail",
"inAppNotificationsLabel": "Notifications dans l'application",
"inAppNotificationsDesc": "Afficher les notifications dans l'application",
"browserPush": "Notifications push du navigateur",
"pushUnsupported": "Votre navigateur ne supporte pas les notifications push",
"pushBlocked": "Bloque par le navigateur. Activez dans les parametres du site.",
"pushSubscribed": "Abonne — vous recevrez des notifications navigateur",
"pushNotSubscribed": "Recevoir des notifications meme lorsque l'onglet est ferme",
"pushEnable": "Activer",
"pushDisable": "Desactiver",
"doNotDisturb": "Ne pas deranger",
"doNotDisturbDesc": "Definissez des heures silencieuses pendant lesquelles vous ne souhaitez pas etre derange.",
"enableDnd": "Activer Ne pas deranger",
"dndDesc": "Desactiver les notifications pendant des heures specifiques",
"startTime": "Heure de debut",
"endTime": "Heure de fin",
"notificationCategories": "Categories de notification",
"notificationCategoriesDesc": "Choisissez les types de notifications que vous souhaitez recevoir.",
"securityAlerts": "Alertes de securite",
"securityAlertsDesc": "Mises a jour et alertes de securite importantes",
"productUpdates": "Mises a jour produit",
"productUpdatesDesc": "Nouvelles fonctionnalites et annonces produit",
"marketingPromotions": "Marketing & Promotions",
"marketingDesc": "Conseils, offres et contenus promotionnels",
"developmentActivity": "Activite de developpement",
"developmentActivityDesc": "Controlez les notifications pour l'activite de revue de code et de collaboration.",
"issuesActivity": "Issues",
"issuesActivityDesc": "Ouvertes, fermees, assignees ou commentees",
"pullRequestsActivity": "Pull Requests",
"prActivityDesc": "Revue demandee, approuvee, fusionnee ou commentee",
"mentionsActivity": "@Mentions",
"mentionsActivityDesc": "Quand quelqu'un vous mentionne dans un message, issue ou PR",
"roomMessagesActivity": "Messages de salon",
"roomMessagesDesc": "Nouveaux messages dans les chaines auxquelles vous etes abonne"
},
"security": {
"title": "Securite",
"subtitle": "Gerez vos parametres de securite et methodes d'authentification.",
"securitySettings": "Parametres de securite",
"securityDesc": "Configurez l'authentification a deux facteurs, les politiques de mot de passe et la gestion des sessions.",
"twoFactorAuth": "Authentification a deux facteurs",
"twoFactorDesc": "Ajoutez une couche de securite supplementaire requiring plus qu'un simple mot de passe pour vous connecter.",
"enable": "Activer",
"disable": "Desactiver",
"passwordPolicy": "Politique de mot de passe",
"passwordPolicyDesc": "Definissez les exigences de force du mot de passe",
"standard": "Standard",
"sessionManagement": "Gestion des sessions",
"sessionManagementDesc": "Voir et gerer les sessions actives",
"active": "actif",
"manage": "Gerer"
},
"profile": {
"title": "Profil",
"subtitle": "Gerez vos informations personnelles et parametres de profil.",
"profileInfo": "Informations du profil",
"profileInfoDesc": "Voir vos informations de base du compte.",
"username": "Nom d'utilisateur",
"displayName": "Nom d'affichage",
"notSet": "Non defini",
"email": "E-mail",
"memberSince": "Membre depuis",
"publicProfile": "Profil public",
"publicProfileDesc": "Mettez a jour vos informations de profil public.",
"publicAvatar": "Avatar public",
"uploadAvatar": "Telecharger un nouvel avatar",
"avatarFormat": "JPG, GIF ou PNG. Taille max 2Mo.",
"bio": "Bio",
"bioPlaceholder": "Parlez-nous de vous",
"bioDesc": "Votre bio ou description",
"organization": "Organisation",
"orgPlaceholder": "Votre entreprise ou organisation",
"orgDesc": "L'organisation a laquelle vous appartenez",
"reset": "Reinitialiser",
"saveChanges": "Enregistrer les modifications",
"saving": "Enregistrement...",
"avatarUploaded": "Avatar telecharge avec succes",
"failedUploadAvatar": "Echec du telechargement de l'avatar",
"fileSizeLimit": "La taille du fichier doit etre inferieure a 2Mo",
"profileUpdated": "Profil mis a jour avec succes",
"failedUpdateProfile": "Echec de la mise a jour du profil"
},
"tokens": {
"title": "Jetons",
"subtitle": "Gerez vos jetons d'acces personnel pour l'acces API.",
"createToken": "Creer un jeton",
"personalAccessTokens": "Jetons d'acces personnel",
"noTokensDesc": "Aucun jeton trouve. Creez un nouveau jeton pour commencer.",
"tokensCount": "Vous avez {count} jeton d'acces configure.",
"tokensCountPlural": "Vous avez {count} jetons d'acces configures.",
"loadingTokens": "Chargement des jetons d'acces...",
"noAccessTokens": "Aucun jeton d'acces",
"noAccessTokensDesc": "Creez un jeton d'acces personnel pour authentifier les requetes API et acceder aux depots Git via HTTPS.",
"createFirstToken": "Creez votre premier jeton",
"untitled": "Sans titre",
"revoked": "Revoque",
"scopes": "Portees:",
"created": "Cree le {date}",
"expires": "Expire le {date}",
"neverExpires": "N'expire jamais",
"revoke": "Revoquer",
"createAccessToken": "Creer un jeton d'acces",
"createTokenDesc": "Creez un nouveau jeton d'acces personnel pour l'authentification API.",
"tokenName": "Nom du jeton",
"tokenNamePlaceholder": "ex., Pipeline CI/CD, Environnement de developpement",
"tokenNameDesc": "Choisissez un nom descriptif pour ce jeton",
"scopesLabel": "Portees",
"scopesDesc": "Selectionnez les permissions de ce jeton",
"expirationDate": "Date d'expiration (Optionnel)",
"expirationDesc": "Laissez vide pour pas d'expiration",
"cancel": "Annuler",
"creating": "Creation...",
"tokenCreated": "Jeton cree avec succes",
"tokenCreatedDesc": "Assurez-vous de copier votre jeton d'acces maintenant. Vous ne pourrez plus le voir!",
"yourAccessToken": "Votre jeton d'acces",
"tokenImportant": "Important: Ce jeton ne sera montre qu'une seule fois. Stockez-le en securite.",
"iHaveSavedToken": "J'ai enregistre mon jeton",
"tokenCopied": "Jeton copie dans le presse-papiers",
"deleteTokenTitle": "Supprimer le jeton d'acces",
"deleteTokenDesc": "Etes-vous sur de vouloir supprimer ce jeton d'acces? Cette action est irreversible et toute application utilisant ce jeton perdra immediatement l'acces.",
"deleting": "Suppression...",
"delete": "Supprimer",
"revokeTokenTitle": "Revoquer le jeton d'acces",
"revokeTokenDesc": "Etes-vous sur de vouloir revoker ce jeton d'acces? Le jeton sera desactive immediatement et ne pourra plus etre utilise pour l'authentification.",
"tokenCreatedSuccess": "Jeton d'acces cree avec succes",
"failedCreateToken": "Echec de la creation du jeton",
"tokenDeleted": "Jeton d'acces supprime avec succes",
"failedDeleteToken": "Echec de la suppression du jeton",
"nameRequired": "Veuillez entrer un nom pour le jeton d'acces",
"scopeRequired": "Veuillez selectionner au moins une portee"
},
"activity": {
"title": "Activite",
"subtitle": "Voir votre activite recente et vos notifications.",
"markAllRead": "Tout marquer comme lu",
"recentNotifications": "Notifications recentes",
"unread": "{count} non lues",
"noNotifications": "Pas encore de notifications. Votre activite apparaitra ici.",
"newLabel": "Nouveau",
"noContent": "Pas de contenu",
"unknownDate": "Date inconnue",
"allMarkedRead": "Toutes les notifications marquees comme lues",
"failedMarkAllRead": "Echec du marquage de toutes les notifications comme lues",
"markedRead": "Notification marquee comme lue",
"failedMarkRead": "Echec du marquage de la notification comme lue"
}
},
"init": {
"project": {
"title": "Creer un nouveau projet",
"subtitle": "Creez un nouveau projet pour organiser vos depots",
"projectName": "Nom du projet",
"namePlaceholder": "mon-super-projet",
"description": "Description",
"descPlaceholder": "Une breve description de votre projet...",
"workspace": "Workspace",
"noWorkspace": "Pas de workspace (projet independant)",
"workspaceHint": "Associez facultativement ce projet a un workspace.",
"publicProject": "Projet public",
"publicProjectHint": "Rendre ce projet visible par tous",
"creating": "Creation...",
"createProject": "Creer le projet",
"cancel": "Annuler",
"nameRequired": "Le nom du projet est requis",
"nameAvailable": "Le nom du projet est disponible",
"nameExists": "Le nom du projet existe deja",
"failedCheckAvailability": "Echec de la verification de disponibilite",
"failedCreate": "Echec de la creation du projet",
"createdSuccess": "Projet cree avec succes!"
},
"repository": {
"title": "Creer un nouveau depot",
"subtitle": "Creez un nouveau depot Git dans votre projet",
"project": "Projet",
"noProjects": "Vous n'avez pas encore de projets.",
"createProject": "Creer un projet",
"selectProject": "Selectionner un projet",
"loadingProjects": "Chargement des projets...",
"repoName": "Nom du depot",
"namePlaceholder": "mon-super-depot",
"description": "Description",
"descPlaceholder": "Une breve description de votre depot...",
"defaultBranch": "Branche par defaut",
"defaultBranchPlaceholder": "main",
"initRepo": "Initialiser le depot",
"initRepoOn": "Creer un depot git nu maintenant. Definissez la branche par defaut ci-dessous.",
"initRepoOff": "Passer l'initialisation. La branche par defaut sera definie automatiquement lors du push.",
"privateRepo": "Depot prive",
"privateAuto": "Ce depot doit etre prive car le projet est prive",
"privateManual": "Rendre ce depot prive et restreindre l'acces",
"creating": "Creation...",
"createRepo": "Creer le depot",
"cancel": "Annuler",
"selectProjectFirst": "Veuillez d'abord selectionner un projet",
"nameRequired": "Le nom du depot est requis",
"nameAvailable": "Le nom du depot est disponible",
"nameExists": "Le nom du depot existe deja",
"failedCheckAvailability": "Echec de la verification de disponibilite",
"failedCreate": "Echec de la creation du depot",
"createdSuccess": "Depot cree avec succes",
"failedLoadProjects": "Echec du chargement des projets",
"failedLoadDetails": "Depot cree mais echec du chargement des details"
}
},
"pricing": {
"title": "Tarification simple et transparente.",
"subtitle": "Commencez gratuitement. Scalez selon la croissance de votre flotte d'agents.",
"free": "Gratuit",
"freePrice": "0 €",
"freePeriod": "pour toujours",
"freeDesc": "Command as Service pour les particuliers — commandes versionnees, memoire d'agent et registre de skills inclus.",
"freeCta": "Commencer gratuitement",
"freeFeatures": [
"3 agents actifs",
"5 Go de memoire d'agent",
"Registre de skills communautaire",
"Salons publics",
"Historique de 7 jours"
],
"pro": "Pro",
"proPrice": "29 €",
"proPeriod": "par mois",
"proDesc": "Command as Service pour les equipes — agents illimites, audit complet du flux de commandes et calcul prioritaire.",
"proCta": "Obtenir Pro",
"proFeatures": [
"Agents illimites",
"50 Go de memoire d'agent",
"Registre de skills prive",
"Collaborative Rooms",
"Historique de 90 jours",
"Calcul prioritaire",
"Support par e-mail"
],
"enterprise": "Enterprise",
"enterprisePrice": "Sur mesure",
"enterpriseDesc": "Command as Service a grande echelle — deploiement personnalise, gouvernance granulaire du flux de commandes et SLA dedie pour votre flotte d'agents.",
"enterpriseCta": "Contacter le service commercial",
"enterpriseFeatures": [
"Tout de Pro",
"Memoire illimitee",
"SSO / SAML",
"Routage de modele personnalise",
"Calcul dedie",
"Garantie SLA",
"Support dedie"
],
"faqHeading": "Questions frequentes",
"faqSubtitle": "Reponses aux questions de facturation.",
"faq1Q": "Puis-je changer de plan a tout moment?",
"faq1A": "Oui. Passez a un forfait superieur ou inferieur a tout moment. Les modifications prennent effet au prochain cycle de facturation.",
"faq2Q": "Qu'est-ce qui compte comme memoire d'agent?",
"faq2A": "La memoire d'agent est le contexte persistant total stocke sur tous vos agents, incluant l'historique de conversation et la memoire a long terme.",
"faq3Q": "Y a-t-il un essai gratuit pour Pro?",
"faq3A": "Oui — le forfait gratuit vous permet d'explorer toutes les fonctionnalites Pro pendant 14 jours lors de la mise a niveau."
},
"repository": {
"list": {
"repositories": "Depots",
"searchPlaceholder": "Rechercher des depots…",
"filter": "Filtrer",
"new": "Nouveau",
"filters": "Filtres",
"clearAll": "Tout effacer",
"visibility": "Visibilite",
"all": "Tout",
"public": "Public",
"private": "Prive",
"sortBy": "Trier par",
"lastUpdated": "Derniere mise a jour",
"name": "Nom",
"linkedIssues": "Issues liees",
"stars": "Etoiles",
"repository": "depot",
"repositoriesPlural": "depots",
"errorLoading": "Erreur:",
"errorLoadFailed": "Echec du chargement des depots",
"noRepositories": "Aucun depot trouve",
"clearFilters": "Effacer les filtres",
"watches": "Abonnements",
"branches": "Branches",
"defaultBranch": "Branche par defaut",
"lastUpdatedColumn": "Derniere mise a jour",
"never": "Jamais",
"showing": "Affichage de {start}{end} sur {total}",
"previous": "Precedent",
"next": "Suivant",
"page": "Page {page}"
},
"overview": {
"repositoryStats": "Statistiques du depot",
"defaultBranch": "Branche par defaut",
"commits": "Commits",
"branches": "Branches",
"tags": "Tags",
"stars": "Etoiles",
"watchers": "Observateurs",
"readme": "README",
"starred": "En favori",
"unstarred": "Favori retire",
"watching": "S'abonner au depot",
"stoppedWatching": "Abonnement arrete",
"failedToStar": "Echec de l'ajout en favori",
"failedToUnstar": "Echec du retrait du favori",
"failedToWatch": "Echec de l'abonnement",
"failedToUnwatch": "Echec de l'arret de l'abonnement"
},
"subpages": {
"commits": {
"title": "Commits",
"description": "Parcourez l'historique des commits de ce depot.",
"comingSoon": "Bientot disponible",
"notAvailable": "L'historique des commits n'est pas encore disponible."
},
"branches": {
"title": "Branches",
"description": "Gerez et parcourez les branches du depot.",
"comingSoon": "Bientot disponible",
"notAvailable": "La liste et la gestion des branches ne sont pas encore disponibles."
},
"tags": {
"title": "Tags",
"description": "Parcourez les tags et releases du depot.",
"comingSoon": "Bientot disponible",
"notAvailable": "La gestion des tags et releases n'est pas encore disponible."
},
"files": {
"title": "Fichiers",
"description": "Parcourez et gerez les fichiers du depot.",
"comingSoon": "Bientot disponible",
"notAvailable": "Le navigateur de fichiers n'est pas encore disponible."
},
"contributors": {
"title": "Contributeurs",
"description": "Voir les statistiques et l'activite des contributeurs.",
"comingSoon": "Bientot disponible",
"notAvailable": "Les statistiques des contributeurs ne sont pas encore disponibles."
},
"pullRequests": {
"title": "Pull Requests",
"description": "Creez et gerez les pull requests pour {repo}.",
"comingSoon": "Bientot disponible",
"notAvailable": "La gestion des pull requests n'est pas encore disponible."
}
}
},
"workspace": {
"projects": {
"title": "Projets",
"newProject": "Nouveau projet",
"noProjects": "Pas encore de projets dans ce workspace.",
"createFirstProject": "Creez votre premier projet",
"noDescription": "Pas de description",
"private": "Prive"
},
"members": {
"title": "Membres",
"inviteMember": "Inviter un membre",
"inviteTo": "Inviter a {name}",
"inviteDescription": "Ils recevront un e-mail avec un lien pour rejoindre ce workspace. Les invitations expirent dans 7 jours.",
"emailAddress": "Adresse e-mail",
"emailPlaceholder": "collegue@exemple.fr",
"role": "Role",
"memberRoleDesc": "Membre — peut voir et contribuer aux projets",
"adminRoleDesc": "Admin — peut gerer les membres et les parametres",
"adminInfo": "Les admins peuvent gerer les parametres du workspace, les membres et la facturation.",
"memberInfo": "Les membres peuvent creer et gerer les projets assignes a ce workspace.",
"cancel": "Annuler",
"sendInvitation": "Envoyer l'invitation",
"sending": "Envoi...",
"pendingInvitations": "Invitations en attente",
"expires": "expire le {date}",
"by": "par @{username}",
"searchMembers": "Rechercher des membres...",
"allRoles": "Tous les roles",
"owner": "Proprietaire",
"admin": "Admin",
"member": "Membre",
"memberColumn": "Membre",
"roleColumn": "Role",
"invitedBy": "Invite par",
"joined": "Rejoint",
"noMatch": "Aucun membre ne correspond a vos filtres",
"noMembers": "Pas encore de membres",
"remove": "Supprimer",
"page": "Page {page} sur {totalPages}",
"totalMembers": "{count} membres au total",
"invitationSent": "Invitation envoyee a {email}",
"failedSendInvitation": "Echec de l'envoi de l'invitation",
"memberRemoved": "Membre supprime",
"failedRemoveMember": "Echec de la suppression du membre",
"invitationCancelled": "Invitation annulee",
"failedCancelInvitation": "Echec de l'annulation de l'invitation",
"roleUpdated": "Role mis a jour",
"failedUpdateRole": "Echec de la mise a jour du role",
"pending": "En attente"
},
"settings": {
"title": "Parametres du Workspace",
"general": "General",
"avatarUrl": "URL de l'avatar",
"avatarUrlPlaceholder": "https://exemple.fr/avatar.png",
"avatarHint": "Entrez une URL vers une image pour l'avatar du workspace.",
"workspaceName": "Nom du Workspace",
"namePlaceholder": "Mon Workspace",
"description": "Description",
"descPlaceholder": "Decrivez ce workspace...",
"billingEmail": "E-mail de facturation",
"billingEmailPlaceholder": "facturation@exemple.fr",
"billingHint": "Les factures seront envoyees a cette adresse e-mail.",
"saveChanges": "Enregistrer les modifications",
"saving": "Enregistrement...",
"plan": "Plan",
"currentPlan": "Plan actuel",
"manageBilling": "Gerer la facturation",
"dangerZone": "Zone dangereuse",
"deleteWorkspace": "Supprimer le workspace",
"deleteWarning": "Supprimer definitivement ce workspace et toutes ses donnees. Cette action est irreversible.",
"deletingWorkspace": "Suppression...",
"deleteConfirm": "Etes-vous sur de vouloir supprimer ce workspace? Cette action est irreversible.",
"updated": "Workspace mis a jour",
"failedUpdate": "Echec de la mise a jour du workspace",
"deleted": "Workspace supprime",
"failedDelete": "Echec de la suppression du workspace"
}
},
"projectSettings": {
"general": {
"title": "General",
"description": "Description",
"projectAvatar": "Avatar du projet",
"uploadAvatar": "Telecharger l'avatar",
"avatarFormat": "PNG, JPG, GIF ou WebP. Max 2Mo.",
"displayName": "Nom d'affichage",
"publicVisibility": "Visibilite publique",
"publicVisibilityDesc": "Permettre a tous de voir ce projet.",
"saveChanges": "Enregistrer les modifications",
"confirmTitle": "Confirmer les modifications du projet",
"confirmDescription": "Vous etes sur le point de mettre a jour les parametres suivants:",
"displayNameField": "Nom d'affichage",
"descriptionField": "Description",
"visibilityField": "Visibilite: {visibility}",
"publicWarning": "Rendre ce projet public permettra a chacun de voir son contenu.",
"confirmSave": "Confirmer et enregistrer",
"projectAvatarUpdated": "Avatar du projet mis a jour",
"failedUploadAvatar": "Echec du telechargement de l'avatar",
"fileSizeLimit": "La taille du fichier doit etre inferieure a 2Mo",
"projectSettingsUpdated": "Parametres du projet mis a jour",
"failedUpdateProject": "Echec de la mise a jour des parametres du projet"
},
"members": {
"title": "Membres",
"invite": "Inviter",
"searchMembers": "Rechercher des membres…",
"member": "membre",
"members": "membres",
"noMatchSearch": "Aucun membre ne correspond a votre recherche",
"noMembers": "Aucun membre trouve",
"clearSearch": "Effacer la recherche",
"user": "Utilisateur",
"role": "Role",
"joined": "Rejoint",
"actions": "Actions",
"inviteMemberTitle": "Inviter un membre",
"email": "E-mail",
"emailPlaceholder": "collegue@exemple.fr",
"cancel": "Annuler",
"sendInvite": "Envoyer l'invitation",
"sending": "Envoi…",
"removeMemberTitle": "Supprimer le membre",
"removeConfirm": "Etes-vous sur de vouloir supprimer {username} de ce projet?",
"removing": "Suppression…",
"remove": "Supprimer",
"invitationSent": "Invitation envoyee",
"failedSendInvitation": "Echec de l'envoi de l'invitation",
"memberRemoved": "Membre supprime",
"failedRemoveMember": "Echec de la suppression du membre",
"roleUpdated": "Role mis a jour",
"failedUpdateRole": "Echec de la mise a jour du role",
"emailRequired": "L'e-mail est requis",
"errorLoading": "Erreur:",
"failedLoadMembers": "Echec du chargement des membres"
},
"labels": {
"title": "Labels",
"description": "Description",
"editLabel": "Modifier le label",
"createLabel": "Creer un label",
"nameRequired": "Nom *",
"namePlaceholder": "Nom du label",
"color": "Couleur",
"descPlaceholder": "Decrivez ce label",
"cancel": "Annuler",
"updateLabel": "Mettre a jour le label",
"createLabelButton": "Creer le label",
"addLabel": "Ajouter un label",
"failedToLoad": "Echec du chargement des labels",
"noLabels": "Aucun label trouve. Creez votre premier label.",
"deleteLabelTitle": "Supprimer le label",
"deleteLabelConfirm": "Etes-vous sur de vouloir supprimer ce label? Cette action est irreversible.",
"delete": "Supprimer",
"labelCreated": "Label cree",
"labelUpdated": "Label mis a jour",
"labelDeleted": "Label supprime",
"failedCreateLabel": "Echec de la creation du label",
"failedUpdateLabel": "Echec de la mise a jour du label",
"failedDeleteLabel": "Echec de la suppression du label",
"nameRequiredError": "Le nom du label est requis"
},
"boards": {
"title": "Tableaux",
"newBoard": "Nouveau tableau",
"noBoards": "Pas encore de tableaux",
"noBoardsHint": "Creez un tableau pour organiser le travail de votre projet.",
"newBoardDialog": "Nouveau tableau",
"name": "Nom",
"namePlaceholder": "ex. Planification Sprint",
"description": "Description",
"descriptionPlaceholder": "Optionnel",
"cancel": "Annuler",
"createBoard": "Creer le tableau",
"updated": "Mis a jour le {date}",
"failedCreate": "Echec de la creation du tableau"
},
"billing": {
"currentBilling": "Facturation actuelle",
"description": "Quota, utilisation et solde du cycle actuel.",
"monthlyQuota": "Quota mensuel",
"currentBalance": "Solde actuel",
"currentUsage": "Utilisation actuelle",
"billingHistory": "Historique de facturation",
"billingHistoryDesc": "Enregistrements du flux de facturation du projet.",
"noRecords": "Pas encore d'enregistrements de facturation.",
"time": "Heure",
"reason": "Raison",
"amount": "Montant",
"currency": "Devise",
"type": "Type",
"charge": "Debit",
"credit": "Credit",
"showing": "Affichage de {start} a {end} sur {total} enregistrements",
"page": "Page {page} sur {totalPages}",
"failedToLoad": "Echec du chargement des informations de facturation."
},
"skills": {
"title": "Skills",
"subtitle": "Instructions d'agent pour ce projet",
"searchPlaceholder": "Rechercher des skills...",
"all": "Tout",
"manual": "Manuel",
"repo": "Depot",
"scanRepos": "Scanner les depots",
"addSkill": "Ajouter un skill",
"noSkills": "Aucun skill trouve",
"noSkillsHint": "Ajoutez des skills manuellement ou scannez les depots pour decouvrir les fichiers SKILL.md.",
"noMatch": "Aucun skill ne correspond a votre recherche ou filtre.",
"deleteSkill": "Supprimer le skill",
"deleteConfirm": "Etes-vous sur de vouloir supprimer \"{name}\"? Cette action est irreversible.",
"cancel": "Annuler",
"delete": "Supprimer",
"content": "Contenu",
"moreLines": "+{count} lignes supplementaires",
"copied": "Copie",
"copyContent": "Copier le contenu",
"scannedFromRepo": "Scanne depuis le depot",
"addedManually": "Ajoute manuellement",
"failedLoad": "Echec du chargement des skills",
"scanSuccess": "Depots scannes avec succes",
"scanFailed": "Echec du scan des depots",
"deleted": "\"{name}\" supprime",
"failedDelete": "Echec de la suppression du skill"
},
"webhook": {
"title": "Webhooks",
"description": "Configurez les webhooks pour recevoir des notifications sur les evenements de votre projet.",
"comingSoon": "Bientot disponible",
"notAvailable": "La configuration des webhooks n'est pas encore disponible."
},
"oauth": {
"title": "Application OAuth",
"description": "Creez et gerez des applications OAuth pour les integrations tierces.",
"comingSoon": "Bientot disponible",
"notAvailable": "La gestion des applications OAuth n'est pas encore disponible."
}
},
"shared": {
"projects": "Projets",
"loading": "Chargement...",
"error": "Erreur",
"success": "Succes",
"cancel": "Annuler",
"confirm": "Confirmer",
"delete": "Supprimer",
"edit": "Modifier",
"save": "Enregistrer",
"close": "Fermer",
"back": "Retour",
"next": "Suivant",
"previous": "Precedent",
"submit": "Soumettre",
"search": "Rechercher",
"filter": "Filtrer",
"clear": "Effacer",
"reset": "Reinitialiser",
"apply": "Appliquer",
"yes": "Oui",
"no": "Non",
"ok": "OK",
"retry": "Reessayer",
"refresh": "Actualiser",
"noData": "Pas de donnees",
"noResults": "Aucun resultat",
"loadingFailed": "Echec du chargement",
"operationFailed": "Operation echouee",
"operationSuccess": "Operation reussie"
},
"about": {
"title": "A propos de GitDataAI",
"subtitle": "Nous croyons que chaque action d'ingenierie devrait etre une commande versionnee — auditable, repeatable et approuvee par l'homme. Nous construisons la plateforme Command as Service pour l'ere des agents.",
"quote": "\"Chaque action est une commande. Chaque commande est versionnee et auditable.\"",
"mission": "GitDataAI a ete fondee pour apporter Command as Service a l'ere des agents — chaque decision d'agent versionnee, chaque flux de commandes auditable, chaque action humain-dans-la-boucle approuvee.",
"ourValues": "Nos valeurs",
"values": {
"transparency": {
"title": "Transparence",
"desc": "Chaque decision d'agent est journalisee, versionnee et auditable. Pas de boite noire."
},
"collaboration": {
"title": "Collaboration",
"desc": "Les humains et les agents sont des pairs. Aucun ne remplace l'autre — ensemble ils accomplissent plus."
},
"reliability": {
"title": "Fiabilite",
"desc": "Infrastructure de qualite production. Vos agents fonctionnent quand vous en avez besoin."
},
"extensibility": {
"title": "Extensibilite",
"desc": "Registre ouvert, API ouverte. Le reseau grandit grace aux contributions de la communaute."
}
},
"theTeam": "L'equipe",
"hiring": "Nous recrutons. Venez construire avec nous.",
"join": "Rejoindre GitDataAI",
"github": "GitHub"
},
"invitations": {
"title": "Mes invitations",
"pendingCount": "{count} invitation en attente",
"pendingCountPlural": "{count} invitations en attente",
"noPending": "Pas d'invitation en attente",
"noPendingHint": "Les invitations de projet et workspace apparaitront ici.",
"projectInvitation": "Invitation projet",
"workspaceInvitation": "Invitation workspace",
"invitedToJoin": "Vous avez ete invite a rejoindre {name}",
"invitedToWorkspace": "Vous avez ete invite a rejoindre le workspace {name}",
"by": "par {username}",
"accept": "Accepter",
"decline": "Refuser",
"acceptedProject": "Vous avez rejoint le projet: {name}",
"declinedInvitation": "Invitation a {name} refusee",
"acceptedWorkspace": "Vous avez rejoint le workspace",
"failedAccept": "Echec de l'acceptation de l'invitation",
"failedDecline": "Echec du refus de l'invitation"
},
"network": {
"title": "Le reseau GitDataAI",
"subtitle": "Un ecosysteme croissant d'agents, workspaces et skills collaborant via un flux de commandes unifie. Chaque action d'agent est une commande. Chaque commande est repeatable.",
"activeAgents": "Agents actifs",
"workspaces": "Workspaces",
"skillRuns": "Executions de skills",
"uptimeSla": "SLA de disponibilite",
"publicRooms": "Salons publics",
"live": "EN DIRECT",
"active": "Actif",
"agents": "{count} agents",
"participants": "{count}",
"privacyByDefault": "Prive par defaut",
"privacyDesc": "Tous les workspaces sont prives par defaut. Vous controlez qui voit vos agents, skills et historique de conversation. Les salons publics necessitent un opt-in explicite.",
"network": "Reseau",
"roomsLive": "{count} salons en direct",
"ended": "TERMINE",
"startYourOwnRoom": "Lancez votre propre salon"
},
"skills": {
"title": "Le registre de Skills",
"subtitle": "Comportements d'agent reutilisables et versionnes, conditionnes en skills — invoques par commande, deployes sur toute votre flotte d'agents.",
"searchPlaceholder": "Rechercher des skills...",
"categories": [
"Tout",
"Frontend",
"Backend",
"DevOps",
"Securite",
"Donnees",
"Tests"
],
"publishCTA": "Publiez votre propre skill et rejoignez le registre.",
"publishButton": "Publier un skill",
"runs": "{count} executions"
},
"solutions": {
"title": "Command as Service",
"subtitle": "Dans GitDataAI, chaque action est une commande de premiere classe. Les commandes sont versionnees, auditables et composables — votre workflow de developpement est votre API.",
"learnMore": "En savoir plus",
"coreConcept": "Concept central"
},
"notificationDrawer": {
"title": "Notifications",
"live": "En direct",
"markAllRead": "Tout marquer comme lu",
"noNotifications": "Pas encore de notifications",
"noNotificationsHint": "Vous verrez les mises a jour ici lorsqu'un evenement se produit.",
"viewAll": "Voir toutes les notifications",
"unread": "{count} non lues",
"notifications": "Notifications"
}
}