{"NAV_DOCS":"Docs","DOCS_SEARCH_HINT":"Saisissez au moins deux caractères pour rechercher dans la documentation.","DOCS_SEARCH":"Rechercher dans les docs…","DOCS_CHANGELOG":"Nouveautés","DOCS_NAVIGATION":"Navigation de la documentation","DOCS_SKIP":"Aller au contenu","DOCS_MENU":"Menu","DOCS_CLOSE":"Fermer la navigation","DOCS_ENGLISH":"La documentation est en anglais.","DOCS_BREADCRUMBS":"Fil d’Ariane","DOCS_COPIED":"Copié","DOCS_COPY_ERROR":"Échec de la copie. Ouvre Markdown pour copier le texte.","DOCS_COPY":"Copier la page","DOCS_MARKDOWN":"Markdown","DOCS_OLDER":"Versions précédentes","DOCS_EDIT":"Modifier sur GitHub","DOCS_PAGINATION":"Pages de documentation","DOCS_PREVIOUS":"Précédent","DOCS_NEXT":"Suivant","DOCS_ON_THIS_PAGE":"Sur cette page","NAV_ASSISTANT":"Assistant","ASSISTANT_LOAD_MORE":"Plus de conversations","ASSISTANT_DESCRIPTION":"Travaillez avec les tâches, fichiers et personnes de votre organisation.","ASSISTANT_NEW":"Nouvelle conversation","ASSISTANT_NEW_TITLE":"Nouvelle conversation","ASSISTANT_CONVERSATION":"Conversation avec l’assistant","ASSISTANT_THREADS":"Conversations","ASSISTANT_LOADING":"Chargement de la conversation…","ASSISTANT_DELETE":"Supprimer la conversation","ASSISTANT_DELETE_TITLE":"Supprimer cette conversation ?","ASSISTANT_DELETE_DESCRIPTION":"Ses messages et autorisations en attente seront supprimés. Les actions effectuées sont conservées.","ASSISTANT_CANCEL":"Annuler","ASSISTANT_RETRY":"Réessayer","ASSISTANT_THREAD_ERROR":"La conversation n’a pas pu être chargée ou enregistrée. Veuillez réessayer.","ASSISTANT_EMPTY_TITLE":"Sur quoi souhaitez-vous travailler ?","ASSISTANT_EMPTY_DESCRIPTION":"Trouvez des informations, organisez vos tâches et planifiez la suite. Les modifications nécessitent votre accord.","ASSISTANT_SUGGEST_TODOS":"Afficher mes tâches en cours","ASSISTANT_SUGGEST_WEEK":"Planifier ma semaine","ASSISTANT_SUGGEST_FILES":"Lister les fichiers de l’organisation","ASSISTANT_PRIVACY":"Le contenu de la conversation est envoyé au fournisseur d’IA configuré. Vérifiez les réponses et les modifications proposées.","ASSISTANT_MESSAGE_LABEL":"Message","ASSISTANT_MESSAGE_PLACEHOLDER":"Posez une question sur votre organisation…","ASSISTANT_COMPOSER_HELP":"Les modifications nécessitent votre accord.","ASSISTANT_STOP":"Arrêter","ASSISTANT_SEND":"Envoyer","ASSISTANT_YOU":"Vous","ASSISTANT_TOOL_FAILED":"Échec","ASSISTANT_TOOL_DONE":"Terminé","ASSISTANT_TOOL_APPROVAL":"Autorisation requise","ASSISTANT_TOOL_RUNNING":"En cours…","ASSISTANT_TOOL_PAUSED":"En pause","ASSISTANT_TOOL_INPUT":"Entrée","ASSISTANT_TOOL_OUTPUT":"Résultat","ASSISTANT_APPROVAL_TITLE":"Vérifier cette action","ASSISTANT_APPROVAL_DESCRIPTION":"Autoriser {{tool}} à effectuer cette modification dans votre organisation ?","ASSISTANT_APPROVE":"Autoriser","ASSISTANT_DENY":"Refuser","ASSISTANT_SKIP":"Passer","ASSISTANT_ANSWER":"Continuer","ASSISTANT_INTERRUPT_UNAVAILABLE":"Cette demande ne peut pas être traitée ici. Rechargez la conversation pour vérifier son état.","ASSISTANT_INTERRUPT_ERROR":"Votre réponse n’a pas pu être appliquée. Rechargez pour vérifier son état avant de réessayer.","ASSISTANT_STREAMING":"L’assistant répond…","ASSISTANT_ERROR":"La réponse a été interrompue. Rechargez pour voir la conversation enregistrée.","ASSISTANT_RELOAD":"Recharger la conversation","ASSISTANT_SCROLL_END":"Aller au dernier message","ASSISTANT_AGENT_APPROVALS":"Actions d’agents en attente d’autorisation","ASSISTANT_APPROVALS_LOADING":"Chargement des autorisations d’agents…","ASSISTANT_APPROVALS_ERROR":"Les autorisations d’agents n’ont pas pu être chargées. Actualisez cette page.","IMPORT_ACTION":"Importer","IMPORT_TITLE":"Importer des tâches","IMPORT_DESCRIPTION":"Importez un fichier JSON pour ajouter des tâches à cette organisation. L’importation continue en arrière-plan.","IMPORT_FILE_LABEL":"Fichier JSON","IMPORT_FILE_HELP":"Jusqu’à 1 Mio et 200 tâches. Chaque tâche doit avoir un champ text.","IMPORT_SAMPLE":"Télécharger un exemple JSON","IMPORT_FILE_INVALID":"Choisissez un fichier .json non vide de 1 Mio maximum.","IMPORT_START_FAILED":"L’importation n’a pas pu démarrer. Réessayez avec le même fichier.","IMPORT_STARTING":"Téléversement et démarrage…","IMPORT_START":"Démarrer l’importation","IMPORT_RETRY":"Réessayer","IMPORT_RECENT":"Importations récentes","IMPORT_LOADING":"Chargement des importations…","IMPORT_STATUS_RETRY":"Impossible de charger les importations. Réessayer","IMPORT_EMPTY":"Aucune importation pour le moment.","IMPORT_CLOSE":"Fermer","IMPORT_PENDING":"En attente","IMPORT_SUCCEEDED":"Terminée","IMPORT_FAILED":"Échec","IMPORT_WAITING":"En attente du traitement en arrière-plan. Celui-ci démarre généralement sous une minute.","IMPORT_COUNTS":"{{inserted}} tâches importées sur {{total}}.","IMPORT_FAILURE_MEMBERSHIP":"Votre accès à l’organisation a été retiré avant la fin de l’importation. Aucune tâche n’a été ajoutée.","IMPORT_FAILURE_CHANGED":"Le fichier a changé. Téléversez un nouveau fichier et réessayez.","IMPORT_FAILURE_MISSING":"Le fichier n’est plus disponible. Téléversez-le à nouveau.","IMPORT_FAILURE_INVALID":"Le JSON ou certaines tâches sont invalides. Consultez l’exemple et téléversez un fichier corrigé.","IMPORT_FAILURE_SIZE":"Le fichier dépasse 1 Mio. Divisez-le en fichiers plus petits.","IMPORT_FAILURE_ATTEMPTS":"L’importation a échoué après 3 tentatives. Téléversez à nouveau le fichier pour lancer une nouvelle importation.","NAV_HOME":"Accueil","NAV_DASHBOARD":"Tableau de bord","NAV_TODOS":"Tâches","NAV_FILES":"Fichiers","NAV_SETTINGS":"Paramètres","NAV_BILLING":"Facturation","NAV_GROUP_PLATFORM":"Plateforme","NAV_GROUP_GENERAL":"Général","NAV_GROUP_ADMIN":"Admin","NAV_ADMIN_USERS":"Utilisateurs","NAV_ADMIN_FLAGS":"Fonctionnalités","NAV_ADMIN_AUDIT":"Journal d'audit","APP_BRAND_NAME":"Acme Inc.","APP_BRAND_TAGLINE":"Projet de départ","APP_SEARCH_PLACEHOLDER":"Rechercher…","USER_MENU_SIGN_IN":"Se connecter","USER_MENU_MY_ACCOUNT":"Mon compte","USER_MENU_SIGN_OUT":"Se déconnecter","USER_MENU_SETTINGS":"Paramètres","USER_MENU_UPGRADE":"Passer à Pro","THEME_APPEARANCE":"Apparence","THEME_LIGHT":"Clair","THEME_DARK":"Sombre","THEME_SYSTEM":"Système","THEME_TOGGLE_LABEL":"Changer de thème","ERROR_404_TITLE":"Page introuvable","ERROR_404_DESC":"La page recherchée n'existe pas ou a été déplacée.","ERROR_404_BACK":"Revenir au tableau de bord","ERROR_TITLE":"Une erreur est survenue","ERROR_DESC":"Une erreur inattendue est survenue. Vous pouvez réessayer.","ERROR_RETRY":"Réessayer","ERROR_HOME":"Revenir à l'accueil","ERROR_CODE_BAD_REQUEST":"Cette requête a été rejetée. Veuillez la vérifier et réessayer.","ERROR_CODE_UNAUTHORIZED":"Veuillez vous connecter pour continuer.","ERROR_CODE_FORBIDDEN":"Vous n'avez pas accès à ceci.","ERROR_CODE_NOT_FOUND":"Nous n'avons pas trouvé ce que vous cherchez.","ERROR_CODE_CONFLICT":"Cela entre en conflit avec des données existantes.","ERROR_CODE_INPUT_VALIDATION":"Veuillez vérifier les champs indiqués.","ERROR_CODE_TOO_MANY_REQUESTS":"Trop de tentatives. Veuillez réessayer dans un instant.","ERROR_CODE_INTERNAL_SERVER_ERROR":"Un problème est survenu de notre côté.","ERROR_CODE_UNKNOWN":"Une erreur s'est produite. Veuillez réessayer.","AUTH_ERROR_INVALID_EMAIL_OR_PASSWORD":"E-mail ou mot de passe incorrect.","AUTH_ERROR_INVALID_PASSWORD":"Ce mot de passe est incorrect.","AUTH_ERROR_INVALID_EMAIL":"Veuillez saisir une adresse e-mail valide.","AUTH_ERROR_USER_ALREADY_EXISTS":"Un compte existe déjà avec cet e-mail.","AUTH_ERROR_USER_ALREADY_EXISTS_USE_ANOTHER_EMAIL":"Un compte existe déjà avec cet e-mail. Utilisez-en un autre.","AUTH_ERROR_PASSWORD_TOO_SHORT":"Ce mot de passe est trop court.","AUTH_ERROR_PASSWORD_TOO_LONG":"Ce mot de passe est trop long.","AUTH_ERROR_EMAIL_NOT_VERIFIED":"Veuillez d'abord vérifier votre adresse e-mail.","AUTH_ERROR_BANNED_USER":"Ce compte a été suspendu.","AUTH_ERROR_SESSION_EXPIRED":"Votre session a expiré. Veuillez vous reconnecter.","AUTH_ERROR_SESSION_NOT_FRESH":"Pour votre sécurité, reconnectez-vous pour effectuer cette action.","AUTH_ERROR_INVALID_TOKEN":"Ce lien est invalide ou a déjà été utilisé.","AUTH_ERROR_TOKEN_EXPIRED":"Ce lien a expiré.","AUTH_ERROR_INVALID_CODE":"Ce code est incorrect.","AUTH_ERROR_INVALID_BACKUP_CODE":"Ce code de secours est incorrect.","AUTH_ERROR_INVALID_TWO_FACTOR_COOKIE":"Le délai de vérification a expiré. Veuillez vous reconnecter.","AUTH_ERROR_TOO_MANY_ATTEMPTS_REQUEST_NEW_CODE":"Trop de tentatives. Veuillez vous reconnecter.","AUTH_ERROR_ACCOUNT_TEMPORARILY_LOCKED":"Trop de tentatives. Votre compte est temporairement verrouillé.","AUTH_ERROR_PASSKEY_NOT_FOUND":"Cette clé d'accès n'est pas enregistrée pour ce compte.","AUTH_ERROR_AUTHENTICATION_FAILED":"La connexion par clé d'accès a échoué. Veuillez réessayer.","AUTH_ERROR_AUTH_CANCELLED":"La connexion par clé d'accès a été annulée.","AUTH_ERROR_REGISTRATION_CANCELLED":"La configuration de la clé d'accès a été annulée.","AUTH_ERROR_PREVIOUSLY_REGISTERED":"Cette clé d'accès est déjà enregistrée.","AUTH_ERROR_ORGANIZATION_SLUG_ALREADY_TAKEN":"Une organisation portant ce nom existe déjà.","AUTH_ERROR_USER_IS_ALREADY_A_MEMBER_OF_THIS_ORGANIZATION":"Cette personne est déjà membre.","AUTH_ERROR_USER_IS_ALREADY_INVITED_TO_THIS_ORGANIZATION":"Cette personne a déjà été invitée.","AUTH_ERROR_INVITATION_NOT_FOUND":"Cette invitation est invalide ou a expiré.","AUTH_ERROR_YOU_ARE_NOT_THE_RECIPIENT_OF_THE_INVITATION":"Cette invitation a été envoyée à une autre adresse e-mail.","AUTH_ERROR_YOU_CANNOT_IMPERSONATE_ADMINS":"Impossible d'emprunter l'identité d'un administrateur.","HOME_API_STATUS":"Statut API","HOME_STATUS_CHECKING":"Vérification...","HOME_STATUS_CONNECTED":"Connecté","HOME_STATUS_DISCONNECTED":"Déconnecté","HOME_NAV_DOCS":"Docs","HOME_NAV_CHANGELOG":"Changelog","HOME_SKIP_CONTENT":"Aller au contenu","HOME_READ_DOCS":"Lire la documentation","HOME_SHOWCASE_TITLE":"Déjà en marche.","HOME_SHOWCASE_BODY":"Tâches, fichiers, sécurité et agents connectés. Les vrais écrans du template avec des données de démonstration.","HOME_IMAGE_CREDIT":"Captures et illustrations techniques réalisées dans ce projet. Les captures montrent la démo locale avec des données fictives.","HOME_PICTURE_TODOS":"L’application de tâches avec cinq exemples, leurs priorités et leurs états.","HOME_PICTURE_FILES":"Le gestionnaire R2 avec les envois, la bibliothèque et la corbeille.","HOME_PICTURE_SETTINGS":"Les paramètres de sécurité pour les mots de passe, passkeys et la double authentification.","HOME_PICTURE_INTEGRATIONS":"La page des intégrations pour les agents connectés, webhooks et activités des agents.","HOME_FEATURE_JOBS":"Tâches planifiées","HOME_FEATURE_JOBS_BODY":"Effect aux interfaces externes : cron et envois, avec des baux Postgres pour les tâches en file.","HOME_AGENTS_PAGES_BODY":"Du Markdown public sur /index.md et un annuaire /llms.txt à lire avant de connecter un agent.","HOME_NAV_LABEL":"Sections","HOME_NAV_FEATURES":"Fonctionnalités","HOME_NAV_ARCHITECTURE":"Architecture","HOME_NAV_DEPLOY":"Déploiement","HOME_NAV_GET_STARTED":"Démarrer","HOME_NAV_FAQ":"FAQ","HOME_AGENT_PROMPT":"Lisez AGENTS.md et CONTEXT.md. Configurez le projet avec le skill setup-envs en conservant les identifiants existants. Exécutez ensuite pnpm install, pnpm setup et pnpm run dev. Vérifiez l’application avec le skill agent-browser.","HOME_AGENT_PROMPT_LABEL":"Un point de départ pour votre agent de code","HOME_START_REQUIREMENTS":"Node.js 22+ et pnpm. Setup demande la configuration du projet et des services.","HOME_COPY":"Copier dans le presse-papiers","HOME_COPIED":"Copié","HOME_COPY_FAILED":"Échec de la copie. Sélectionnez le texte pour le copier.","HOME_CODE_LABEL":"Exemples de code","HOME_CODE_WEB_NOTE":"Extrait de la route d’accueil. Le client généré conserve le typage de la requête.","HOME_CODE_MOBILE_NOTE":"L’écran d’accueil Expo appelle la même procédure de vérification.","HOME_CODE_API_NOTE":"Une vérification publique. Les procédures protégées exigent aussi une session.","HOME_REQUEST_NOTE":"L’instrument ci-dessus illustre une requête protégée. Le code ci-dessous est la vérification publique des deux apps.","HOME_ARCH_SESSION":"La session d’abord","HOME_ARCH_SESSION_BODY":"Les procédures protégées répondent 401 en l’absence de session avant d’accéder aux données.","HOME_ARCH_TYPES":"Des types partagés","HOME_ARCH_TYPES_BODY":"Les clients importent le type du routeur et les contrats feuilles. L’implémentation serveur reste dans le Worker.","HOME_DEPLOY_OPEN":"Ouvrez une pull request","HOME_DEPLOY_PREVIEW":"Worker + branche Neon","HOME_DEPLOY_CLOSE":"Fermez et nettoyez","HOME_DEPLOY_FILE":".github/workflows/pr-preview.yml","HOME_FOOTER_BODY":"TanStack Start + Expo. Un Cloudflare Worker. À votre produit de suivre.","HOME_FOOTER_EXPLORE":"Explorer","HOME_FOOTER_BUILD":"Construire","HOME_FOOTER_LEGAL":"Informations légales","HOME_FIG_WORKER":"La machine à requêtes","HOME_FIG_BOUNDARY":"Le verrou à trois contrôles","HOME_FIG_WORKER_CAPTION":"Deux entrées, un chariot. Web et mobile suivent le même contrôle de session, routeur et accès aux données. Séquence illustrative, pas du trafic réel.","HOME_FIG_BOUNDARY_CAPTION":"Trois loquets représentent le lint, les exports explicites et l’analyse du bundle. Le pêne avance après les contrôles. Illustration d’ADR-0002, pas une barrière de sécurité à l’exécution.","HOME_FIG_CONTROLS":"Instrument interactif. Utilisez les flèches, Début ou Fin pour choisir une étape.","HOME_FIG_HINT":"Sélectionnez une étape","HOME_FIG_REQUEST":"Requête","HOME_FIG_SESSION":"Session","HOME_FIG_QUERY":"Données","HOME_FIG_RETURN":"Réponse","HOME_FIG_SEALED":"Verrouillé","HOME_FIG_EXPORTS":"Exports","HOME_FIG_BUNDLE":"Bundle","HOME_FIG_CHECKS":"3 contrôles indépendants","HOME_FIG_RESET":"Réinitialiser l’instrument","HOME_FIG_PAUSE":"Mettre la séquence en pause","HOME_FIG_PLAY":"Lire la séquence automatique","HOME_FIG_TOUR":"Illustration automatique. Choisissez une étape pour la mettre en pause et l’inspecter.","HOME_HERO_TITLE":"Un Worker. Tous les clients.","HOME_HERO_SUBTITLE":"Un starter full-stack pour le web et le mobile. TanStack Start, Expo et une API typée sur Cloudflare.","HOME_CTA_DEMO":"Ouvrir la démo","HOME_CTA_DASHBOARD":"Ouvrir le tableau de bord","HOME_CTA_ARCHITECTURE":"Explorer l'architecture","HOME_STATUS_READY":"Prêt","HOME_STATUS_OFF":"Désactivé par défaut","HOME_STATUS_PROGRESS":"En cours","HOME_FEATURES_TITLE":"Les pièces en place.","HOME_FEATURES_BODY":"Gardez ce dont votre produit a besoin. Toutes les intégrations sont incluses ; les services optionnels restent inactifs avant leur configuration.","HOME_FEATURES_GROUP_PRODUCT":"Produit","HOME_FEATURES_GROUP_PLATFORM":"Plateforme","HOME_FEATURES_GROUP_MOBILE":"Mobile","HOME_FEATURE_AUTH":"Authentification","HOME_FEATURE_AUTH_BODY":"E-mail et mot de passe, passkeys, codes à deux facteurs, vérification de l'e-mail et gestion des sessions.","HOME_FEATURE_ORGS":"Organisations","HOME_FEATURE_ORGS_BODY":"Membres, invitations et rôles. Les todos et les fichiers appartiennent à l'organisation active.","HOME_FEATURE_FILES":"Fichiers","HOME_FEATURE_FILES_BODY":"Envois multipart vers R2, aperçus, liens de partage et corbeille.","HOME_FEATURE_ADMIN":"Admin","HOME_FEATURE_ADMIN_BODY":"Gestion des utilisateurs, usurpation d'identité, feature flags et journal d'audit.","HOME_FEATURE_TODOS":"Exemple de todos","HOME_FEATURE_TODOS_BODY":"Tableau, kanban et calendrier, avec files d’import à baux et brouillons proposés par les agents IA.","HOME_FEATURE_PAYMENTS":"Paiements","HOME_FEATURE_PAYMENTS_BODY":"Stripe et Polar sur le web, RevenueCat sur mobile. Inactifs avant la configuration des fournisseurs et des flags de paiement.","HOME_FEATURE_API":"API typée","HOME_FEATURE_API_BODY":"Routeurs oRPC avec contrats Zod, partagés par le web et le mobile.","HOME_FEATURE_DATABASE":"Base de données","HOME_FEATURE_DATABASE_BODY":"Drizzle sur Neon Postgres, atteint via Hyperdrive.","HOME_FEATURE_EMAIL":"E-mail","HOME_FEATURE_EMAIL_BODY":"E-mails transactionnels via Cloudflare Email, affichés dans la console en développement.","HOME_FEATURE_I18N":"i18n et SEO","HOME_FEATURE_I18N_BODY":"Anglais, allemand et français, hreflang, sitemap et images OG générées avec Takumi.","HOME_FEATURE_MCP":"Serveur MCP","HOME_FEATURE_MCP_BODY":"OAuth 2.1 sur /api/mcp pour Claude, ChatGPT et les autres clients MCP.","HOME_FEATURE_ASSISTANT":"Assistant intégré","HOME_FEATURE_ASSISTANT_BODY":"Chat en streaming avec TanStack AI et des outils MCP communs. Désactivé tant qu'un fournisseur n'est pas configuré et que le flag de l'assistant n'est pas activé.","HOME_FAQ_ASSISTANT_Q":"Le template inclut-il un assistant IA ?","HOME_FAQ_ASSISTANT_A":"Oui. L'assistant et MCP partagent un catalogue d'outils limité à votre organisation. Les modifications nécessitent une approbation. Configurez Anthropic, OpenAI ou Gemini et activez le flag de l'assistant pour afficher le chat. Il est désactivé par défaut.","HOME_FEATURE_PREVIEWS":"Déploiements de preview","HOME_FEATURE_PREVIEWS_BODY":"Un Worker et une branche Neon pour chaque pull request.","HOME_FEATURE_CONSENT":"Consentement aux cookies","HOME_FEATURE_CONSENT_BODY":"Une bannière de consentement qui retient les scripts d'analyse et de marketing.","HOME_FEATURE_EXPO":"App Expo","HOME_FEATURE_EXPO_BODY":"iOS et Android avec le même client API, la même session et les passkeys.","HOME_FEATURE_PUSH":"Notifications push","HOME_FEATURE_PUSH_BODY":"Enregistrement push Expo et file de livraison. Désactivées tant que les identifiants ne sont pas configurés.","HOME_FEATURE_WIDGETS":"Widgets d'écran d'accueil","HOME_FEATURE_WIDGETS_BODY":"Widgets de todos pour iOS et Android, derrière une option de build natif.","HOME_FEATURE_ADS":"Publicités","HOME_FEATURE_ADS_BODY":"Utilitaires AdMob conservés en bibliothèque autonome, non importés par l'app.","HOME_ARCHITECTURE_TITLE":"Un seul contrat.","HOME_ARCHITECTURE_BODY":"Le navigateur et Expo appellent le même routeur oRPC. Le Worker vérifie la session avant tout accès à Postgres ou R2.","HOME_BOUNDARY_TITLE":"Le serveur reste à part.","HOME_BOUNDARY_BODY":"Partagez les contrats avec vos clients. Trois contrôles indépendants protègent connexions, secrets et code serveur.","HOME_BOUNDARY_CHECK_LINT":"oxlint","HOME_BOUNDARY_CHECK_LINT_BODY":"Les imports de valeurs depuis des modules serveur font échouer le lint dans apps/web, apps/mobile et packages/ui. Les imports de types sont autorisés.","HOME_BOUNDARY_CHECK_EXPORTS":"Exports explicites","HOME_BOUNDARY_CHECK_EXPORTS_BODY":"Chaque package liste ses points d'entrée publics. Pas de jokers, donc un nouvel import entre packages est un choix délibéré.","HOME_BOUNDARY_CHECK_BUNDLE":"Scan du bundle client","HOME_BOUNDARY_CHECK_BUNDLE_BODY":"Le build web lit les assets client et échoue sur des chaînes qui n'existent que dans le code serveur.","HOME_DEPLOY_TITLE":"Un aperçu par PR.","HOME_DEPLOY_BODY":"Chaque pull request reçoit un Worker de preview et une branche Neon. Testez son URL avant de fusionner.","HOME_DEPLOY_FACT_PROD":"Le merge part en production","HOME_DEPLOY_FACT_PROD_BODY":"Un push sur main lance le workflow de production séparé, avec les secrets et la base de données de production.","HOME_DEPLOY_FACT_CLEANUP":"Un nettoyage exact","HOME_DEPLOY_FACT_CLEANUP_BODY":"Il vérifie le projet, la pull request et la branche parente, supprime d'abord le Worker et accepte les ressources déjà supprimées.","HOME_AGENTS_TITLE":"Un catalogue d’outils.","HOME_AGENTS_BODY":"TanStack AI et le serveur MCP utilisent les mêmes outils autorisés. Les agents de code disposent des règles du dépôt et des décisions d’architecture.","HOME_AGENTS_RULES_BODY":"Les règles que tout agent de code lit en premier : la frontière client et serveur, Effect côté serveur, l'i18n.","HOME_AGENTS_ADRS_BODY":"Les décisions d'architecture avec leur contexte, pour qu'un agent ne les défasse pas.","HOME_AGENTS_SKILLS_BODY":"Setup, démarrage, déploiement et vérifications navigateur sous forme de skills pas à pas.","HOME_AGENTS_MCP_BODY":"Les agents lisent vos données et proposent des brouillons via OAuth. Les brouillons attendent que vous les appliquiez.","HOME_AGENTS_COMMAND_LABEL":"Connecter Claude Code","HOME_AGENTS_COMMAND_NOTE":"Dans ChatGPT ou claude.ai, ajoutez la même URL /api/mcp comme connecteur personnalisé.","HOME_AGENTS_TREE_TITLE":"Ce que l'agent lit en premier","HOME_AGENTS_TRANSCRIPT_TITLE":"Appels d'outils via MCP","HOME_UI_RESULTS":"5 résultats","HOME_UI_AWAITING":"Attend votre autorisation","HOME_UI_NEW_TODO":"1 nouvelle tâche","HOME_UI_TODO_A":"Livrer la preview","HOME_UI_TODO_B":"Renouveler les clés R2","HOME_UI_TODO_C":"Rédiger le changelog","HOME_STACK_WORKER":"Tourne dans un seul Worker","HOME_STACK_NODE_WEB":"App web","HOME_STACK_NODE_MOBILE":"App mobile","HOME_STACK_NODE_WORKER":"Un seul Worker","HOME_STACK_NODE_POOL":"Hyperdrive","HOME_STACK_NODE_NEON":"Neon Postgres","HOME_STACK_NODE_R2":"Fichiers R2","HOME_STACK_NODE_TOOLING":"Livraison","HOME_STACK_ZONE_CLIENTS":"Clients","HOME_STACK_ZONE_CLOUDFLARE":"Cloudflare","HOME_STACK_ZONE_DATA":"Données","HOME_STACK_LEGEND_FOCAL":"Le Worker unique","HOME_STACK_LEGEND_INPUT":"Clients","HOME_STACK_LEGEND_STORE":"Services managés","HOME_STACK_LEGEND_OPTIONAL":"Outillage, hors exécution","HOME_STACK_DIAGRAM_TITLE":"Un seul Worker entre les clients et les données","HOME_STACK_DIAGRAM_DESC":"Diagramme d'architecture : les apps web et mobile appellent un seul Worker Cloudflare qui sert TanStack Start, oRPC, Better Auth et les jobs Effect, atteint Neon Postgres via Hyperdrive et stocke les fichiers dans R2 ; GitHub Actions, Turborepo et pnpm le déploient.","HOME_STACK_DIAGRAM_CAPTION":"Chaque requête des deux clients suit le même chemin. Seul le Worker parle à la base et au bucket.","HOME_STACK_TITLE":"La stack","HOME_STACK_BODY":"Un monorepo TypeScript. Chaque package a un rôle et une surface publique énumérée.","HOME_STACK_GROUP_WEB":"Web","HOME_STACK_GROUP_MOBILE":"Mobile","HOME_STACK_GROUP_API":"API","HOME_STACK_GROUP_AUTH":"Auth","HOME_STACK_GROUP_DATA":"Données et fichiers","HOME_STACK_GROUP_PLATFORM":"Plateforme et outillage","HOME_START_TITLE":"À vous de construire.","HOME_START_BODY":"Clonez votre copie du dépôt. Installez, configurez et lancez le web et le mobile ensemble.","HOME_START_CLONE":"Cloner","HOME_START_CLONE_BODY":"Partez de votre copie du dépôt du template.","HOME_START_INSTALL":"Installer","HOME_START_INSTALL_BODY":"Installe chaque workspace du monorepo.","HOME_START_SETUP":"Configurer","HOME_START_SETUP_BODY":"Nomme le projet et écrit les fichiers d'env, Wrangler, la base de données, l'e-mail et le stockage.","HOME_START_RUN":"Lancer","HOME_START_RUN_BODY":"Le web sur localhost:3005, plus le serveur de dev Expo pour le mobile.","HOME_FAQ_TITLE":"Avant de cloner.","HOME_FAQ_DEMO_Q":"Que puis-je essayer dans la démo ?","HOME_FAQ_DEMO_A":"Créez un compte et utilisez la vraie app : todos, fichiers, organisations, passkeys, double authentification et réglages. Elle tourne sur le même Worker que cette page.","HOME_FAQ_WORKERS_Q":"Pourquoi Cloudflare Workers ?","HOME_FAQ_WORKERS_A":"Un seul déploiement sert les pages, l'API, l'auth et les tâches planifiées. Chaque pull request a son propre Worker, donc la revue se fait sur une vraie URL.","HOME_FAQ_NEON_Q":"Pourquoi Neon Postgres plutôt que D1 ?","HOME_FAQ_NEON_A":"L'auth, les organisations et les files de tâches s'appuient sur les transactions et les verrous de Postgres. Hyperdrive mutualise la connexion, et chaque pull request a sa propre branche Neon.","HOME_FAQ_REMOVE_Q":"Puis-je retirer le mobile, les paiements ou les publicités ?","HOME_FAQ_REMOVE_A":"Oui. optional-features.json liste chaque package optionnel et ses points d'entrée, et docs/optional-features.md explique comment les retirer.","HOME_FAQ_REBRAND_Q":"Comment changer l'identité visuelle ?","HOME_FAQ_REBRAND_A":"Les couleurs, les rayons et les polices vivent dans un seul fichier de tokens. Les noms et les textes vivent dans les fichiers de langue. Les écrans n'utilisent que des tokens, donc changer la palette change toutes les pages.","HOME_FAQ_EFFECT_Q":"Dois-je connaître Effect ?","HOME_FAQ_EFFECT_A":"Seulement pour modifier les tâches serveur. Effect coordonne l'exécution dans le Worker ; les contrats utilisent Zod, les requêtes oRPC, l'auth Better Auth et l'accès aux données Drizzle.","HOME_FAQ_AGENTS_Q":"Comment connecter un agent IA ?","HOME_FAQ_AGENTS_A":"Pointez n'importe quel client MCP vers /api/mcp. Vous accordez l'accès via OAuth, la lecture et l'écriture sont des scopes séparés, et l'écriture ne crée que des brouillons que vous confirmez dans l'app.","ARCH_TITLE":"Chaque package a un rôle","ARCH_SUBTITLE":"Choisissez un dossier ou un package dans l'arbre pour voir ce dont il s'occupe.","ARCH_BODY_ROOT":"Un Worker est le backend. Le web et le mobile partagent oRPC et Better Auth. Les packages restent explicites pour qu'un client n'importe jamais un module serveur.","ARCH_BODY_APPS":"Deux clients. TanStack Start sur Cloudflare pour le web. Expo pour le mobile. Les deux appellent le même Worker.","ARCH_BODY_WEB":"TanStack Start, shadcn, i18n, SEO. Routes fichiers. La landing et les pages légales sont publiques. Les routes dashboard sont derrière l'auth.","ARCH_BODY_MOBILE":"Expo Router, NativeTabs, le même type de client oRPC. Passkeys et 2FA partagent la session Worker.","ARCH_BODY_PACKAGES":"Les packages capables serveur n'exportent pas de barrels. Un client importe une feuille: enums, schémas zod, ou types api/client.","ARCH_BODY_API":"Routeurs oRPC et contrats zod. Les outils MCP et webhooks sont ici. Le type client est import type seulement.","ARCH_BODY_AUTH":"Better Auth avec Drizzle, passkeys, 2FA, impersonation admin. Les cookies de session tapent le Worker, pas un second hôte auth.","ARCH_BODY_DB":"Schéma Drizzle sur Neon. Le barrel de schéma est le seul agrégat sanctionné, et seul le code serveur l'atteint.","ARCH_BODY_STORAGE":"R2 via files-sdk. Les fichiers appartiennent à l'organisation active. Le Worker vérifie l'appartenance actuelle avant de fournir des URL ou de transférer les fichiers.","ARCH_BODY_EMAIL":"Une couture sendEmail. Les templates sont purs. La prod utilise Cloudflare Email ou Resend. Le dev imprime dans la console.","ARCH_BODY_ENV":"env/server est Worker-only. env/web est le sous-ensemble public. Native a sa propre feuille pour Expo.","ARCH_BODY_ERRORS":"Codes d'erreur et clés i18n partagés. Les clients mappent les codes vers des chaînes. Ils n'importent jamais la fabrique d'erreurs serveur.","ARCH_BODY_FLAGS":"Le registre de flags est une feuille. Le repo DB est un sous-chemin séparé pour qu'un import client ne tire pas Drizzle.","ARCH_BODY_INTL":"i18next plus un provider React. La langue serveur vient du cookie et de la query.","ARCH_BODY_UI":"Primitives shadcn et ReUI. Tokens dans globals.css. C'est l'autorité visuelle du web.","ARCH_BODY_WIDGETS":"Widgets todo iOS et Android. Derrière un feature flag et un rebuild natif.","ARCH_BODY_APP_UPDATE":"Compare la version de l'app à la config admin et dit au client s'il doit demander une mise à jour.","ARCH_BODY_CONFIG":"tsconfig partagé et les règles oxlint de frontière client. Pas de runtime.","ARCH_BODY_SETUP":"pnpm setup. Renommer, fichiers env, Neon, secrets GitHub et Worker.","ARCH_BODY_PLUGINS":"Packaging de plugin agent. Outils MCP que l'hôte peut installer.","ARCH_BODY_MCP_PLUGIN":"agent-plugin. Paquet Agent Plugins 1.0: MCP via OAuth, écritures en brouillon, et skills. Vit dans plugins/agent-plugin.","FOOTER_COPYRIGHT":"© {{year}} Acme Inc.","FOOTER_NAV_LABEL":"Mentions légales","LEGAL_PRIVACY_LINK":"Confidentialité","LEGAL_TERMS_LINK":"Conditions","LEGAL_LAST_UPDATED":"Dernière mise à jour : {{date}}","LEGAL_TEMPLATE_NOTICE_TITLE":"Texte du template","LEGAL_TEMPLATE_NOTICE_BODY":"Cette page est fournie avec le template. Remplacez les champs entre crochets, adaptez le texte à ce que fait réellement votre app et faites-le relire avant le lancement. Ce n'est pas un conseil juridique.","PRIVACY_TITLE":"Politique de confidentialité","PRIVACY_INTRO":"Cette politique explique quelles données {{company}} collecte lorsque vous utilisez cette app, pourquoi et quels choix vous avez.","PRIVACY_CONTROLLER_TITLE":"Responsable du traitement","PRIVACY_CONTROLLER_BODY":"{{company}}, {{address}}, est responsable de vos données personnelles. Contactez-nous à {{email}}.","PRIVACY_DATA_TITLE":"Ce que nous collectons","PRIVACY_DATA_BODY":"Les données de compte comme votre nom, votre adresse e-mail, l'empreinte de votre mot de passe, vos passkeys et vos réglages de double authentification. Le contenu que vous créez, comme les organisations, les todos et les fichiers envoyés. Les données techniques comme l'adresse IP, le navigateur, les sessions et les événements de sécurité du journal d'audit.","PRIVACY_USE_TITLE":"Pourquoi nous les utilisons","PRIVACY_USE_BODY":"Pour fournir et sécuriser le service, envoyer les e-mails de compte comme la vérification, la réinitialisation du mot de passe et les invitations, prévenir les abus et respecter nos obligations légales. Nous ne vendons pas de données personnelles.","PRIVACY_COOKIES_TITLE":"Cookies et stockage local","PRIVACY_COOKIES_BODY":"Des cookies essentiels vous gardent connecté et retiennent votre langue. Votre thème et vos choix de cookies sont stockés dans votre navigateur. Les outils d'analyse ou de marketing, s'ils sont activés, ne se chargent qu'après votre consentement dans la bannière de cookies, et vous pouvez modifier ce choix à tout moment.","PRIVACY_PROCESSORS_TITLE":"Prestataires","PRIVACY_PROCESSORS_BODY":"Nous faisons appel à des sous-traitants qui agissent sur nos instructions : Cloudflare pour l'hébergement, l'e-mail et le stockage de fichiers, Neon pour la base de données, ainsi que les prestataires de paiement ou de notifications que nous activons.","PRIVACY_AGENTS_TITLE":"Agents IA que vous connectez","PRIVACY_AGENTS_BODY":"Si vous connectez un agent IA via MCP, il ne peut lire vos données et proposer des brouillons que dans les scopes que vous approuvez. Vous pouvez révoquer son accès à tout moment dans Intégrations.","PRIVACY_RETENTION_TITLE":"Durée de conservation","PRIVACY_RETENTION_BODY":"Nous conservons les données de compte tant que votre compte existe. Lorsque vous supprimez votre compte dans les réglages, nous supprimons vos données personnelles sous [30] jours, sauf si la loi nous oblige à les conserver. Les journaux de sécurité sont conservés [90] jours.","PRIVACY_RIGHTS_TITLE":"Vos droits","PRIVACY_RIGHTS_BODY":"Selon votre lieu de résidence, vous pouvez accéder à vos données, les rectifier, les exporter ou les supprimer, vous opposer à leur traitement et déposer une réclamation auprès d'une autorité de protection des données. Écrivez à {{email}}, nous répondrons sous un mois.","PRIVACY_CHANGES_TITLE":"Modifications de cette politique","PRIVACY_CHANGES_BODY":"Nous publions les modifications sur cette page et mettons à jour la date en haut. Pour les changements importants, nous vous prévenons aussi par e-mail ou dans l'app.","TERMS_TITLE":"Conditions d'utilisation","TERMS_INTRO":"Ces conditions régissent votre utilisation de l'app exploitée par {{company}}. En créant un compte, vous les acceptez.","TERMS_ACCOUNT_TITLE":"Votre compte","TERMS_ACCOUNT_BODY":"Fournissez des informations exactes, protégez votre mot de passe et vos passkeys, et prévenez-nous à {{email}} si vous pensez que votre compte a été compromis. Vous êtes responsable de l'activité de votre compte.","TERMS_USE_TITLE":"Utilisation acceptable","TERMS_USE_BODY":"N'enfreignez pas la loi ni les droits d'autrui, n'envoyez pas de logiciels malveillants, ne sondez pas et ne surchargez pas le service, et n'essayez pas d'accéder à des données que vous n'êtes pas autorisé à voir.","TERMS_CONTENT_TITLE":"Votre contenu","TERMS_CONTENT_BODY":"Vous restez propriétaire de ce que vous envoyez. Vous nous accordez l'autorisation nécessaire pour le stocker, le traiter et l'afficher afin de fournir le service. Les admins d'une organisation peuvent gérer le contenu partagé dans leur organisation.","TERMS_PAID_TITLE":"Fonctionnalités payantes","TERMS_PAID_BODY":"Si des offres payantes sont proposées, les prix, les périodes de facturation et les conditions de résiliation sont affichés avant l'achat et font partie de ces conditions.","TERMS_AVAILABILITY_TITLE":"Disponibilité et évolutions","TERMS_AVAILABILITY_BODY":"Nous faisons en sorte que le service reste disponible, sans pouvoir garantir l'absence d'interruption. Nous pouvons modifier ou arrêter des fonctionnalités et annonçons à l'avance les changements importants.","TERMS_TERMINATION_TITLE":"Fin de l'utilisation","TERMS_TERMINATION_BODY":"Vous pouvez supprimer votre compte à tout moment dans les réglages. Nous pouvons suspendre ou fermer les comptes qui enfreignent ces conditions.","TERMS_LIABILITY_TITLE":"Responsabilité","TERMS_LIABILITY_BODY":"Le service est fourni en l'état. Dans les limites permises par la loi, {{company}} n'est pas responsable des dommages indirects ou consécutifs. Rien dans ces conditions ne limite une responsabilité que la loi ne permet pas de limiter.","TERMS_LAW_TITLE":"Droit applicable","TERMS_LAW_BODY":"Ces conditions sont régies par le droit de {{jurisdiction}}.","TERMS_CONTACT_TITLE":"Contact","TERMS_CONTACT_BODY":"Pour toute question sur ces conditions : {{email}}.","AUTH_SIGN_IN_SUBTITLE":"Connectez-vous à votre compte pour continuer.","AUTH_SIGN_UP_SUBTITLE":"Créez un compte pour commencer.","AUTH_ENGINE_TITLE":"Les pièces en place","AUTH_ENGINE_DESCRIPTION":"Un moteur de fusée isométrique suspendu à un banc d’essai, avec turbopompes, conduites de refroidissement et tuyère.","AUTH_ENGINE_CAPTION":"Un Worker. Tous les clients.","AUTH_ENGINE_DETAIL":"Authentification, données et stockage. Les bases sont en place.","AUTH_ENGINE_PAUSE":"Mettre l’animation en pause","AUTH_ENGINE_PLAY":"Lancer l’animation","TODO_TITLE":"Liste des tâches","TODO_DESCRIPTION":"Organisez vos tâches","TODO_ADD_PLACEHOLDER":"Ajouter une tâche…","TODO_ADD_BUTTON":"Ajouter","TODO_EMPTY":"Aucune tâche pour l'instant. Ajoutez-en une ci-dessus.","TODO_DELETE_LABEL":"Supprimer la tâche","TODO_SEARCH_PLACEHOLDER":"Rechercher des tâches…","TODO_COL_TEXT":"Tâche","TODO_COL_PRIORITY":"Priorité","TODO_COL_COMPLETED":"Terminée","TODO_COL_STATUS":"Statut","TODO_COL_CREATED_AT":"Créée le","TODO_PRIORITY_LOW":"Faible","TODO_PRIORITY_MEDIUM":"Moyenne","TODO_PRIORITY_HIGH":"Élevée","TODO_COMPLETED_YES":"Terminée","TODO_COMPLETED_NO":"À faire","TODO_STATUS_BACKLOG":"En attente","TODO_STATUS_TODO":"À faire","TODO_STATUS_IN_PROGRESS":"En cours","TODO_STATUS_DONE":"Terminée","TODO_VIEW_GRID":"Grille","TODO_VIEW_BOARD":"Tableau","TODO_VIEW_CALENDAR":"Calendrier","TODO_VIEW_LABEL":"Vue","TODO_BOARD_EMPTY_LANE":"Aucune tâche ici","TODO_BOARD_LANE_COUNT":"{{shown}} sur {{total}}","TODO_BOARD_EMPTY":"Aucune tâche ne correspond à ces filtres.","TODO_BOARD_DROP_HINT":"Déposer ici pour déplacer","TODO_MOVE_TO":"Déplacer vers","TODO_MOVED_TOAST":"Déplacée vers {{status}}","TODO_ROW_ACTIONS":"Actions de la tâche","TODO_MOVE_ERROR":"Impossible de déplacer cette tâche.","TODO_COL_DUE_DATE":"Échéance","TODO_CALENDAR_MONTH":"Mois","TODO_CALENDAR_AGENDA":"Agenda","TODO_CALENDAR_MODE":"Affichage du calendrier","TODO_CALENDAR_PREV":"Mois précédent","TODO_CALENDAR_NEXT":"Mois suivant","TODO_CALENDAR_EMPTY":"Aucune tâche prévue sur cette période.","TODO_CALENDAR_ERROR":"Impossible de charger le calendrier.","TODO_CALENDAR_OVERDUE":"En retard","TODO_CALENDAR_MORE":"+{{count}} autres","TODO_CALENDAR_UNSCHEDULED":"{{count}} sans échéance","TODO_CALENDAR_TRUNCATED":"Les {{count}} premières tâches de cette période","TODO_DUE_NONE":"Aucune échéance","PALETTE_TITLE":"Palette de commandes","PALETTE_DESCRIPTION":"Ouvrez une page ou une vue, ou recherchez une tâche par son nom.","PALETTE_PLACEHOLDER":"Rechercher des pages, des vues et des tâches…","PALETTE_GROUP_PAGES":"Pages","PALETTE_GROUP_VIEWS":"Vues","PALETTE_GROUP_TODOS":"Tâches","PALETTE_NO_RESULTS":"Aucun résultat.","PALETTE_SEARCHING":"Recherche de tâches…","PALETTE_ERROR":"La recherche de tâches est indisponible pour le moment.","TABLE_SORT_ASC":"Croissant","TABLE_SORT_DESC":"Décroissant","TABLE_HIDE":"Masquer","TABLE_VIEW":"Affichage","TABLE_RESET":"Réinitialiser","TABLE_NO_RESULTS":"Aucun résultat.","TABLE_SELECT_ALL":"Tout sélectionner","TABLE_SELECT_ROW":"Sélectionner la ligne","TABLE_ROWS_PER_PAGE":"Lignes par page","TABLE_PAGE":"Page","TABLE_OF":"sur","TABLE_SELECTED_COUNT":"{{selected}} ligne(s) sélectionnée(s) sur {{total}}.","DASHBOARD_TITLE":"Tableau de bord","DASHBOARD_WELCOME":"Bienvenue {{name}}","DASHBOARD_API":"API: {{message}}","DASHBOARD_SUBTITLE":"Tâches, stockage et activité récente de ce compte.","DASHBOARD_RANGE_7D":"7 jours","DASHBOARD_RANGE_30D":"30 jours","DASHBOARD_RANGE_90D":"90 jours","DASHBOARD_KPI_OPEN":"Tâches à faire","DASHBOARD_KPI_DONE":"Tâches terminées","DASHBOARD_KPI_FILES":"Fichiers stockés","DASHBOARD_KPI_EVENTS":"Événements récents","DASHBOARD_STORAGE_TITLE":"Stockage","DASHBOARD_STORAGE_DESC":"Fichiers de ce compte","DASHBOARD_STORAGE_UNAVAILABLE":"Le stockage est indisponible pour le moment","DASHBOARD_ACTIVITY_TITLE":"Activité récente","DASHBOARD_ACTIVITY_DESC":"Derniers événements de ce compte","DASHBOARD_ACTIVITY_EMPTY":"Aucune activité sur cette période.","SETTINGS_SUBTITLE":"Gérez votre compte, vos préférences et votre organisation.","SETTINGS_TAB_PROFILE":"Profil","SETTINGS_TAB_ORGANIZATION":"Organisation","SETTINGS_TAB_SECURITY":"Sécurité","SETTINGS_TAB_APPEARANCE":"Apparence","SETTINGS_ORG_TITLE":"Organisations","SETTINGS_ORG_DESC":"Changez d'organisation active ou créez-en une autre.","SETTINGS_ORG_ACTIVE":"Active","SETTINGS_ORG_SWITCH":"Changer","SETTINGS_ORG_CREATE":"Créer","SETTINGS_ORG_NAME_PLACEHOLDER":"Nom de l'organisation","SETTINGS_ORG_INVITE":"Inviter","SETTINGS_ORG_INVITE_PLACEHOLDER":"membre@example.com","SETTINGS_ORG_INVITE_MISSING":"Ce lien d'invitation n'a pas d'identifiant.","SETTINGS_ORG_INVITE_SIGN_IN":"Connectez-vous pour accepter l'invitation, puis rouvrez le lien.","SETTINGS_ORG_INVITE_WORKING":"Acceptation de l'invitation…","SETTINGS_ORG_INVITE_ERROR":"Impossible d'accepter cette invitation.","SETTINGS_ORG_INVITE_ACCEPT":"Accepter l'invitation","SETTINGS_ORG_MEMBERS_TITLE":"Membres","SETTINGS_ORG_MEMBERS_DESC":"Personnes qui voient les tâches et les fichiers de cette organisation.","SETTINGS_ORG_MEMBERS_EMPTY":"Aucun membre dans cette organisation pour le moment.","SETTINGS_ORG_INVITE_MEMBER":"Inviter un membre","SETTINGS_ORG_INVITE_DIALOG_TITLE":"Inviter des personnes dans votre espace","SETTINGS_ORG_INVITE_DIALOG_DESC":"Elles rejoignent l'organisation active après avoir accepté l'e-mail.","SETTINGS_ORG_INVITE_EMAIL":"E-mail","SETTINGS_ORG_INVITE_ROLE":"Choisir le rôle","SETTINGS_ORG_INVITE_CANCEL":"Annuler","SETTINGS_ORG_INVITE_ADD":"Ajouter","SETTINGS_ORG_COL_NAME":"Nom","SETTINGS_ORG_COL_EMAIL":"E-mail","SETTINGS_ORG_COL_ROLE":"Rôle","SETTINGS_ORG_COL_ACTIONS":"Actions","SETTINGS_ORG_ROLE_OWNER":"Propriétaire","SETTINGS_ORG_ROLE_ADMIN":"Admin","SETTINGS_ORG_ROLE_MEMBER":"Membre","SETTINGS_ORG_PENDING_TITLE":"Invitations en attente","SETTINGS_ORG_PENDING":"En attente","SETTINGS_ORG_REMOVE":"Retirer","SETTINGS_ORG_REMOVE_TITLE":"Retirer ce membre ?","SETTINGS_ORG_REMOVE_DESC":"{{name}} perdra l'accès aux tâches et aux fichiers de cette organisation.","SETTINGS_PROFILE_TITLE":"Profil","SETTINGS_PROFILE_DESC":"Votre profil visible dans l'organisation.","SETTINGS_JOINED":"Inscrit le {{date}}","SETTINGS_ACTIVITY_TITLE":"Activité","SETTINGS_ACTIVITY_DESC":"L'activité récente de votre compte.","SETTINGS_ACTIVITY_TABLE_TITLE":"Journal d'activité","SETTINGS_ACTIVITY_TABLE_DESC":"Les mêmes événements dans un tableau, avec l'adresse IP et le client.","SETTINGS_NAME":"Nom","SETTINGS_EMAIL":"E-mail","SETTINGS_EMAIL_HINT":"Votre adresse e-mail sert à vous connecter et ne peut pas être modifiée ici.","SETTINGS_SAVE":"Enregistrer les modifications","SETTINGS_SAVED":"Profil mis à jour","SETTINGS_AVATAR_CHANGE":"Changer d'avatar","SETTINGS_AVATAR_COMING_SOON":"L'ajout d'un avatar sera disponible prochainement.","SETTINGS_APPEARANCE_TITLE":"Apparence","SETTINGS_APPEARANCE_DESC":"Personnalisez l'apparence de l'application sur cet appareil.","SETTINGS_THEME_LABEL":"Thème","SETTINGS_LANGUAGE_LABEL":"Langue","SETTINGS_DANGER_TITLE":"Actions irréversibles","SETTINGS_DANGER_DESC":"Actions irréversibles sur votre compte.","SETTINGS_DELETE_ACCOUNT":"Supprimer le compte","SETTINGS_DELETE_CONFIRM_TITLE":"Supprimer votre compte ?","SETTINGS_DELETE_CONFIRM_DESC":"Cette action supprime définitivement votre compte et vous déconnecte de tous les appareils. Les tâches partagées restent disponibles pour les autres membres de l'organisation. Cette action est irréversible.","SETTINGS_DELETE_CONFIRM_LABEL":"Saisissez {{email}} pour confirmer","SETTINGS_DELETE_SESSION_EXPIRED":"Pour votre sécurité, la suppression du compte nécessite une connexion récente. Déconnectez-vous, reconnectez-vous, puis réessayez.","SETTINGS_CANCEL":"Annuler","SETTINGS_DELETED":"Votre compte a été supprimé","SETTINGS_PASSWORD_TITLE":"Mot de passe","SETTINGS_PASSWORD_DESC":"Modifiez le mot de passe utilisé pour vous connecter.","SETTINGS_PASSWORD_CURRENT":"Mot de passe actuel","SETTINGS_PASSWORD_CURRENT_REQUIRED":"Saisissez votre mot de passe actuel","SETTINGS_PASSWORD_NEW":"Nouveau mot de passe","SETTINGS_PASSWORD_CONFIRM":"Confirmer le nouveau mot de passe","SETTINGS_PASSWORD_SUBMIT":"Changer le mot de passe","SETTINGS_PASSWORD_REVOKE_HINT":"Changer de mot de passe vous déconnecte de tous les autres appareils.","SETTINGS_PASSWORD_CHANGED":"Mot de passe modifié. Les autres appareils ont été déconnectés.","SETTINGS_PASSWORD_WRONG_CURRENT":"Votre mot de passe actuel est incorrect.","PASSKEY_CARD_TITLE":"Clés d'accès","PASSKEY_CARD_DESC":"Utilisez Face ID, Touch ID, Windows Hello ou une clé de sécurité pour vous connecter.","PASSKEY_COUNT":"{{count}} enregistrée(s)","PASSKEY_EMPTY":"Aucune clé d'accès pour l'instant. Ajoutez-en une depuis cet appareil pour vous connecter sans mot de passe.","PASSKEY_NAME_LABEL":"Nom de la clé d'accès","PASSKEY_NAME_PLACEHOLDER":"MacBook, iPhone, clé de sécurité…","PASSKEY_DEFAULT_NAME":"Clé d'accès","PASSKEY_ADD":"Ajouter une clé d'accès","PASSKEY_ADDED":"Clé d'accès ajoutée","PASSKEY_DELETE":"Supprimer la clé d'accès","PASSKEY_DELETED":"Clé d'accès supprimée","PASSKEY_LIST_ERROR":"Impossible de charger vos clés d'accès. Réessayez.","PASSKEY_BACKED_UP":"Synchronisée","PASSKEY_CREATED":"Ajoutée {{time}}","PASSKEY_NO_DETAILS":"Aucune information sur l'appareil","SETTINGS_SESSIONS_TITLE":"Sessions actives","SETTINGS_SESSIONS_DESC":"Appareils actuellement connectés à votre compte.","SETTINGS_SESSIONS_CURRENT":"Cet appareil","SETTINGS_SESSIONS_UNKNOWN_DEVICE":"Appareil inconnu","SETTINGS_SESSIONS_LAST_ACTIVE":"Dernière activité {{time}}","SETTINGS_SESSIONS_REVOKE":"Déconnecter","SETTINGS_SESSIONS_REVOKED":"Session déconnectée","SETTINGS_SESSIONS_REVOKE_OTHERS":"Déconnecter toutes les autres sessions","SETTINGS_SESSIONS_OTHERS_REVOKED":"Toutes les autres sessions ont été déconnectées","SETTINGS_SESSIONS_ERROR":"Impossible de charger vos sessions. Réessayez.","SETTINGS_SESSIONS_NOT_FRESH":"Pour votre sécurité, reconnectez-vous pour gérer vos sessions.","AUTH_SIGN_IN_TITLE":"Bon retour","AUTH_SIGN_UP_TITLE":"Créer un compte","AUTH_FIELD_NAME":"Nom","AUTH_FIELD_EMAIL":"E-mail","AUTH_FIELD_PASSWORD":"Mot de passe","AUTH_SUBMITTING":"Envoi…","AUTH_SIGN_IN_SUBMIT":"Se connecter","AUTH_OR_CONTINUE_WITH":"ou continuer avec","AUTH_SIGN_IN_PASSKEY":"Se connecter avec une clé d'accès","AUTH_PASSKEY_SIGN_IN_ERROR":"Impossible de se connecter avec cette clé d'accès.","AUTH_SIGN_UP_SUBMIT":"S'inscrire","AUTH_SWITCH_TO_SIGN_UP":"Besoin d'un compte ? Inscrivez-vous","AUTH_SWITCH_TO_SIGN_IN":"Vous avez déjà un compte ? Connectez-vous","AUTH_SIGN_IN_SUCCESS":"Connexion réussie","AUTH_SIGN_UP_SUCCESS":"Inscription réussie","AUTH_VALIDATION_NAME_MIN":"Le nom doit contenir au moins 2 caractères","AUTH_VALIDATION_EMAIL_INVALID":"Adresse e-mail invalide","AUTH_VALIDATION_PASSWORD_MIN":"Le mot de passe doit contenir au moins 8 caractères","AUTH_VALIDATION_PASSWORDS_MISMATCH":"Les mots de passe ne correspondent pas","AUTH_FIELD_NEW_PASSWORD":"Nouveau mot de passe","AUTH_FIELD_CONFIRM_PASSWORD":"Confirmer le mot de passe","AUTH_FORGOT_PASSWORD_LINK":"Mot de passe oublié ?","AUTH_BACK_TO_LOGIN":"Revenir à la connexion","AUTH_EMAIL_NOT_VERIFIED_TITLE":"Adresse e-mail non vérifiée","AUTH_EMAIL_NOT_VERIFIED_DESC":"Vérifiez votre adresse e-mail avant de vous connecter. Consultez le lien dans votre boîte de réception ou demandez-en un nouveau.","AUTH_RESEND_VERIFICATION":"Renvoyer l'e-mail de vérification","AUTH_VERIFICATION_EMAIL_SENT":"E-mail de vérification envoyé. Consultez votre boîte de réception.","AUTH_CHECK_INBOX_TITLE":"Consultez votre boîte de réception","AUTH_CHECK_INBOX_DESC":"Nous avons envoyé un lien de vérification à {{email}}. Ouvrez-le pour activer votre compte.","AUTH_FORGOT_TITLE":"Mot de passe oublié ?","AUTH_FORGOT_SUBTITLE":"Saisissez votre adresse e-mail pour recevoir un lien de réinitialisation.","AUTH_FORGOT_SUBMIT":"Envoyer le lien","AUTH_FORGOT_SUCCESS_TITLE":"Consultez votre boîte de réception","AUTH_FORGOT_SUCCESS_DESC":"Si un compte existe pour {{email}}, un lien de réinitialisation vous sera envoyé.","AUTH_RESET_TITLE":"Réinitialiser votre mot de passe","AUTH_RESET_SUBTITLE":"Choisissez un nouveau mot de passe pour votre compte.","AUTH_RESET_SUBMIT":"Réinitialiser le mot de passe","AUTH_RESET_SUCCESS_TITLE":"Mot de passe modifié","AUTH_RESET_SUCCESS_DESC":"Votre mot de passe a été réinitialisé. Connectez-vous avec votre nouveau mot de passe.","AUTH_RESET_SUCCESS_CTA":"Se connecter","AUTH_RESET_INVALID_TITLE":"Lien invalide ou expiré","AUTH_RESET_INVALID_DESC":"Ce lien de réinitialisation est invalide ou a déjà été utilisé. Demandez-en un nouveau ci-dessous.","AUTH_RESET_REQUEST_NEW":"Demander un nouveau lien","AUTH_VERIFY_TITLE":"Vérifier votre adresse e-mail","AUTH_VERIFY_VERIFYING":"Vérification de votre adresse e-mail…","AUTH_VERIFY_SUCCESS_TITLE":"Adresse e-mail vérifiée","AUTH_VERIFY_SUCCESS_DESC":"Votre adresse e-mail est vérifiée et vous êtes connecté.","AUTH_VERIFY_SUCCESS_CTA":"Ouvrir le tableau de bord","AUTH_VERIFY_INVALID_TITLE":"Lien de vérification invalide","AUTH_VERIFY_INVALID_DESC":"Le lien de vérification est invalide ou a expiré. Saisissez votre adresse e-mail pour en recevoir un nouveau.","AUTH_BANNED":"Votre compte est bloqué. Contactez l'assistance si vous pensez qu'il s'agit d'une erreur.","ADMIN_USERS_TITLE":"Utilisateurs","ADMIN_USERS_SUBTITLE":"Gérez les comptes, les rôles, les blocages et les sessions.","ADMIN_USERS_EMPTY":"Aucun utilisateur ne correspond aux filtres actuels.","ADMIN_SEARCH_PLACEHOLDER":"Rechercher des utilisateurs…","ADMIN_SEARCH_FIELD_LABEL":"Rechercher par","ADMIN_SEARCH_FIELD_EMAIL":"E-mail","ADMIN_SEARCH_FIELD_NAME":"Nom","ADMIN_COL_NAME":"Nom","ADMIN_COL_EMAIL":"E-mail","ADMIN_COL_ROLE":"Rôle","ADMIN_COL_2FA":"2FA","ADMIN_COL_STATUS":"Statut","ADMIN_COL_CREATED":"Créé le","ADMIN_ROLE_ADMIN":"Admin","ADMIN_ROLE_USER":"Utilisateur","ADMIN_2FA_ON":"Activée","ADMIN_2FA_OFF":"Désactivée","ADMIN_STATUS_ACTIVE":"Actif","ADMIN_STATUS_BANNED":"Bloqué","ADMIN_FILTER_ROLE":"Rôle","ADMIN_FILTER_STATUS":"Statut","ADMIN_CREATE_USER":"Créer un utilisateur","ADMIN_CREATE_USER_DESC":"Créez directement un compte. L'utilisateur peut immédiatement se connecter avec ce mot de passe.","ADMIN_CREATE_SUBMIT":"Créer un utilisateur","ADMIN_USER_CREATED_TOAST":"Utilisateur créé","ADMIN_FIELD_ROLE":"Rôle","ADMIN_ROLE_UPDATED_TOAST":"Rôle mis à jour","ADMIN_BAN_USER":"Bloquer l'utilisateur","ADMIN_UNBAN_USER":"Débloquer","ADMIN_BAN_DESC":"L'utilisateur est déconnecté de tous les appareils et ne peut pas se connecter tant qu'il est bloqué.","ADMIN_BAN_REASON_LABEL":"Motif","ADMIN_BAN_REASON_PLACEHOLDER":"Par exemple, violation des conditions d'utilisation","ADMIN_BAN_EXPIRES_LABEL":"Durée","ADMIN_BAN_EXPIRES_NEVER":"Jusqu'au déblocage","ADMIN_BAN_EXPIRES_1H":"1 heure","ADMIN_BAN_EXPIRES_1D":"24 heures","ADMIN_BAN_EXPIRES_7D":"7 jours","ADMIN_BAN_EXPIRES_30D":"30 jours","ADMIN_BAN_EXPIRES_HINT":"Le blocage expire le {{date}}","ADMIN_BAN_SUBMIT":"Bloquer l'utilisateur","ADMIN_BANNED_TOAST":"Utilisateur bloqué","ADMIN_UNBANNED_TOAST":"Utilisateur débloqué","ADMIN_SESSIONS_TITLE":"Sessions","ADMIN_SESSIONS_EMPTY":"Aucune session active.","ADMIN_SESSIONS_REVOKE":"Révoquer","ADMIN_SESSIONS_REVOKE_ALL":"Tout révoquer","ADMIN_SESSION_REVOKED_TOAST":"Session révoquée","ADMIN_SESSIONS_REVOKED_TOAST":"Toutes les sessions ont été révoquées","ADMIN_SET_PASSWORD":"Définir le mot de passe","ADMIN_SET_PASSWORD_DESC":"Définissez un nouveau mot de passe pour ce compte.","ADMIN_PASSWORD_SET_TOAST":"Mot de passe modifié","ADMIN_IMPERSONATE":"Se connecter en tant que cet utilisateur","ADMIN_IMPERSONATING":"Connecté en tant que {{name}}","ADMIN_IMPERSONATING_STOP":"Arrêter","ADMIN_REMOVE_USER":"Supprimer l'utilisateur","ADMIN_REMOVE_TITLE":"Supprimer cet utilisateur ?","ADMIN_REMOVE_DESC":"Cette action supprime définitivement le compte et déconnecte l'utilisateur de tous les appareils. Les tâches partagées restent disponibles pour les autres membres de l'organisation. Saisissez {{email}} pour confirmer.","ADMIN_REMOVE_CONFIRM_PLACEHOLDER":"Saisissez l'adresse e-mail pour confirmer","ADMIN_REMOVE_SUBMIT":"Supprimer l'utilisateur","ADMIN_REMOVED_TOAST":"Utilisateur supprimé","ADMIN_USER_TAB_DETAILS":"Détails","ADMIN_USER_TAB_TIMELINE":"Historique","AUDIT_TITLE":"Journal d'audit","AUDIT_SUBTITLE":"Consultez les événements d'authentification, d'administration et de l'organisation.","AUDIT_EMPTY":"Aucune activité ne correspond aux filtres actuels.","AUDIT_COL_ACTION":"Action","AUDIT_COL_ACTOR":"Auteur","AUDIT_COL_TARGET":"Cible","AUDIT_COL_CREATED":"Créé le","AUDIT_ACTION_FILTER":"Catégorie d'action","AUDIT_ACTOR_PLACEHOLDER":"Filtrer par identifiant de l'auteur…","AUDIT_DATE_FROM":"Date de début","AUDIT_DATE_TO":"Date de fin","AUDIT_FAMILY_ALL":"Toute l'activité","AUDIT_FAMILY_AUTH":"Authentification","AUDIT_FAMILY_ADMIN":"Administration","AUDIT_FAMILY_TODO":"Tâches","AUDIT_FAMILY_USER":"Utilisateurs","AUDIT_EXPAND":"Afficher les détails de l'événement","AUDIT_IP":"Adresse IP","AUDIT_USER_AGENT":"Agent utilisateur","AUDIT_COL_CLIENT":"Client","AUDIT_LOAD_MORE":"Charger davantage","AUDIT_RECENT_SECURITY_TITLE":"Activité de sécurité récente","AUDIT_RECENT_SECURITY_DESC":"Connexions et modifications concernant votre compte.","AUDIT_ACTION_AUTH_SIGN_IN":"Connexion","AUDIT_ACTION_AUTH_SIGN_OUT":"Déconnexion","AUDIT_ACTION_AUTH_PASSWORD_RESET":"Mot de passe réinitialisé","AUDIT_ACTION_AUTH_EMAIL_VERIFIED":"Adresse e-mail vérifiée","AUDIT_ACTION_AUTH_2FA_ENABLED":"Authentification à deux facteurs activée","AUDIT_ACTION_AUTH_2FA_DISABLED":"Authentification à deux facteurs désactivée","AUDIT_ACTION_AUTH_PASSKEY_REGISTERED":"Clé d'accès ajoutée","AUDIT_ACTION_AUTH_PASSKEY_UPDATED":"Clé d'accès modifiée","AUDIT_ACTION_AUTH_PASSKEY_DELETED":"Clé d'accès supprimée","AUDIT_ACTION_USER_CREATED":"Utilisateur créé","AUDIT_ACTION_ORG_CREATED":"Organisation créée","AUDIT_ACTION_ORG_MEMBER_INVITED":"Membre invité dans l'organisation","AUDIT_ACTION_ORG_INVITATION_ACCEPTED":"Invitation à l'organisation acceptée","AUDIT_ACTION_ORG_MEMBER_ROLE_CHANGED":"Rôle du membre modifié","AUDIT_ACTION_ORG_MEMBER_REMOVED":"Membre retiré de l'organisation","AUDIT_ACTION_USER_DELETED":"Utilisateur supprimé","AUDIT_ACTION_TODO_CREATED":"Tâche créée","AUDIT_ACTION_TODO_TOGGLED":"Tâche modifiée","AUDIT_ACTION_TODO_DELETED":"Tâche supprimée","AUDIT_ACTION_ADMIN_USER_CREATED":"Utilisateur créé","AUDIT_ACTION_ADMIN_ROLE_CHANGED":"Rôle modifié","AUDIT_ACTION_ADMIN_USER_BANNED":"Utilisateur bloqué","AUDIT_ACTION_ADMIN_USER_UNBANNED":"Utilisateur débloqué","AUDIT_ACTION_ADMIN_IMPERSONATION_STARTED":"Connexion en tant qu'un autre utilisateur démarrée","AUDIT_ACTION_ADMIN_IMPERSONATION_STOPPED":"Connexion en tant qu'un autre utilisateur arrêtée","AUDIT_ACTION_ADMIN_SESSION_REVOKED":"Session révoquée","AUDIT_ACTION_ADMIN_SESSIONS_REVOKED":"Sessions révoquées","AUDIT_ACTION_ADMIN_USER_REMOVED":"Utilisateur supprimé","AUDIT_ACTION_ADMIN_PASSWORD_SET":"Mot de passe défini","AUDIT_ACTION_BILLING_SUBSCRIPTION_CHANGED":"Abonnement mis à jour","FLAGS_TITLE":"Paramètres de fonctionnalités","FLAGS_SUBTITLE":"Activez des comportements par plateforme et contrôlez les mises à jour de l'application. Chaque modification est auditée.","FLAGS_SECTION_TITLE":"Fonctionnalités","FLAGS_SAVED_TOAST":"Paramètre enregistré","FLAGS_DELETED_TOAST":"Valeur personnalisée supprimée","FLAGS_COL_FLAG":"Fonctionnalité","FLAGS_COL_VALUE":"Valeur","FLAGS_COL_OVERRIDES":"Valeurs personnalisées","FLAGS_COL_ENABLED":"Activée","FLAGS_COL_UPDATED":"Modifiée le","FLAGS_BADGE_CODE_DEFAULT":"valeur par défaut du code","FLAGS_BADGE_OVERRIDE":"valeur personnalisée","FLAGS_BADGE_UNKNOWN":"inconnu","FLAGS_SAVE":"Enregistrer","FLAGS_EDIT_JSON":"Modifier le JSON","FLAGS_JSON_HINT":"Saisissez du JSON valide ou laissez le champ vide pour utiliser la valeur par défaut du code.","FLAGS_JSON_INVALID":"JSON invalide","FLAGS_VALUE_INVALID":"Valeur invalide pour ce type de paramètre","FLAGS_OVERRIDES":"Par plateforme","FLAGS_OVERRIDES_TITLE":"Valeurs personnalisées par plateforme","FLAGS_OVERRIDES_DESC":"Personnalisez la valeur pour certaines plateformes. Laissez une plateforme sans valeur personnalisée pour qu'elle hérite de la valeur de base.","FLAGS_OVERRIDES_SAVE_COUNT":"Enregistrer {{count}} valeur(s) personnalisée(s)","FLAGS_OVERRIDE_INHERIT":"Hériter","FLAGS_OVERRIDE_INVALID":"Valeur personnalisée invalide pour {{platform}}","FLAGS_ON":"Activé","FLAGS_OFF":"Désactivé","FLAGS_DELETE":"Supprimer","FLAGS_DELETE_TITLE":"Supprimer cette valeur personnalisée ?","FLAGS_DELETE_DESC":"La valeur personnalisée de « {{key}} » est supprimée de la base de données. Le paramètre reprend sa valeur par défaut définie dans le code.","FLAGS_NEW":"Nouveau paramètre","FLAGS_NEW_TITLE":"Créer un paramètre de fonctionnalité","FLAGS_NEW_DESC":"Ajoutez un paramètre stocké en base de données. Les clés absentes du registre du code apparaissent dans des lignes supprimables.","FLAGS_NEW_KEY_LABEL":"Clé","FLAGS_NEW_KEY_HINT":"Mots en minuscules séparés par des points ou des tirets, par exemple checkout.new-flow.","FLAGS_NEW_KEY_INVALID":"Saisissez une clé valide : des mots en minuscules séparés par des points ou des tirets.","FLAGS_NEW_DESCRIPTION_LABEL":"Description","FLAGS_NEW_KIND_LABEL":"Type","FLAGS_NEW_VALUE_LABEL":"Valeur initiale","FLAGS_NEW_ENABLED_LABEL":"Activé","FLAGS_NEW_CREATE":"Créer le paramètre","FLAGS_KIND_BOOLEAN":"Booléen","FLAGS_KIND_STRING":"Chaîne de caractères","FLAGS_KIND_NUMBER":"Nombre","FLAGS_KIND_JSON":"JSON","APP_UPDATE_TITLE":"Contrôle des mises à jour","APP_UPDATE_DESC":"Imposez ou recommandez une version minimale de l'application par plateforme. Désactivé par défaut.","APP_UPDATE_SAVED_TOAST":"Configuration des mises à jour enregistrée","APP_UPDATE_ENABLED_LABEL":"Activer le contrôle des mises à jour","APP_UPDATE_ENABLED_HINT":"Lorsque ce contrôle est désactivé, aucune mise à jour n'est exigée.","APP_UPDATE_INTERVAL_LABEL":"Intervalle de vérification en minutes","APP_UPDATE_INTERVAL_HINT":"Fréquence de vérification des mises à jour requises par les clients, de 1 à 1440 minutes.","APP_UPDATE_INTERVAL_INVALID":"L'intervalle doit être un entier compris entre 1 et 1440","APP_UPDATE_IOS":"iOS","APP_UPDATE_ANDROID":"Android","APP_UPDATE_MIN_VERSION":"Version minimale","APP_UPDATE_RECOMMENDED_VERSION":"Version recommandée","APP_UPDATE_STORE_URL":"URL de la boutique","APP_UPDATE_SAVE":"Enregistrer la configuration","APP_UPDATE_SAVING":"Enregistrement…","TWO_FACTOR_TITLE":"Authentification à deux facteurs","TWO_FACTOR_SUBTITLE_TOTP":"Saisissez le code à six chiffres de votre application d'authentification.","TWO_FACTOR_SUBTITLE_BACKUP":"Saisissez l'un de vos codes de secours. Chaque code ne fonctionne qu'une fois.","TWO_FACTOR_CODE_LABEL":"Code d'authentification","TWO_FACTOR_BACKUP_CODE_LABEL":"Code de secours","TWO_FACTOR_BACKUP_CODE_PLACEHOLDER":"Par exemple, abcde-12345","TWO_FACTOR_VERIFY":"Vérifier","TWO_FACTOR_TRUST_DEVICE":"Faire confiance à cet appareil pendant 30 jours","TWO_FACTOR_USE_BACKUP_CODE":"Utiliser un code de secours","TWO_FACTOR_USE_TOTP":"Utiliser votre application d'authentification","TWO_FACTOR_INVALID_CODE":"Ce code est invalide. Vérifiez votre application d'authentification et réessayez.","TWO_FACTOR_INVALID_BACKUP_CODE":"Ce code de secours est invalide ou a déjà été utilisé.","TWO_FACTOR_LOCKED":"Trop de tentatives échouées. Votre compte est temporairement bloqué. Réessayez plus tard.","TWO_FACTOR_CHALLENGE_EXPIRED":"Votre connexion à deux facteurs a expiré. Reconnectez-vous.","TWO_FACTOR_TOO_MANY_ATTEMPTS":"Trop de tentatives. Reconnectez-vous.","TWO_FACTOR_CARD_TITLE":"Authentification à deux facteurs","TWO_FACTOR_CARD_DESC":"Ajoutez une seconde étape de connexion avec une application d'authentification.","TWO_FACTOR_STATUS_ON":"Activée","TWO_FACTOR_STATUS_OFF":"Désactivée","TWO_FACTOR_ENABLED_HINT":"La connexion exige un code de votre application d'authentification. Conservez vos codes de secours en lieu sûr.","TWO_FACTOR_DISABLED_HINT":"Protégez votre compte avec des codes à usage unique basés sur le temps (TOTP) et des codes de secours.","TWO_FACTOR_ENABLE":"Activer l'authentification à deux facteurs","TWO_FACTOR_DISABLE":"Désactiver l'authentification à deux facteurs","TWO_FACTOR_REGENERATE_CODES":"Nouveaux codes de secours","TWO_FACTOR_ENABLE_TITLE":"Activer l'authentification à deux facteurs","TWO_FACTOR_ENABLE_PASSWORD_DESC":"Confirmez votre mot de passe pour commencer.","TWO_FACTOR_ENABLE_REVEAL_DESC":"Scannez le code QR avec votre application d'authentification ou saisissez la clé manuellement. Enregistrez maintenant vos codes de secours.","TWO_FACTOR_ENABLE_VERIFY_DESC":"Saisissez le code à six chiffres de votre application d'authentification pour terminer la configuration.","TWO_FACTOR_CONTINUE":"Continuer","TWO_FACTOR_SECRET_LABEL":"Clé de configuration","TWO_FACTOR_COPY_SECRET":"Copier la clé de configuration","TWO_FACTOR_SECRET_COPIED":"Clé de configuration copiée","TWO_FACTOR_DISABLE_TITLE":"Désactiver l'authentification à deux facteurs","TWO_FACTOR_DISABLE_DESC":"Votre compte n'exigera plus de seconde étape de connexion. Confirmez votre mot de passe pour continuer.","TWO_FACTOR_REGENERATE_TITLE":"Générer de nouveaux codes de secours","TWO_FACTOR_REGENERATE_DESC":"Cette action remplace tous les codes de secours existants. Confirmez votre mot de passe pour continuer.","TWO_FACTOR_DONE":"Terminé","TWO_FACTOR_WRONG_PASSWORD":"Mot de passe incorrect. Réessayez.","TWO_FACTOR_ENABLED_TOAST":"Authentification à deux facteurs activée","TWO_FACTOR_DISABLED_TOAST":"Authentification à deux facteurs désactivée","TWO_FACTOR_CODES_REGENERATED_TOAST":"Nouveaux codes de secours générés","TWO_FACTOR_CODES_WARNING_TITLE":"Enregistrez ces codes de secours","TWO_FACTOR_CODES_WARNING_DESC":"Ils s'affichent une seule fois. Chaque code vous connecte une fois si vous perdez l'accès à votre application d'authentification.","TWO_FACTOR_COPY_CODES":"Copier les codes","TWO_FACTOR_DOWNLOAD_CODES":"Télécharger le fichier .txt","TWO_FACTOR_CODES_COPIED":"Codes de secours copiés","BILLING_SUBTITLE":"Votre offre, son mode de facturation et où la gérer.","BILLING_CURRENT_PLAN":"Offre actuelle","BILLING_NO_PLAN":"Gratuit","BILLING_NO_PLAN_DESC":"Vous n'avez pas d'abonnement actif.","BILLING_VIA_PROVIDER":"Facturé via {{provider}}","BILLING_STATUS_ACTIVE":"Actif","BILLING_STATUS_ENDING":"Se termine","BILLING_RENEWS_ON":"Renouvellement le {{date}}","BILLING_ENDS_ON":"Accès jusqu'au {{date}}","BILLING_NO_END_DATE":"Sans date de fin","BILLING_MOBILE_MANAGED":"Acheté dans l'application mobile. Gérez-le dans vos abonnements App Store ou Google Play.","BILLING_MANAGE":"Gérer l'abonnement","BILLING_PLANS_TITLE":"Offres","BILLING_PLANS_DESC":"Le paiement affiche le prix final, taxes comprises.","BILLING_PER_MONTH":"/ mois","BILLING_PER_YEAR":"/ an","BILLING_CHOOSE_PLAN":"Choisir cette offre","BILLING_CURRENT_BADGE":"Offre actuelle","BILLING_INCLUDED":"Incluse dans votre offre","BILLING_PLAN_PRO_NAME":"Pro","BILLING_PLAN_PRO_DESC":"Accès payant pour votre compte, sur le web et sur mobile.","BILLING_PROVIDER_STRIPE":"Stripe","BILLING_PROVIDER_POLAR":"Polar","BILLING_PROVIDER_REVENUECAT":"l'App Store ou Google Play","BILLING_DISABLED_TITLE":"La facturation n'est pas configurée","BILLING_DISABLED_DESC":"Aucun prestataire de paiement n'est encore activé sur ce serveur.","BILLING_EMPTY_TITLE":"Aucune offre disponible","BILLING_EMPTY_DESC":"Les offres apparaissent ici dès qu'un prix est configuré pour le prestataire de paiement.","BILLING_ERROR_TITLE":"Impossible de charger la facturation","BILLING_ERROR_DESC":"Vérifiez votre connexion et réessayez.","BILLING_RETRY":"Réessayer","BILLING_CHECKOUT_SUCCESS_TITLE":"Paiement reçu","BILLING_CHECKOUT_SUCCESS_DESC":"Nous confirmons votre abonnement auprès du prestataire de paiement. Cela prend généralement quelques secondes.","BILLING_CHECKOUT_CONFIRMED":"Votre abonnement est actif.","BILLING_CHECKOUT_CANCELED":"Paiement annulé. Aucun montant n'a été débité.","LANGUAGE_SWITCHER_LABEL":"Langue","LANGUAGE_ENGLISH":"Anglais","LANGUAGE_GERMAN":"Allemand","LANGUAGE_FRENCH":"Français","COOKIE_CONSENT_TITLE":"Paramètres des cookies","COOKIE_CONSENT_DESCRIPTION":"Nous utilisons des cookies essentiels au fonctionnement de l'application. Avec votre accord, nous utilisons aussi des cookies facultatifs pour améliorer votre expérience.","COOKIE_CONSENT_LEGAL_NOTE":"Consultez notre","COOKIE_CONSENT_COOKIE_POLICY":"politique relative aux cookies","COOKIE_CONSENT_AND":"et notre","COOKIE_CONSENT_PRIVACY_POLICY":"politique de confidentialité","COOKIE_CONSENT_PREF_ESSENTIAL":"Essentiels","COOKIE_CONSENT_PREF_ESSENTIAL_DESC":"Nécessaires au fonctionnement de l'application. Toujours activés.","COOKIE_CONSENT_PREF_ANALYTICS":"Analyse","COOKIE_CONSENT_PREF_ANALYTICS_DESC":"Nous aide à mesurer l'utilisation du produit pour l'améliorer.","COOKIE_CONSENT_PREF_MARKETING":"Marketing","COOKIE_CONSENT_PREF_MARKETING_DESC":"Utilisés pour proposer des contenus et des offres plus pertinents.","COOKIE_CONSENT_PREF_REPLAY":"Enregistrement des sessions","COOKIE_CONSENT_PREF_REPLAY_DESC":"Enregistre des sessions anonymisées pour nous aider à diagnostiquer les problèmes.","COOKIE_CONSENT_REJECT_ALL":"Tout refuser","COOKIE_CONSENT_ACCEPT_ALL":"Tout accepter","COOKIE_CONSENT_SAVE_PREFERENCES":"Enregistrer les préférences","COOKIE_CONSENT_MANAGE_PREFERENCES":"Gérer les préférences","FILES_PAGE_TITLE":"Fichiers","FILES_PAGE_SUBTITLE":"Importez et consultez les fichiers partagés avec votre organisation.","FILES_TAB_BROWSE":"Parcourir","FILES_TAB_SEARCH":"Rechercher","FILES_TAB_TRASH":"Corbeille","FILES_DETAILS_TITLE":"Détails du fichier","FILES_COMPOSER_PLACEHOLDER":"Déposez des fichiers ici ou ajoutez une note à leur sujet…","FILES_COMPOSER_HINT":"Glissez-déposez, collez ou","FILES_COMPOSER_ADD":"ajoutez des fichiers","FILES_COMPOSER_UPLOAD":"Importer","FILES_COMPOSER_UPLOADING":"Importation…","FILES_COMPOSER_CLEAR":"Effacer","FILES_COMPOSER_LIMIT":"Jusqu’à {{count}} fichiers · images {{imageSize}}, documents {{documentSize}}, ZIP {{archiveSize}}","FILES_REMOVE":"Retirer","FILES_RETRY":"Réessayer","FILES_TAB_LIBRARY":"Bibliothèque","FILES_STORAGE_LABEL":"Stockage","FILES_STORAGE_USAGE":"{{used}} stockés","FILES_STORAGE_COUNT":"{{count}} fichiers","FILES_EMPTY_TITLE":"Aucun fichier pour l'instant","FILES_EMPTY_DESC":"Importez votre premier fichier avec le formulaire ci-dessus.","FILES_OPEN":"Ouvrir","FILES_ACTIONS":"Actions","FILES_DOWNLOAD":"Télécharger","FILES_COPY":"Copier","FILES_RENAME":"Renommer","FILES_MOVE":"Déplacer","FILES_DELETE":"Supprimer","FILES_COPY_TITLE":"Copier vers","FILES_RENAME_TITLE":"Renommer le fichier","FILES_MOVE_TITLE":"Déplacer vers","FILES_DELETE_TITLE":"Supprimer le fichier","FILES_NEW_NAME":"Nouveau nom","FILES_DESTINATION":"Clé de destination","FILES_CANCEL":"Annuler","FILES_CONFIRM":"Confirmer","FILES_SHARE":"Partager","FILES_UPLOAD_LINK":"Lien d’importation","FILES_SHARE_LINK":"Lien de partage","FILES_EXPIRES_AFTER":"Expire après","FILES_EXPIRY_5_MIN":"5 minutes","FILES_EXPIRY_1_HOUR":"1 heure","FILES_EXPIRY_1_DAY":"1 jour","FILES_EXPIRY_7_DAYS":"7 jours","FILES_OPEN_AS":"Ouvrir en tant que","FILES_INLINE":"Aperçu","FILES_PUBLIC_LINK_HINT":"Ce fournisseur renvoie un lien public permanent sans expiration.","FILES_COPIED":"Copié","FILES_GENERATE_LINK":"Générer le lien","FILES_LINK_LABEL":"Lien du fichier","FILES_SEARCH_KEYS":"Rechercher des noms de fichiers…","FILES_SEARCH_SUBSTRING":"Contient","FILES_SEARCH_GLOB":"Motif avec caractères génériques","FILES_SEARCH_REGEX":"Expression régulière","FILES_SEARCH_EXACT":"Nom exact","FILES_CASE_INSENSITIVE":"Ignorer la casse","FILES_MATCH_COUNT":"Résultats : {{count}}","FILES_UNKNOWN_TYPE":"Type inconnu","FILES_TRASH_COUNT":"Fichiers dans la corbeille : {{count}}","FILES_EMPTY_TRASH":"Vider la corbeille","FILES_LOADING":"Chargement…","FILES_TRASH_EMPTY":"La corbeille est vide.","FILES_RESTORE":"Restaurer","FILES_DELETE_FOREVER":"Supprimer définitivement","FILES_PURGE_TITLE":"Supprimer définitivement ?","FILES_EMPTY_TRASH_TITLE":"Vider la corbeille ?","FILES_PURGE_DESCRIPTION":"Le fichier {{key}} sera définitivement supprimé. Cette action est irréversible.","FILES_EMPTY_TRASH_DESCRIPTION":"Tous les fichiers de la corbeille seront définitivement supprimés. Cette action est irréversible.","FILES_PDF_PREVIEW":"Aperçu PDF","FILES_IMAGE_PREVIEW":"Aperçu de l’image","FILES_NO_PREVIEW":"Aucun aperçu disponible","FILES_PREVIEW_ERROR":"Impossible de charger le fichier. Fermez l’aperçu et réessayez.","FILES_ACTION_ERROR":"Impossible de terminer cette action sur le fichier. Réessayez.","FILES_SHARE_ERROR":"Impossible de générer le lien. Réessayez.","FILES_CLIPBOARD_ERROR":"Impossible de copier le lien. Sélectionnez-le et copiez-le manuellement.","FILES_SEARCH_ERROR":"Impossible de rechercher les fichiers. Vérifiez votre motif de recherche et réessayez.","FILES_TRASH_LOAD_ERROR":"Impossible de charger la corbeille. Réessayez.","FILES_TRASH_ACTION_ERROR":"Impossible de modifier la corbeille. Réessayez.","SEO_DEFAULT_TITLE":"Acme Inc. · Projet de départ Cloudflare pour le web et le mobile","SEO_DEFAULT_DESC":"Un modèle TanStack Start prêt pour la production sur Cloudflare Workers avec authentification, stockage et traduction.","SEO_HOME_TITLE":"Acme Inc. · Un Worker Cloudflare pour le web et le mobile","SEO_HOME_DESC":"Un starter full-stack avec TanStack Start et Expo sur un Cloudflare Worker. Auth, fichiers R2, Postgres, paiements, IA et MCP, et un aperçu par PR.","SEO_LOGIN_TITLE":"Connexion · Acme Inc.","SEO_LOGIN_DESC":"Connectez-vous à votre compte Acme Inc.","SEO_SIGNUP_TITLE":"Créer un compte · Acme Inc.","SEO_SIGNUP_DESC":"Créez votre compte Acme Inc.","SEO_FORGOT_PASSWORD_TITLE":"Mot de passe oublié · Acme Inc.","SEO_FORGOT_PASSWORD_DESC":"Demandez un lien de réinitialisation pour votre compte Acme Inc.","SEO_RESET_PASSWORD_TITLE":"Réinitialiser le mot de passe · Acme Inc.","SEO_RESET_PASSWORD_DESC":"Choisissez un nouveau mot de passe pour votre compte Acme Inc.","SEO_VERIFY_EMAIL_TITLE":"Vérifier l'adresse e-mail · Acme Inc.","SEO_VERIFY_EMAIL_DESC":"Vérifiez l'adresse e-mail de votre compte Acme Inc.","SEO_TWO_FACTOR_TITLE":"Authentification à deux facteurs · Acme Inc.","SEO_TWO_FACTOR_DESC":"Confirmez votre identité avec un code d'authentification à deux facteurs.","SEO_PRIVACY_TITLE":"Confidentialité · Acme Inc.","SEO_PRIVACY_DESC":"Comment Acme Inc. collecte, utilise et protège les données personnelles.","SEO_TERMS_TITLE":"Conditions d'utilisation · Acme Inc.","SEO_TERMS_DESC":"Les conditions d'utilisation de l'app Acme Inc.","OAUTH_CONSENT_TITLE":"Connecter un agent IA","OAUTH_CONSENT_SUBTITLE":"{{client}} demande l'accès à votre compte. Vérifiez ce qu'il pourra faire avant d'accepter.","OAUTH_CONSENT_CLIENT_FALLBACK":"Cette application","OAUTH_CONSENT_MISSING_TITLE":"Aucune demande d'autorisation","OAUTH_CONSENT_MISSING_DESC":"Ouvrez cette page depuis l'application qui a demandé l'accès. Il n'y a rien à autoriser pour le moment.","OAUTH_CONSENT_ERROR_TITLE":"Une erreur est survenue","OAUTH_CONSENT_ERROR_DESC":"Impossible de terminer l'autorisation. Revenez en arrière et essayez à nouveau de vous connecter.","OAUTH_CONSENT_SCOPES_LABEL":"Ce que l'agent pourra faire :","OAUTH_CONSENT_SCOPE_UNKNOWN_DESC":"Ce client demande une permission inconnue.","OAUTH_CONSENT_SCOPE_DATA_READ_TITLE":"Lire vos données","OAUTH_CONSENT_SCOPE_DATA_READ_DESC":"Consulter vos tâches et vos fichiers via l'API. Cet accès en lecture seule ne permet aucune création ni modification.","OAUTH_CONSENT_SCOPE_DATA_WRITE_TITLE":"Créer des brouillons","OAUTH_CONSENT_SCOPE_DATA_WRITE_DESC":"Proposer de nouvelles tâches et des plans sous forme de brouillons. Les brouillons restent en attente jusqu'à votre vérification et votre confirmation dans l'application. L'agent ne modifie jamais les données actives sans votre accord.","OAUTH_CONSENT_SCOPE_OPENID_TITLE":"Identité de connexion","OAUTH_CONSENT_SCOPE_OPENID_DESC":"Vérifier votre identité lors de la connexion à l'agent.","OAUTH_CONSENT_SCOPE_PROFILE_TITLE":"Profil de base","OAUTH_CONSENT_SCOPE_PROFILE_DESC":"Voir votre nom et votre adresse e-mail.","OAUTH_CONSENT_SCOPE_OFFLINE_ACCESS_TITLE":"Rester connecté","OAUTH_CONSENT_SCOPE_OFFLINE_ACCESS_DESC":"Renouveler l'accès en votre absence pour éviter de devoir vous reconnecter à chaque fois.","OAUTH_CONSENT_ACCEPT":"Autoriser l'accès","OAUTH_CONSENT_DENY":"Refuser","OAUTH_CONSENT_SUBMITTING":"Traitement…","NAV_INTEGRATIONS":"Intégrations","INTEGRATIONS_SUBTITLE":"Connectez des agents IA, des webhooks, et voyez ce qu'ils ont fait.","INTEGRATIONS_TAB_CONNECTIONS":"Agents connectés","INTEGRATIONS_TAB_WEBHOOK":"Webhook","INTEGRATIONS_TAB_ACTIVITY":"Activité des agents","PROPOSAL_BANNERS_TITLE":"Propositions d'agents","PROPOSAL_PENDING_FROM":"Proposé par {{clientId}}","PROPOSAL_APPLY":"Appliquer","PROPOSAL_DISMISS":"Ignorer","PROPOSAL_RESOLVED_TOAST":"Proposition traitée","CONNECTIONS_EMPTY_TITLE":"Aucun agent connecté pour le moment","CONNECTIONS_EMPTY_DESC":"Exécutez la commande claude mcp add depuis votre terminal pour connecter Claude Code, ou ajoutez l'URL MCP dans le mode développeur de ChatGPT.","CONNECTIONS_ACCESS_READ":"Lecture seule","CONNECTIONS_ACCESS_READ_WRITE":"Lecture + écriture (brouillons)","CONNECTIONS_STATUS_ACTIVE":"Actif","CONNECTIONS_STATUS_DISABLED":"Désactivé","CONNECTIONS_LAST_USED":"Dernière utilisation {{when}}","CONNECTIONS_REVOKE":"Révoquer","INTEGRATIONS_CONNECTION_REVOKED_TOAST":"Connexion révoquée","WEBHOOK_NONE_TITLE":"Aucun webhook enregistré","WEBHOOK_NONE_DESC":"Enregistrez l'endpoint HTTPS de votre bot pour recevoir des événements de réveil signés.","WEBHOOK_URL_LABEL":"URL de l'endpoint (HTTPS)","WEBHOOK_EVENTS_LABEL":"Événements","WEBHOOK_REGISTER":"Enregistrer","WEBHOOK_SAVE":"Enregistrer les modifications","WEBHOOK_SECRET_ONCE_TITLE":"Copiez votre secret de signature maintenant","WEBHOOK_SECRET_ONCE_DESC":"Affiché une seule fois. Votre bot en a besoin pour vérifier les signatures (sha256=HMAC).","WEBHOOK_ROTATE":"Renouveler le secret","WEBHOOK_TEST":"Envoyer un événement de test","WEBHOOK_DELETE":"Supprimer le webhook","WEBHOOK_ACTIVE_LABEL":"Actif","WEBHOOK_FAILURES":"Échecs consécutifs : {{count}}","WEBHOOK_DELIVERIES_TITLE":"Livraisons récentes","WEBHOOK_DELIVERY_SENT":"Envoyé","WEBHOOK_DELIVERY_FAILED":"Échoué","ACTIVITY_EMPTY":"Aucune activité d'agent enregistrée pour le moment.","FILES_FILE_NAME":"Nom du fichier","FILES_UPLOAD_DONE":"Téléversé","FILES_UPLOAD_CANCELLED":"Annulé","FILES_UPLOAD_RETRY":"Interrompu. Relancez pour reprendre.","FILES_UPLOAD_TOO_LARGE":"Ce fichier dépasse la limite de stockage.","DOCUMENT_TEXT":"Texte du document","DOCUMENT_PENDING":"Préparation du texte","DOCUMENT_PENDING_BROWSER":"Texte pas encore préparé","DOCUMENT_CONVERT":"Préparer le texte du document","DOCUMENT_CONVERTING":"Préparation du texte sur cet appareil…","DOCUMENT_BROWSER_GUIDANCE":"Préparez le texte sur cet appareil pour la recherche et l’assistant. Gardez cet onglet ouvert. Vous pourrez revenir ici pour terminer plus tard.","DOCUMENT_CONVERSION_RETRY":"La préparation du texte a été interrompue. Réessayez ; le fichier original est déjà enregistré.","DOCUMENT_READY":"Texte prêt","DOCUMENT_NEEDS_OCR":"PDF numérisé. Reconnaissance de texte nécessaire.","DOCUMENT_ENCRYPTED":"Document protégé par mot de passe","DOCUMENT_UNSUPPORTED":"Conversion de texte indisponible pour ce format.","DOCUMENT_MALFORMED":"Le document est illisible.","DOCUMENT_RESOURCE_LIMIT":"Le document est trop complexe à convertir.","DOCUMENT_TEXT_TOO_LARGE_BEFORE_UPLOAD":"Le texte de ce document dépasse {{limit}}. Il sera stocké, mais pas indexé.","DOCUMENT_TEXT_TOO_LARGE":"Le texte de ce document dépasse {{limit}}. L’original est stocké et téléchargeable, mais son texte ne sera pas indexé.","DOCUMENT_TOO_LARGE":"Stocké. Trop volumineux pour la conversion.","DOCUMENT_SOURCE_MISSING":"Le fichier original est indisponible.","DOCUMENT_SOURCE_CHANGED":"Le fichier original a changé.","DOCUMENT_UNAVAILABLE":"Le texte du document est indisponible.","DOCUMENT_LOADING":"Chargement du texte…","DOCUMENT_PAGES":"Pages du document","DOCUMENT_PREVIOUS":"Précédent","DOCUMENT_NEXT":"Suivant","DOCUMENT_CHUNKS":"Sections {{start}}–{{end}} sur {{total}}","DOCUMENT_ORIGINAL_AVAILABLE":"Vous pouvez toujours télécharger le fichier original.","DOCUMENT_ASK_ASSISTANT":"Interroger l’assistant sur ce fichier","DOCUMENT_ASSISTANT_PROMPT":"Lis le document {{fileId}} ({{name}}) avec document_read. Résume-le et demande ma prochaine étape. Si je demande un plan, utilise draft_task_plan et attends mon approbation et mon application.","FILES_PREVIEW_BOUNDED":"L’aperçu affiche les premiers 64 Ko. Téléchargez le fichier complet."}