Files
pieced-portal/src/messages/fr.json
admin 6f42b56ad5
All checks were successful
Build and Push / build (push) Successful in 1m26s
Threema package: relay-managed channel users + provisioning endpoints
2026-05-17 11:10:40 +02:00

548 lines
33 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.

{
"common": {
"appName": "PieCed",
"tagline": "Plateforme IA",
"login": "Connexion",
"logout": "Déconnexion",
"dashboard": "Tableau de bord",
"admin": "Admin",
"loading": "Chargement…",
"language": "Langue",
"cancel": "Annuler",
"save": "Enregistrer",
"error": "Une erreur est survenue",
"register": "S'inscrire",
"team": "Équipe",
"settings": "Paramètres",
"optional": "facultatif",
"support": "Support"
},
"login": {
"title": "Portail PieCed",
"subtitle": "Connectez-vous pour gérer votre assistant IA",
"button": "Continuer avec ZITADEL",
"footer": "Hébergé on-premises en Suisse",
"noAccount": "Pas encore de compte ?",
"register": "Créer un compte"
},
"register": {
"title": "Créer votre compte",
"subtitle": "Configurez votre assistant IA hébergé en Suisse",
"companyName": "Nom de l'entreprise",
"companyNamePlaceholder": "Exemple SA",
"givenName": "Prénom",
"familyName": "Nom",
"email": "Adresse e-mail",
"submit": "S'inscrire",
"hasAccount": "Déjà un compte ?",
"footer": "Vos données sont hébergées exclusivement on-premises en Suisse.",
"successTitle": "Inscription reçue",
"successDescription": "Vous recevrez un e-mail d'invitation avec un lien pour définir votre mot de passe et vérifier votre adresse e-mail. Ensuite, vous pourrez vous connecter et configurer votre assistant IA.",
"goToLogin": "Aller à la connexion",
"duplicateDomain": "Un compte pour le domaine de courriel {domain} est déjà enregistré. Veuillez contacter l'administrateur de votre entreprise pour être invité, ou contactez le support PieCed IT si vous pensez qu'il s'agit d'une erreur.",
"individualToggle": "S'inscrire en tant que particulier",
"individualHint": "Cochez cette case si vous ne vous inscrivez pas au nom d'une entreprise. Votre compte sera configuré comme espace de travail personnel.",
"accountTypeLabel": "Type de compte",
"personalCardTitle": "Particulier",
"personalCardDescription": "Pour vous.",
"companyCardTitle": "Entreprise",
"companyCardDescription": "Pour votre entreprise ou équipe."
},
"onboarding": {
"loading": "Chargement du statut…",
"welcomeTitle": "Configurer votre assistant IA",
"welcomeDescription": "En quelques étapes, vous aurez votre propre assistant IA — hébergé exclusivement en Suisse, entièrement sous votre contrôle.",
"welcomeFeature_swissHosted": "Hébergé on-premises en Suisse — vos données ne quittent jamais le pays",
"welcomeFeature_privacy": "Aucune donnée partagée avec des tiers — confidentialité totale",
"welcomeFeature_customizable": "Personnalité, paquets et intégrations entièrement personnalisables",
"getStarted": "Commencer",
"configureTitle": "Configurer votre assistant",
"configureDescription": "Donnez un nom et une personnalité à votre assistant. Vous pouvez toujours les modifier par la suite.",
"agentName": "Nom de l'agent",
"soulMd": "Personnalité (SOUL.md)",
"soulMdHint": "Définit le comportement de votre assistant. Format Markdown. Modifiable ultérieurement.",
"agentsMd": "Instructions de l'agent (AGENTS.md)",
"agentsMdHint": "Définit ce que votre assistant fait au démarrage de la session. Optionnel — les paramètres par défaut conviennent à la plupart des configurations.",
"toolsMd": "Outils disponibles (TOOLS.md)",
"toolsMdHint": "Généré automatiquement en fonction des paquets sélectionnés. Ce fichier est géré automatiquement.",
"advancedConfig": "Configuration avancée",
"packages": "Paquets",
"packagesHint": "Intégrations optionnelles. Les paquets nécessitant des identifiants les demanderont en ligne. Vous pouvez aussi les activer plus tard.",
"billingTitle": "Informations de facturation",
"billingDescription": "Nous avons besoin de votre adresse de facturation. Un prestataire de paiement sera intégré à l'avenir.",
"billingCompany": "Entreprise",
"billingStreet": "Rue",
"billingPostalCode": "Code postal",
"billingCity": "Ville",
"billingCountry": "Pays",
"billingNotes": "Remarques",
"billingNotesPlaceholder": "Remarques sur la facturation (numéro de commande, numéro de TVA, mode de paiement préféré, etc.)",
"confirmTitle": "Vérifier et envoyer",
"confirmDescription": "Veuillez vérifier votre configuration. Votre demande sera examinée par notre équipe avant la mise en service.",
"confirmNote": "Après l'envoi, notre équipe examinera votre demande et vos informations de facturation. Vous recevrez l'accès après approbation — généralement dans un délai d'un jour ouvrable.",
"credentialsProvided": "Identifiants fournis",
"submitRequest": "Envoyer la demande",
"back": "Retour",
"next": "Suivant",
"pendingTitle": "Demande envoyée",
"pendingDescription": "Votre demande a été envoyée et est en cours d'examen par notre équipe. Vous recevrez l'accès après approbation — généralement dans un délai d'un jour ouvrable.",
"rejectedTitle": "Demande non approuvée",
"rejectedDescription": "Malheureusement, votre demande n'a pas été approuvée. Veuillez nous contacter pour plus d'informations.",
"provisioningTitle": "Configuration de votre instance",
"provisioningDescription": "Votre assistant IA est en cours de mise en service. Cela prend généralement quelques minutes.",
"phase": "Phase",
"readyTitle": "Votre assistant est prêt !",
"readyDescription": "Votre assistant IA a été mis en service et est actif. Vous pouvez maintenant le gérer depuis le tableau de bord.",
"goToDashboard": "Aller au tableau de bord",
"submittedAt": "Soumis",
"instanceName": "Nom de l'instance",
"instanceNamePlaceholder": "ex. Production, Dev, Ventes",
"instanceNameHint": "Nom lisible facultatif pour distinguer cette instance des autres sur votre tableau de bord. Laisser vide pour utiliser le nom de votre entreprise.",
"validationError": "Veuillez corriger les erreurs avant l'envoi.",
"validationErrorsTitle": "Certains champs obligatoires manquent ou sont invalides :",
"reviewInstanceDefault": "(par défaut — utilise le nom de l'entreprise)",
"reviewNoPackages": "Aucun sélectionné",
"reviewBillingTo": "Facturer à",
"reviewContactEmail": "E-mail de contact",
"editRequestTitle": "Modifier votre demande",
"editRequestDescription": "Ajustez la configuration avant que notre équipe ne l'examine.",
"editRequest": "Modifier",
"cancelRequest": "Annuler la demande",
"cancelRequestConfirm": "Oui, annuler la demande",
"cancelConfirmRequestTitle": "Annuler cette demande ?",
"cancelConfirmRequestDescription": "Votre demande en attente sera marquée comme annulée et retirée de la file. Vous pouvez soumettre une nouvelle demande à tout moment.",
"cancelFailed": "Impossible d'annuler la demande.",
"cancelledTitle": "Demande annulée",
"cancelledDescription": "Vous avez annulé cette demande avant son traitement. Aucune instance n'a été créée.",
"dismiss": "Masquer",
"dismissFailed": "Impossible de masquer.",
"rejectionReason": "Motif indiqué",
"saveChanges": "Enregistrer les modifications",
"billingVatNumber": "Numéro de TVA",
"billingVatHelp": "Votre identifiant TVA enregistré. Si votre entreprise est exonérée de TVA, laissez vide et précisez dans les notes.",
"billingNotesPlaceholderPersonal": "Tout ce que nous devons savoir — moyen de paiement préféré, référence de facturation, etc."
},
"dashboard": {
"title": "Tableau de bord",
"welcome": "Bienvenue, {name}",
"instanceStatus": "Statut de l'instance",
"usage": "Utilisation",
"packages": "Paquets",
"noInstance": "Aucune instance provisionnée.",
"comingSoon": "Vue détaillée à venir dans la Session 6.2",
"noInstanceDescription": "Configurez votre instance d'assistant IA pour commencer avec PieCed IT.",
"manage": "Gérer l'instance et les paquets",
"instances": "Vos instances",
"inflightRequests": "Demandes en cours",
"createInstance": "Créer une nouvelle instance",
"createInstanceDescription": "Provisionner une instance supplémentaire d'assistant IA pour votre organisation. La demande sera examinée par un administrateur avant la création de l'instance.",
"noAccessNoInstances": "Votre organisation n'a pas encore d'instances. Demandez au propriétaire de l'organisation d'en configurer une.",
"noAssignmentsTitle": "Aucune instance attribuée",
"noAssignmentsDescription": "Votre organisation possède des instances, mais aucun accès ne vous a été accordé. Demandez au propriétaire de votre organisation de vous attribuer une instance.",
"noInstancesYetTitle": "Pas encore d'instances",
"noInstancesYetDescription": "Votre organisation ne possède pas encore d'instances. Demandez au propriétaire de votre organisation d'en configurer une."
},
"tenantDetail": {
"agent": "Agent",
"packages": "Paquets",
"workspaceFiles": "Fichiers workspace",
"notFound": "Locataire non trouvé.",
"usage": "Utilisation et coûts",
"provisioned": "Provisionné",
"assignedUsers": "Utilisateurs attribués",
"subscriptionTitle": "Abonnement",
"subscriptionDescriptionActive": "Annulez votre abonnement si vous n'avez plus besoin de cet assistant. Vos données seront conservées et vous pourrez reprendre à tout moment.",
"subscriptionDescriptionSuspended": "Votre abonnement est annulé. Reprenez pour remettre l'assistant en ligne.",
"cancelSubscription": "Annuler l'abonnement",
"cancelSubscriptionConfirm": "Oui, annuler",
"resumeSubscription": "Reprendre l'abonnement",
"cancelConfirmTitle": "Annuler cet abonnement ?",
"cancelConfirmDescription": "Votre assistant sera indisponible. Vous pouvez reprendre à tout moment — vos données sont préservées.",
"cancelConfirmBullet1": "Les fichiers de l'espace de travail (SOUL.md, AGENTS.md) sont conservés",
"cancelConfirmBullet2": "Les identifiants des packages restent stockés",
"cancelConfirmBullet3": "Les informations de facturation sont conservées",
"subscriptionUpdateFailed": "Impossible de mettre à jour l'abonnement.",
"suspendedTitle": "Abonnement annulé",
"suspendedDescription": "Votre assistant est en pause. La configuration et les données sont préservées. Utilisez le contrôle Reprendre en bas de cette page pour le remettre en ligne.",
"requestReactivation": "Demander la réactivation",
"requestReactivationConfirmTitle": "Demander la réactivation ?",
"requestReactivationConfirmDescription": "Un administrateur examinera votre demande et réactivera votre locataire. Vous recevrez un e-mail dès que la demande sera approuvée.",
"requestReactivationConfirm": "Envoyer la demande",
"cancelResumeRequest": "Annuler la demande",
"resumeRequestPendingTitle": "Demande de réactivation en attente",
"resumeRequestPendingDescription": "Soumise {when}. Un administrateur l'examinera sous peu.",
"resumeRequestPendingNoteAdmin": "Un propriétaire a demandé la réactivation ; vous pouvez reprendre directement ci-dessus ou traiter la demande depuis la file d'attente d'administration.",
"cancelConfirmRetentionWarning": "Vos données sont conservées pendant 60 jours après l'annulation. Passé ce délai, toutes les données du locataire — configuration, secrets, conversations et fichiers — seront définitivement supprimées.",
"suspendedSince": "Suspendu le {date}",
"suspendedDeletionIn": "suppression des données dans {days, plural, one {# jour} other {# jours}} ({date})",
"suspendedDeletionImminent": "les données sont en cours de suppression",
"requestReactivationNoteLabel": "Note pour notre équipe",
"requestReactivationNotePlaceholder": "Tout ce que notre équipe devrait savoir — par exemple, pourquoi vous voulez réactiver, urgence, etc."
},
"usage": {
"inputTokens": "Tokens d'entrée",
"outputTokens": "Tokens de sortie",
"totalSpend": "Dépenses totales",
"totalCost": "Coût total",
"budget": "Budget",
"noLimit": "Pas de limite",
"last30Days": "30 derniers jours",
"noData": "Aucune donnée d'utilisation disponible.",
"dailyBreakdown": "Détail journalier",
"requests": "requêtes",
"budgetEdit": "Modifier",
"budgetEditTitle": "Définir un budget",
"budgetEditDescription": "Limitez la dépense des assistants de ce locataire avant que les requêtes ne soient refusées.",
"budgetModeUnlimited": "Aucune limite",
"budgetModeUnlimitedDescription": "Dépense libre, sans plafond.",
"budgetModeCapped": "Définir un plafond",
"budgetModeCappedDescription": "Refuser les requêtes une fois ce montant atteint.",
"budgetAmount": "Montant",
"budgetResetCadence": "Réinitialisation",
"budgetCadence_30d": "Tous les 30 jours",
"budgetCadence_1mo": "Mensuelle",
"budgetCadence_1y": "Annuelle",
"budgetInvalid": "Veuillez saisir un montant positif.",
"budgetSaveFailed": "Impossible d'enregistrer le budget. Veuillez réessayer."
},
"workspace": {
"save": "Enregistrer",
"placeholder": "Saisir le contenu pour {file}…",
"readonlyNote": "Ce fichier est généré automatiquement et ne peut pas être modifié manuellement.",
"seedingNote": "Les fichiers workspace sont initialisés au premier démarrage. Une mise à jour sur une instance existante déclenche une mise à jour du ConfigMap et un redémarrage du pod."
},
"packages": {
"categories": {
"channels": "Canaux",
"skills": "Compétences",
"core": "Cœur"
},
"enable": "Activer",
"disable": "Désactiver",
"enableAndSave": "Activer et enregistrer",
"configure": "Configurer",
"requiresApiKey": "Nécessite une clé API",
"missingFields": "Veuillez remplir tous les champs obligatoires.",
"status": {
"pending": "En attente",
"active": "Actif",
"error": "Erreur"
},
"telegram": {
"description": "Connectez votre assistant IA à un bot Telegram.",
"botTokenLabel": "Token du bot Telegram",
"botTokenPlaceholder": "123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11",
"instructions": "1. Ouvrez @BotFather sur Telegram\n2. Envoyez /newbot et suivez les instructions\n3. Copiez le token du bot",
"disclaimer": "Je confirme que je possède ce bot Telegram et autorise PieCed IT à le connecter à mon assistant IA."
},
"discord": {
"description": "Connectez votre assistant IA à un serveur Discord via un bot.",
"botTokenLabel": "Token du bot Discord",
"botTokenPlaceholder": "MTAxNjQ0OTk2NjAz...",
"instructions": "1. Allez sur discord.com/developers/applications\n2. Créez une nouvelle application et ajoutez un bot\n3. Copiez le token du bot",
"disclaimer": "Je confirme que je possède ce bot Discord et autorise PieCed IT à le connecter à mon assistant IA.",
"appIdLabel": "ID d'application Discord",
"appIdPlaceholder": "ID numérique de 1819 chiffres depuis le Developer Portal"
},
"statusEnabled": "activé",
"statusDisabled": "désactivé",
"coreHeartbeat": {
"description": "Exécution périodique de l'agent toutes les 30 minutes pour vérifier votre boîte mail, votre agenda et d'autres sources configurées, et vous notifier de manière proactive lorsqu'une attention est requise. Sans cette option, l'assistant ne répond que lorsque vous lui écrivez."
},
"coreCron": {
"description": "Permet à l'assistant d'exécuter des tâches programmées (briefings quotidiens, rappels récurrents, rapports périodiques). Désactivé par défaut. Lorsqu'il est désactivé, l'outil cron reste disponible mais aucune tâche planifiée ne s'exécute."
},
"coreActiveMemory": {
"description": "Permet à l'assistant de se rappeler des préférences stables, des habitudes récurrentes et du contexte à long terme issu de conversations passées. Utilise un tour de sous-agent supplémentaire par message entrant pour interroger la mémoire. Uniquement en messages directs. Légère consommation de tokens supplémentaire en échange de continuité et de personnalisation."
},
"coreVoice": {
"description": "Reconnaissance vocale sur les notes vocales entrantes et synthèse vocale sur les réponses, via la passerelle PieCed LiteLLM pour un suivi du coût audio par tenant. L'intégration runtime arrive dans la prochaine version de la plateforme ; basculer le commutateur enregistre dès maintenant la préférence."
},
"gitCli": {
"description": "Opérations git en ligne de commande autonomes (clone, commit, branch, diff, log, status). Pour les dépôts privés, configurez les identifiants dans votre espace de travail."
},
"github": {
"description": "Interagissez avec les dépôts GitHub via la CLI gh — issues, pull requests, exécutions CI, releases, gists. Nécessite un jeton d'accès personnel.",
"tokenLabel": "Jeton d'accès personnel GitHub",
"tokenPlaceholder": "ghp_… ou github_pat_…",
"instructions": "1. Ouvrez https://github.com/settings/tokens\n2. Générez un jeton d'accès personnel fin avec les portées de dépôt souhaitées\n3. Copiez le jeton (il n'est affiché qu'une fois)"
},
"gitea": {
"description": "Interagissez avec une instance Gitea — dépôts, issues, pull requests, releases. Par défaut, l'instance Gitea PieCed à git.c5ai.ch.",
"tokenLabel": "Jeton d'accès Gitea",
"tokenPlaceholder": "Généré sous Paramètres → Applications",
"instructions": "1. Connectez-vous à votre instance Gitea (par défaut https://git.c5ai.ch)\n2. Allez dans Paramètres → Applications → Générer un nouveau jeton\n3. Accordez les portées souhaitées (repo, issue, user)\n4. Copiez le jeton"
},
"whisperSelfHosted": {
"description": "Transcrivez des fichiers audio via l'instance Whisper auto-hébergée de la plateforme. Utile pour les transcriptions ad hoc initiées depuis le chat."
},
"searxngLocalSearch": {
"description": "Recherche web respectueuse de la vie privée via l'instance SearXNG interne de la plateforme. Recherchez le web, les images et les actualités sans appels d'API externes ni traqueurs."
},
"gog": {
"description": "Accès groupé à Gmail, Agenda, Drive, Docs, Sheets et Contacts via Google OAuth. La configuration nécessite un projet Google Cloud — contactez le support PieCed pour l'intégration.",
"clientIdLabel": "ID client Google OAuth",
"clientIdPlaceholder": "xxxxxxxxxxx.apps.googleusercontent.com",
"clientSecretLabel": "Secret client Google OAuth",
"clientSecretPlaceholder": "GOCSPX-…",
"refreshTokenLabel": "Jeton de rafraîchissement Google OAuth",
"refreshTokenPlaceholder": "1//0g…",
"instructions": "L'intégration de Google Workspace utilise OAuth et nécessite actuellement une intégration manuelle. Veuillez ouvrir un ticket de support pour démarrer la configuration — nous échangerons hors ligne les identifiants client et un jeton de rafraîchissement, puis activerons ce package sur votre tenant.",
"disclaimer": "En activant l'intégration de Google Workspace, vous autorisez PieCed à accéder à Gmail, Agenda, Drive, Docs, Sheets et Contacts en votre nom. Les données transitent par les API de Google, soumises aux conditions de Google."
},
"mail": {
"description": "Lisez, recherchez et gérez vos e-mails via IMAP ; envoyez via SMTP. Compatible avec Gmail (avec un mot de passe d'application), Outlook, Fastmail et tout hôte IMAP/SMTP standard.",
"imapHostLabel": "Hôte IMAP",
"imapHostPlaceholder": "imap.example.com",
"imapUserLabel": "Nom d'utilisateur IMAP",
"imapUserPlaceholder": "utilisateur@example.com",
"imapPassLabel": "Mot de passe IMAP",
"imapPassPlaceholder": "••••••••",
"smtpHostLabel": "Hôte SMTP",
"smtpHostPlaceholder": "smtp.example.com",
"smtpUserLabel": "Nom d'utilisateur SMTP",
"smtpUserPlaceholder": "utilisateur@example.com",
"smtpPassLabel": "Mot de passe SMTP",
"smtpPassPlaceholder": "••••••••",
"instructions": "1. Pour Gmail : activez la validation en deux étapes, puis créez un mot de passe d'application sur https://myaccount.google.com/apppasswords et utilisez-le comme mot de passe IMAP et SMTP.\n2. Pour Outlook / Microsoft 365 avec MFA : générez un mot de passe d'application dans les paramètres de sécurité de votre compte.\n3. Pour les autres fournisseurs : consultez leur documentation IMAP/SMTP pour les noms d'hôte et les ports.\n4. Hôtes IMAP typiques : imap.gmail.com, outlook.office365.com.\n5. Hôtes SMTP typiques : smtp.gmail.com, smtp.office365.com.",
"disclaimer": "L'assistant obtient un accès en lecture/écriture à la boîte aux lettres que vous configurez. Envisagez d'utiliser une adresse dédiée plutôt qu'une boîte personnelle si vous souhaitez limiter la portée."
},
"threema": {
"description": "Messagerie Threema via la passerelle centrale PieCed. Aucun compte Gateway personnel requis — PieCed génère les identifiants à l'activation du package.",
"instructions": "1. Activez ce package — PieCed approvisionne un slot de passerelle centrale pour votre tenant.\n2. Ajoutez les identifiants Threema avec lesquels vous souhaitez échanger sous Utilisateurs autorisés → threema.\n3. Chaque identifiant Threema ne peut appartenir qu'à un seul tenant PieCed ; si l'enregistrement échoue, l'identifiant est déjà utilisé ailleurs.",
"disclaimer": "Les messages sont chiffrés de bout en bout côté Threema par la passerelle centrale PieCed. Les volumes entrant et sortant sont consignés par tenant pour la facturation."
}
},
"admin": {
"title": "Admin plateforme",
"subtitle": "Gérer les demandes d'onboarding et le cycle de vie des locataires",
"allTenants": "Locataires",
"noTenants": "Aucun locataire provisionné.",
"noAccess": "Permissions insuffisantes pour cette vue.",
"name": "Nom",
"displayName": "Nom d'affichage",
"phase": "Phase",
"packages": "Paquets",
"created": "Créé",
"manage": "Gérer",
"requests": "Demandes",
"pendingRequests": "Demandes en attente",
"approve": "Approuver",
"reject": "Rejeter",
"reApprove": "Réapprouver",
"company": "Entreprise",
"contact": "Contact",
"agentName": "Agent",
"status": "Statut",
"submitted": "Soumis",
"updated": "Mis à jour",
"actions": "Actions",
"noRequests": "Aucune demande trouvée.",
"loadingRequests": "Chargement des demandes…",
"approveConfirm": "Approuver cette demande et démarrer la mise en service ?",
"rejectConfirm": "Rejeter cette demande ?",
"rejectTitle": "Rejeter la demande",
"adminNotesLabel": "Notes (optionnel)",
"adminNotesPlaceholder": "Raison du rejet…",
"cancelAction": "Annuler",
"confirmReject": "Rejeter",
"viewTenant": "Voir",
"filter_all": "Tous",
"filter_pending": "En attente",
"filter_provisioning": "Provisionnement",
"filter_approved": "Approuvé",
"filter_rejected": "Rejeté",
"totalTenants": "Total",
"running": "En cours",
"provisioning": "Provisionnement",
"errors": "Erreurs",
"suspend": "Suspendre",
"resume": "Reprendre",
"suspended": "Suspendu",
"suspendedBadge": "SUSPENDU",
"deleteTenant": "Supprimer",
"deleteTitle": "Supprimer le locataire",
"deleteWarning": "Cela supprimera définitivement le locataire, son namespace, ses secrets et toutes les données associées. Cette action est irréversible.",
"confirmDelete": "Supprimer définitivement",
"loadingTenants": "Chargement des locataires…",
"filter_deleted": "Supprimé",
"filter_active": "Actif",
"health": "Santé",
"serviceHealth": "Santé des services",
"vllmDescription": "Moteur d'inférence GPU",
"litellmDescription": "Proxy LLM & suivi des coûts",
"tenantOverview": "Aperçu des locataires",
"spendOverview": "Aperçu des coûts",
"globalSpend": "Coûts globaux (CHF)",
"activeTenants": "Locataires actifs",
"tenantsWithSpend": "locataires avec dépenses enregistrées",
"refresh": "Actualiser",
"healthUnavailable": "Données de santé indisponibles.",
"loadingHealth": "Chargement des données de santé…",
"statusHealthy": "OK",
"statusDown": "Hors service",
"spendChf": "Coûts (CHF)",
"resumeRequestBadge": "Reprise",
"resumeRequestTooltip": "Demande de réactivation d'un locataire existant. L'approbation le réactivera ; aucun provisionnement ne s'exécute.",
"openclawTool": "Versions OpenClaw"
},
"channelUsers": {
"title": "Utilisateurs autorisés",
"description": "Gérez les utilisateurs pouvant interagir avec votre assistant sur chaque canal. Ajoutez leur identifiant numérique pour autoriser l'accès.",
"users": "utilisateurs",
"placeholder": "Entrez l'identifiant numérique…",
"add": "Ajouter",
"remove": "Supprimer",
"alreadyAdded": "Cet identifiant est déjà autorisé.",
"telegramIdHelp": "Pour trouver votre identifiant Telegram :\n1. Ouvrez Telegram et envoyez un message à @userinfobot\n2. Il répond instantanément avec votre identifiant numérique\n3. Entrez ce numéro ici",
"discordIdHelp": "Pour trouver votre identifiant Discord :\n1. Activez le mode développeur dans les paramètres Discord (Avancé)\n2. Clic droit sur votre nom → Copier l'identifiant\n3. Entrez ce numéro ici",
"threemaIdHelp": "Saisissez l'identifiant Threema à 8 caractères (lettres majuscules et chiffres, sans astérisque) de la personne avec qui vous souhaitez communiquer. Le préfixe * concerne les comptes Gateway, gérés par PieCed pour vous."
},
"team": {
"title": "Équipe",
"description": "Gérez les membres de votre organisation. Invitez des collègues et attribuez-leur des instances.",
"inviteSectionTitle": "Inviter un membre",
"membersSectionTitle": "Membres",
"noMembers": "Aucun membre pour l'instant.",
"you": "Vous",
"noRole": "aucun rôle",
"givenName": "Prénom",
"familyName": "Nom de famille",
"email": "E-mail",
"role": "Rôle",
"roleUser": "Utilisateur (lecture seule, doit être affecté à des instances)",
"roleOwner": "Propriétaire (accès complet à toutes les instances)",
"roleHint": "Les propriétaires peuvent gérer les instances, la facturation et les membres de l'équipe. Les utilisateurs ne peuvent voir que les instances qui leur sont attribuées.",
"inviteButton": "Envoyer l'invitation",
"inviteSent": "Invitation envoyée. L'utilisateur recevra un e-mail avec un lien pour définir son mot de passe.",
"inviteUserExists": "Un utilisateur avec cette adresse e-mail est déjà enregistré.",
"changeRole": "Modifier le rôle",
"roleUpdated": "Rôle mis à jour.",
"roleUpdateFailed": "Impossible de mettre à jour le rôle.",
"cancel": "Annuler",
"save": "Enregistrer",
"selfChangeBlocked": "Vous ne pouvez pas modifier votre propre rôle."
},
"assignments": {
"loading": "Chargement des attributions…",
"noneAssigned": "Aucun utilisateur n'est encore attribué à cette instance.",
"noCandidates": "Aucun membre de l'équipe disponible pour l'attribution. Invitez d'abord des utilisateurs depuis la page Équipe.",
"pickUser": "Sélectionner un utilisateur…",
"assign": "Attribuer",
"revoke": "Retirer"
},
"countries": {
"CH": "Suisse",
"DE": "Allemagne",
"AT": "Autriche",
"FR": "France",
"IT": "Italie",
"LI": "Liechtenstein"
},
"phase": {
"Pending": "En attente",
"Provisioning": "Mise en service",
"Running": "Actif",
"Ready": "Prêt",
"Suspended": "Suspendu",
"Error": "Erreur",
"Deleting": "Suppression",
"Reconfiguring": "Reconfiguration"
},
"warnings": {
"oneTooltip": "1 avertissement",
"manyTooltip": "{count} avertissements"
},
"settings": {
"title": "Paramètres",
"subtitle": "Gérez la configuration au niveau de l'organisation, qui s'applique à tous vos locataires.",
"billingTitle": "Facturation",
"billingDescription": "Adresse, numéro de TVA et e-mail de facturation utilisés pour tous vos locataires.",
"nothingForYou": "Il n'y a rien ici pour votre rôle pour le moment. Les propriétaires peuvent gérer les paramètres de l'organisation.",
"billingDescriptionPersonal": "Adresse et e-mail de facturation utilisés pour tous vos locataires."
},
"settingsBilling": {
"title": "Facturation",
"subtitle": "Saisie une fois lors de l'inscription et réutilisée pour chaque locataire de votre organisation. Mettez à jour ici dès que vos coordonnées de facturation changent.",
"companyName": "Nom de l'entreprise",
"streetAddress": "Adresse",
"postalCode": "Code postal",
"city": "Ville",
"country": "Pays",
"vatNumber": "Numéro de TVA",
"vatHelp": "Votre identifiant TVA enregistré (par ex. CHE-123.456.789 TVA pour la Suisse).",
"billingEmail": "E-mail de facturation",
"billingEmailHelp": "Adresse à laquelle les factures et la communication de facturation seront envoyées.",
"notes": "Notes",
"notesPlaceholder": "Tout ce que la comptabilité doit savoir exonération de TVA, modalités de facturation particulières, etc.",
"save": "Enregistrer",
"saved": "Enregistré.",
"saveFailed": "Impossible d'enregistrer. Veuillez réessayer.",
"lastUpdated": "Dernière mise à jour {when}",
"fullName": "Nom complet",
"notesPlaceholderPersonal": "Tout ce que nous devons savoir — moyen de paiement préféré, référence de facturation, etc."
},
"support": {
"title": "Support",
"subtitle": "Ouvrez un ticket pour poser une question, signaler un bug ou partager un commentaire. Les réponses seront envoyées à l'adresse e-mail enregistrée.",
"titleAdmin": "File d'attente du support",
"subtitleAdmin": "Tickets de tous les clients, activité la plus récente en premier.",
"newTicket": "Nouveau ticket",
"newTicketTitle": "Ouvrir un ticket de support",
"newTicketSubtitle": "Dites-nous ce qui se passe. Plus vous donnez de détails, plus nous pouvons aider rapidement.",
"empty": "Vous n'avez pas encore ouvert de ticket.",
"emptyAdmin": "Aucun ticket de support dans la file d'attente.",
"fieldCategory": "Catégorie",
"fieldTitle": "Titre",
"fieldDescription": "Description",
"fieldStatus": "Statut",
"titlePlaceholder": "Bref résumé de votre besoin",
"descriptionPlaceholder": "Décrivez ce qui s'est passé, ce que vous attendiez et tout message d'erreur observé.",
"descriptionHelp": "Vous pouvez coller des messages d'erreur et des logs. Pas de mots de passe ni d'autres secrets.",
"submitTicket": "Envoyer le ticket",
"createFailed": "Impossible de créer le ticket. Veuillez réessayer.",
"category_bug": "Bug",
"category_feature_request": "Demande de fonctionnalité",
"category_question": "Question",
"category_billing": "Facturation",
"category_other": "Autre",
"status_open": "Ouvert",
"status_in_progress": "En cours",
"status_waiting_for_customer": "En attente de votre réponse",
"status_resolved": "Résolu",
"status_reopened": "Rouvert",
"openedBy": "Ouvert par {name} le {when}",
"authorTagAdmin": "Support PieCed",
"replyLabel": "Ajouter une réponse",
"replyPlaceholder": "Votre message…",
"replyPlaceholderReopen": "Réponse (cela rouvrira le ticket)…",
"sendReply": "Envoyer la réponse",
"commentFailed": "Impossible d'envoyer la réponse. Veuillez réessayer.",
"closeTicket": "Marquer comme résolu",
"confirmClose": "Marquer ce ticket comme résolu ? Vous pourrez le rouvrir plus tard en répondant.",
"closeFailed": "Impossible de fermer le ticket. Veuillez réessayer.",
"resolvedBanner": "Ce ticket est résolu. Répondez ci-dessous si vous avez besoin d'un suivi — cela le rouvrira.",
"adminControlsTitle": "Contrôles admin",
"updateFailed": "Impossible d'enregistrer les modifications. Veuillez réessayer."
},
"openclawAdmin": {
"title": "Versions OpenClaw",
"subtitle": "Configurer le tag par défaut de la plateforme et les surcharges par locataire pour tester les nouvelles versions.",
"defaultSection": "Défaut de la plateforme",
"defaultDescription": "Utilisé par tous les locataires sans surcharge propre.",
"fieldTag": "Tag",
"emptyHint": "Laisser vide pour utiliser le défaut intégré de l'opérateur.",
"saveDefault": "Enregistrer le défaut",
"defaultSaved": "Défaut enregistré. Les locataires sans surcharge l'appliqueront au prochain réconcile.",
"saveFailed": "Échec de l'enregistrement. Veuillez réessayer.",
"overridesSection": "Surcharges par locataire",
"noTenants": "Aucun locataire dans le cluster.",
"statusOverridden": "Surcharge",
"statusFollowsDefault": "Suit le défaut",
"builtinFallback": "(repli intégré)",
"defaultPrefix": "Défaut :",
"saveOverride": "Enregistrer la surcharge",
"clearOverride": "Supprimer la surcharge"
}
}