PageSourceSearch

https://app.linedat.com/assets/fr-urc1Pdgt.js

js linedat.com collected 2026-10-07 21:23:51 UTC 192,382 bytes, 11 lines download raw bytes

1const e={save:"Enregistrer",cancel:"Annuler",dismiss:"Ignorer",delete:"Supprimer",edit:"Modifier",create:"Créer",search:"Rechercher",filter:"Filtrer",loading:"Chargement...",error:"Erreur",success:"Succès",confirm:"Confirmer",back:"Retour",next:"Suivant",previous:"Précédent",close:"Fermer",add:"Ajouter",remove:"Retirer",view:"Voir",download:"Télécharger",upload:"Téléverser",refresh:"Actualiser",settings:"Paramètres",help:"Aide",logout:"Se déconnecter",profile:"Profil",noResults:"Aucun résultat",selectOption:"Sélectionner une option",noTypesFound:"Aucun type trouvé",noUsersFound:"Aucun utilisateur trouvé",saving:"Enregistrement...",total:"Total",name:"Nom",description:"Description",status:"Statut",type:"Type",active:"Actif"},t={title:"Configurez votre compte",progress:"{{done}} sur {{total}} terminés",progressBar:"Progression de la configuration : {{pct}}%",dismiss:"Masquer la liste"},i={home:"Accueil",languageSelector:"Changer de langue (actuel : {{language}})",catalog:"Catalogue",chat:"Chat",aiAssistant:"Assistant IA",glossary:"Glossaire",lineage:"Lignage",quality:"Qualité",governance:"Gouvernance",designer:"Concepteur",settings:"Paramètres",admin:"Administration",assets:"Actifs",dataSources:"Sources de données",domains:"Domaines",tags:"Étiquettes",terms:"Termes",categories:"Catégories",rules:"Règles",dashboard:"Tableau de bord",newAsset:"Nouvel actif",allItems:"Tous les éléments",search:"Rechercher",aiFallback:"Repli",policies:"Politiques",risks:"Risques",dpia:"AIPD",contracts:"Contrats",stewardship:"Intendance",committees:"Comités",adminUsers:"Utilisateurs",adminOrganizations:"Organisations",adminImpersonation:"Audit d'usurpation",adminDomains:"Domaines",adminGroups:"Groupes",adminGovernance:"Gouvernance des données",adminBatch:"Affectations par lots",signOut:"Se déconnecter",apiTokens:"API tokens",competence:"Formation",aimsObjectives:"Objectifs AIMS",auditChain:"Audit chain",edm:"EDM",aiSystems:"Systèmes IA",aiSuppliers:"Fournisseurs IA",aiImpactAssessments:"FRIA",modelCards:"Model Cards",datasetCards:"Dataset Cards",processingActivities:"RoPA",dataSubjectRequests:"DSR",aiIncidents:"Incidents IA",aiNonconformities:"Non-conformités IA",accessGrants:"Autorisations d'accès",managementReviews:"Revues de Direction",internalAudits:"Audits Internes",aimsOverview:"AIMS (PDCA)",aiManagementPolicy:"Politique IA (org · §5.2)",soa:"SoA (Annexe A)"},s={title:"Catalogue de données",subtitle:"Gérez et explorez vos actifs de données",createAsset:"Créer un actif",importAsset:"Importer un actif",assets:"Actifs",columns:"Colonnes",noAssets:"Aucun actif",noAssetsDescription:"Créez votre premier actif pour commencer",searchPlaceholder:"Rechercher des actifs...",filterByType:"Filtrer par type",filterByDomain:"Filtrer par domaine",filterByDataSource:"Filtrer par source de données",allTypes:"Tous les types",allDomains:"Tous les domaines",allDataSources:"Toutes les sources de données",table:"Table",view:"Vue",dashboard:"Tableau de bord",report:"Rapport",model:"Modèle",operation:"Opération",endpoint:"Point de terminaison"},n={table:"Table",view:"Vue",operation:"Opération",asset:"Actif",rows:"Lignes",columns:"Colonnes",fields:"Champs",size:"Taille",responseFields:"Champs de réponse",structure:"Structure",columnsCount:"colonnes",fieldsCount:"champs",schema:"Schéma",service:"Service",column:"Colonne",field:"Champ",schemaPreview:"Aperçu du schéma",quality:"Qualité",sensitivity:"Sensibilité",operationDetails:"Détails de l'opération",soapOperation:"Opération SOAP",wsdlSource:"Source WSDL",fieldsCountValue:"{{count}} champs",columnName:"Nom de la colonne",fieldName:"Nom du champ",unknown:"Inconnu",endpoint:"Point de terminaison",endpointDetails:"Détails du point de terminaison",httpMethod:"Méthode HTTP",path:"Chemin",apiSource:"Source API",apiTag:"Étiquette API"},r={title:"Sources de données",subtitle:"Connectez et gérez vos bases de données et entrepôts de données",addDataSource:"Ajouter une source de données",noDataSourcesYet:"Aucune source de données pour l'instant",noDataSourcesDescription:"Connectez votre première base de données ou entrepôt de données pour commencer à cataloguer vos actifs.",connectDataSource:"C
1onnecter une source de données",connectDataSourceDescription:"Ajoutez une nouvelle base de données ou un entrepôt de données à votre catalogue",editConnection:"Modifier la connexion",testConnection:"Tester la connexion",syncMetadata:"Synchroniser les métadonnées",active:"Actif",inactive:"Inactif",testing:"Test en cours...",syncingMetadata:"Synchronisation des métadonnées...",connected:"Connecté",failed:"Échec",syncedResult:"{{count}} {{itemType}} synchronisé(s)",syncedResultWithRemoved:"{{count}} {{itemType}} synchronisé(s), {{removed}} supprimé(s)",endpoints:"points de terminaison",operations:"opérations",tables:"tables",preparing:"Préparation...",syncFailed:"Échec de la synchronisation",deleteDataSource:"Supprimer la source de données",deleteConfirmation:"Êtes-vous sûr de vouloir supprimer cette source de données ? Cette action est irréversible. Toutes les métadonnées associées seront supprimées.",deleting:"Suppression...",typePostgresql:"PostgreSQL",typeMysql:"MySQL",typeMongodb:"MongoDB",typeOracle:"Oracle Database",typeSqlserver:"SQL Server",typeDb2:"IBM DB2",typeDatabricks:"Databricks",typeElasticsearch:"Elasticsearch",typeOpensearch:"OpenSearch",typeGlue:"AWS Glue Catalog",typeBigquery:"BigQuery",typeSnowflake:"Snowflake",typeSoap:"Service Web SOAP",typeApiRest:"API REST",descPostgresql:"Se connecter aux bases de données PostgreSQL",descMysql:"Se connecter aux bases de données MySQL ou MariaDB",descMongodb:"Se connecter aux bases de données MongoDB",descOracle:"Se connecter à Oracle Database (11g, 12c, 19c, 21c+)",descSqlserver:"Se connecter à Microsoft SQL Server",descDb2:"Se connecter aux bases de données IBM DB2",descDatabricks:"Se connecter à Databricks Unity Catalog",descElasticsearch:"Se connecter aux clusters Elasticsearch",descOpensearch:"Se connecter aux clusters OpenSearch",descGlue:"Se connecter à AWS Glue Data Catalog",descBigquery:"Se connecter à Google BigQuery",descSnowflake:"Se connecter à Snowflake Data Warehouse",descSoap:"Se connecter aux services web SOAP/WSDL",descApiRest:"Importer depuis une spécification OpenAPI (Swagger)",experimental:"Expérimental",categoryRelational:"Bases de données relationnelles",categoryCloud:"Entrepôts de données cloud",categoryNosql:"NoSQL et recherche",categoryCatalog:"Catalogues de données",categoryApi:"API et services",stepSelectType:"Sélectionner le type",stepCredentials:"Identifiants",stepWsdlDetails:"Détails WSDL",stepApiSpec:"Spécification API",stepTest:"Test",stepSave:"Enregistrer",stepChooseType:"Choisissez votre type de source de données",stepEnterDetails:"Saisissez les détails de connexion",stepProvideWsdl:"Indiquez l'emplacement WSDL",stepProvideOpenapi:"Fournir la spécification OpenAPI",stepValidateSpec:"Valider la spécification",stepVerifyConnection:"Vérifier la connexion",stepNameAndCreate:"Nommer et créer",host:"Hôte",port:"Port",database:"Base de données",username:"Nom d'utilisateur",password:"Mot de passe",sslMode:"Mode SSL",sslDisable:"Désactiver",sslPrefer:"Préférer",sslRequire:"Exiger",sslVerifyCa:"Vérifier l'AC",sslVerifyFull:"Vérification complète",sslSkipVerify:"Sans vérification",caCertificate:"Certificat AC personnalisé",caCertificateHint:"Téléversez le certificat racine qui a signé le certificat TLS de votre serveur (ex. Aiven ou Heroku Postgres). Format PEM. S'applique uniquement à PostgreSQL et MySQL.",caCertificateUpload:"Téléverser un certificat",caCertificateReplace:"Remplacer",caCertificateRemove:"Supprimer",caCertificatePending:"Certificat lu. Il sera enregistré en cliquant sur Enregistrer.",caCertificateExisting:"AC chargée : {{subject}}",caCertificateSslAdjustedTitle:"Mode SSL ajusté",caCertificateSslAdjustedDescription:"Nous avons changé le Mode SSL en 'verify-ca' car vous avez fourni un certificat AC personnalisé.",oracleProtocol:"Protocole",oracleProtocolTcp:"TCP (sans chiffrement)",oracleProtocolTcps:"TCPS (TLS) — Oracle Cloud / ADB",oracleProtocolHint:"Oracle Cloud Autonomous Database nécessite TCPS. Native Network Encryption sur TCP simple n'est pas prise en charge.",oracleWallet:"Oracle wallet (mTLS)",oracleWalletHint:"Téléversez le ewallet.pem de votre Oracle wallet (p. ex. le zip du ADB wallet) pour activer le TLS mutuel. Sans lui, TCPS utilise le TLS unidirectionnel.",oracleWalletPending:"Wallet prêt à téléverser",oracleWalletRemove:"Supprimer",oracleWalletExisting:"Un wallet est enregistré pour cette source",oracleWalletReplace:"Remplacer",oracleWalletUpload:"Téléverser le wallet (ewallet.pem)",oracleWalletPassword:"Mot de passe du wallet",projectId:"ID du projet",location:"Emplacement",serviceAccountJson:"JSON du compte de service (facultatif)",credentialsHint:"Laissez vide pour utiliser les Application Default Credentials",account:"Compte",warehouse:"Entrepôt",roleOptional:"Rôle (facultatif)",accountHint:"Identifiant du compte (sans .snowflakecomputing.com)",wsdlUrl:"URL WSDL",wsdlUrlHint:"URL d'un document WSDL accessible publiquement",wsdlContent:"Contenu XML WSDL",wsdlContentHint:"Collez le XML WSDL brut si le service n'est pas accessible publiquement",or:"ou",specFormat:"Format de la spécification",uploadSpecFile:"Téléverser un fichier de spécification OpenAPI",chooseFile:"Choisir un fichier",openapiSpec:"Spécification OpenAPI",openapiSpecHint:"Prend en charge les spécifications OpenAPI 3.x et Swagger 2.0",testPrompt:"Cliquez sur le bouton ci-dessous pour tester votre connexion",testingConnection:"Test de la connexion...",testAgain:"Tester à nouveau",editCredentials:"Modifier les identifiants",tryAgain:"Réessayer",dataSourceName:"Nom de la source de données",descriptionOptional:"Description (facultative)",createDataSource:"Créer la source de données",creating:"Création...",editDataSource:"Modifier la source de données",editDataSourceDescription:"Mettre à jour les détails de connexion pour la source de données {{type}}",name:"Nom",description:"Description",activeLabel:"Actif",inactiveHint:"Les sources de données inactives ne seront pas synchronisées",connectionDetail
1s:"Détails de la connexion",saveChanges:"Enregistrer les modifications",saving:"Enregistrement...",created:"Créé",syncing:"Synchronisation...",synced:"Synchronisé",syncError:"Erreur",connectionSuccess:"Connexion réussie",connectionFailed:"Échec de la connexion",readyToSync:"Prêt à synchroniser",createdAt:"Créé",updatedAt:"Mis à jour"},o={valuation:{tabLabel:"Valeur",title:"Valorisation de l'actif",compute:"Calculer la valeur (utilité)",estimatedValue:"Valeur estimée",method:"Méthode",confidence:"Confiance",confidenceLevels:{low:"Faible",medium:"Moyenne",high:"Élevée"},methods:{cost_based:"Basé sur le coût",market_based:"Basé sur le marché",income_based:"Basé sur le revenu",utility_based:"Basé sur l'utilité"},factorsTitle:"Facteurs de calcul",factors:{usage_count_30d:"Accès (30 jours)",usage_score:"Score d'utilisation",downstream_dependents:"Dépendants en aval",lineage_score:"Score de lignage",quality_score:"Score de qualité"},history:"Historique des valorisations",emptyTitle:"Aucune valorisation pour cet actif",emptyHint:"Cliquez sur « Calculer la valeur » pour générer une valorisation automatique basée sur l'utilisation, le lignage et la qualité."},name:"Nom",type:"Type",description:"Description",schema:"Schéma",dataSource:"Source de données",domain:"Domaine",noDomain:"Aucun domaine",owner:"Propriétaire",steward:"Data steward",tags:"Étiquettes",noTagsAssigned:"Aucune étiquette attribuée",columns:"Colonnes",createdAt:"Créé",updatedAt:"Mis à jour",lastUpdated:"Dernière mise à jour",lastSynced:"Dernière synchronisation",lastSyncAt:"Dernière synchronisation",rowCount:"Lignes",sizeBytes:"Taille",qualityScore:"Score de qualité",sensitivity:"Sensibilité",storageFormat:"Format",certification:"Certification",businessImpact:"Impact métier",retention:"Rétention",governanceCard:"Gouvernance",metadata:"Métadonnées",notFound:"Actif introuvable",backToCatalog:"Retour au catalogue",viewLineage:"Voir le lignage",generateDesc:"Générer la description",detectPii:"Détecter les PII",applyPiiResults:"Appliquer les résultats",piiDetectionComplete:"Détection PII terminée : {{flagged}} sur {{total}} colonnes signalées",piiHeuristicNote:"Classification basée sur le nom et le type de colonne, non sur le contenu de la donnée (Linedat n'accède pas aux données sources).",piiApplied:"Résultats PII appliqués",piiApplyFailed:"Échec de l'application des résultats PII",deleteAssetTitle:"Supprimer l'actif",deleteAssetConfirmMessage:"Êtes-vous sûr de vouloir supprimer <1>{{name}}</1> ? Cela supprimera définitivement l'actif et toutes les données associées, y compris les colonnes, étiquettes, règles de qualité et informations de lignage.",cannotBeUndone:"Cette action est irréversible",linkedTerms:"Termes liés",viewAllTerms:"Voir tout",noLinkedTerms:"Aucun terme lié pour le moment"},a={title:"Niveau de sensibilité",public:"Public",publicDescription:"Informations accessibles à tous",internal:"Interne",internalDescription:"Usage interne uniquement",confidential:"Confidentiel",confidentialDescription:"Informations métier sensibles",restricted:"Restreint",restrictedDescription:"Très sensible, accès limité"},l={title:"Format de stockage",parquet:"Parquet",parquetDescription:"Format colonnaire Apache Parquet",delta:"Delta Lake",deltaDescription:"Format Delta Lake avec transactions ACID",iceberg:"Iceberg",icebergDescription:"Format Apache Iceberg pour les lacs de données",csv:"CSV",csvDescription:"Valeurs séparées par des virgules",json:"JSON",jsonDescription:"JavaScript Object Notation",avro:"Avro",avroDescription:"Format de sérialisation Apache Avro",orc:"ORC",orcDescription:"Format Optimized Row Columnar",table:"Table",tableDescription:"Table de base de données traditionnelle",unknown:"Inconnu",unknownDescription:"Format non déterminé"},u={name:"Nom",dataType:"Type de données",description:"Description",isPrimaryKey:"Clé primaire",isNullable:"Nullable",isPii:"PII",piiType:"Type de PII",sensitivity:"Sensibilité",order:"Ordre"},c={errors:{submitFailed:"Échec de l'envoi du terme en révision.",aiReviewRequiredBeforeLifecycle:"La politique du tenant exige que la provenance IA de la définition soit revue ou approuvée avant d'envoyer le terme en revue. Origine IA actuelle : '{{origin}}'. Résolvez-le dans Gouvernance IA → Revues.",unlinkFailed:"Impossible de dissocier l'actif",changeCategoryFailed:"Impossible de changer la catégorie"},title:"Glossaire métier",subtitle:"Définissez et gérez les termes métier",createTerm:"Créer un terme",terms:"Termes",categories:"Catégories",noTerms:"Aucun terme",searchPlaceholder:"Rechercher des termes...",newTerm:"Nouveau terme",allCategories:"Toutes les catégories",allStatuses:"Tous les statuts",draft:"Brouillon",pen
1dingReview:"En attente de révision",approved:"Approuvé",newestFirst:"Plus récents d'abord",oldestFirst:"Plus anciens d'abord",nameAZ:"Nom A-Z",nameZA:"Nom Z-A",statusAZ:"Statut A-Z",statusZA:"Statut Z-A",activeFilters:"Filtres actifs :",filterSearch:"Recherche :",filterCategory:"Catégorie :",filterStatus:"Statut :",clearAll:"Tout effacer",loadingTerms:"Chargement des termes...",loadingTerm:"Chargement du terme...",termNotFound:"Terme introuvable",noTermsFound:"Aucun terme trouvé",noTermsHint:"Créez votre premier terme pour commencer",term:"Terme",definition:"Définition",definitionPlaceholder:"Rédigez une définition claire et concise du terme...",category:"Catégorie",status:"Statut",updated:"Mis à jour",pagination:"Page {{page}} sur {{totalPages}} ({{total}} au total)",examples:"Exemples",synonyms:"Synonymes",relationships:"Relations",linkedAssets:"Actifs liés",noRelationshipsDefined:"Aucune relation définie",related:"Lié",parents:"Parents",children:"Enfants",noAssetsLinked:"Aucun actif lié",deleteTerm:"Supprimer le terme",deleteTermConfirm:"Êtes-vous sûr de vouloir supprimer « {{name}} » ? Cette action est irréversible.",termName:"Nom du terme",termNamePlaceholder:"ex. : Customer Lifetime Value",generating:"Génération...",generateWithAI:"Générer avec l'IA",noCategory:"Aucune catégorie",addExamplePlaceholder:"Ajouter un exemple...",addSynonymPlaceholder:"Ajouter un synonyme...",saveChanges:"Enregistrer les modifications",editCategory:"Modifier la catégorie",newCategory:"Nouvelle catégorie",nameLabel:"Nom",descriptionLabel:"Description",createCategory:"Créer la catégorie",overview:"Aperçu",relationshipsPreview:"Aperçu des relations",linkedAssetsPreview:"Aperçu des actifs liés",add:"Ajouter",linkAsset:"Lier l'actif",linkDataAsset:"Lier un actif de données",column:"Colonne",asset:"Actif",moreAssets:"+{{count}} actifs supplémentaires",metadata:"Métadonnées",createdBy:"Créé par",reviewedBy:"Révisé par",created:"Créé",lastUpdated:"Dernière mise à jour",statusDraftHint:"Ce terme est à l'état de brouillon et peut être modifié.",statusPendingReviewHint:"En attente de la révision d'un data steward.",statusApprovedHint:"Ce terme a été approuvé et est actif.",statusDeprecatedHint:"Ce terme est obsolète.",quickActions:"Actions rapides",addRelationship:"Ajouter une relation",editTerm:"Modifier le terme",termRelationships:"Relations du terme",noRelationshipsYet:"Aucune relation pour l'instant",addFirstRelationship:"Ajoutez votre première relation",relatedTerms:"Termes liés",parentTerms:"Termes parents",childTerms:"Termes enfants",noLinkedAssetsYet:"Aucun actif lié pour l'instant",linkFirstAsset:"Liez votre premier actif",linked:"Lié",actions:"Actions",entireAsset:"Actif entier",submitForReview:"Soumettre à la révision",submitting:"Envoi...",approve:"Approuver",approving:"Approbation...",reject:"Rejeter",rejecting:"Rejet...",examplePlaceholder1:"Exemple d'utilisation dans un contexte métier",examplePlaceholder2:"Un autre exemple illustrant une application pratique",synonymPlaceholder1:"Terme alternatif",synonymPlaceholder2:"Nom associé",termStatus:{draft:"Brouillon",pending_review:"En attente de révision",approved:"Approuvé"},unlink:"Dissocier",unlinkAsset:"Dissocier l'actif",unlinkAssetConfirm:"Dissocier cet actif du terme ? Vous pouvez le rattacher à tout moment.",changeCategory:"Changer de catégorie",changeCategoryHint:"La catégorie relève de l'organisation du glossaire, pas du contenu du terme. Elle peut être modifiée à tout moment."},d={reports:{title:"Rapports de qualité",loading:"Chargement…",loadError:"Impossible de charger le rapport.",openCta:"Rapports"},coverage:{title:"Couverture minimale sur les actifs critiques",subtitle:"Chaque actif avec un impact métier 'critical' ou 'high' devrait avoir au moins une règle active pour chaque dimension obligatoire.",gapsLabel:"lacunes",policyLabel:"Politique",empty:"Tous les actifs critiques sont couverts.",colAsset:"Actif",colTier:"Niveau",colMissing:"Dimensions manquantes",colAction:"Action",createRule:"Créer une règle"},drift:{title:"Dérive de qualité vs baseline 30 jours",subtitle:"Chute relative du score actuel par rapport à la moyenne des 30 jours précédents. Une chute supérieure à {{threshold}}% est signalée comme significative.",flaggedLabel:"actifs signalés",empty:"Aucune dérive significative parmi les actifs du tenant.",colAsset:"Actif",colCurrent:"Actuel",colBaseline:"Baseline 30j",colDrop:"Chute"},title:"Qualité des données",subtitle:"Surveillez et améliorez la qualité de vos données",rules:"Règles",executions:"Exécutions",score:"Score",passing:"Réussies",failing:"Échouées",createRule:"Créer une règle",runRule:"Exécuter la règle",newRule:"Nouvelle règle",searchPlaceholder:"Rechercher des règles...",allTypes:"Tous les types",allSeverities:"Toutes les sévérités",allStatus:"Tous les statuts",completeness:"Complétude",uniqueness:"Unicité",validity:"Validité",consistency:"Cohérence",timeliness:"Fraîcheur",critical:"Critique",high:"Élevée",medium:"Moyenne",low:"Faible",active:"Active",inactive:"Inactive",activeFilters:"Filtres actifs :",filterSearch:"Recherche :",filterType:"Type :",filterSeverity:"Sévérité :",filterStatus:"Statut :",clearAll:"Tout effacer",loadingRule:"Chargement de la règle...",loadingRules:"Chargement des règles...",noRulesFound:"Aucune règle de qualité trouvée",noRulesHint:"Créez votre première règle pour commencer",ruleName:"Nom de la règle",type:"Type",severity:"Sévérité",asset:"Actif",status:"Statut",updated:"Mis à jour",allAssets:"Tous les actifs",pagination:"Page {{page}} sur {{totalPages}} ({{total}} au total)",descriptionLabel:"Description",ruleType:"Type de règle",scope:"Portée",assetOptional:"Actif (facultatif)",leaveEmptyGlobal:"Laissez vide pour appliquer cette règle de manière globale",columnOptional:"C
1olonne (facultatif)",allColumns:"Toutes les colonnes",ruleDefinition:"Définition de la règle",condition:"Condition",conditionHint:"Condition de type SQL qui retourne true pour les données valides",thresholdOptional:"Seuil (facultatif)",thresholdHint:"Pourcentage minimum de lignes devant respecter cette règle",activateImmediately:"Activer cette règle immédiatement",updateRule:"Mettre à jour la règle",accuracy:"Exactitude",templates:{title:"Modèles de règles",subtitle:"Contrôles de qualité prédéfinis que vous pouvez personnaliser et appliquer à vos actifs",browseTemplates:"Parcourir les modèles",useTemplate:"Utiliser le modèle",createFromTemplate:"Créer à partir d'un modèle",customizeRule:"Personnaliser la règle",requiresColumn:"Nécessite la sélection d'une colonne",requiresConfig:"Nécessite une configuration supplémentaire",noTemplatesFound:"Aucun modèle ne correspond à votre filtre",fromTemplate:"Depuis le modèle",configField:"Configuration",selectAssets:"Sélectionner les actifs",selectAssetsHint:"Choisissez un ou plusieurs actifs auxquels appliquer cette règle",filterByDomain:"Filtrer par domaine",filterByDataSource:"Filtrer par source de données",filterBySchema:"Filtrer par schéma",allDomains:"Tous les domaines",allDataSources:"Toutes les sources de données",allSchemas:"Tous les schémas",selectedCount:"{{count}} actif(s) sélectionné(s)",selectAll:"Tout sélectionner",deselectAll:"Tout désélectionner",searchAssets:"Rechercher des actifs...",noAssetsMatch:"Aucun actif ne correspond aux filtres actuels",columnForAll:"Nom de colonne (appliqué à tous les actifs sélectionnés)",completeness_not_null:{name:"Champ requis (non nul)",description:"Vérifie qu'une colonne ne contient aucune valeur NULL. À utiliser pour les champs obligatoires qui doivent toujours avoir une valeur."},completeness_not_empty:{name:"Champ requis (non vide)",description:"Vérifie qu'une colonne ne contient aucune valeur NULL ni aucune chaîne vide. Plus strict qu'une vérification non nulle."},completeness_min_pct:{name:"Complétude minimale",description:"Vérifie qu'au moins un pourcentage donné de lignes possède des valeurs non nulles dans la colonne."},validity_email:{name:"Format d'e-mail valide",description:"Valide que les valeurs correspondent au format standard d'adresse e-mail ([email protected])."},validity_iban:{name:"Format IBAN Valide",description:"Valide que les valeurs respectent le format structurel d'un IBAN (ISO 13616) : code pays de 2 lettres, 2 chiffres de contrôle et numéro de compte, d'une longueur totale de 15 à 34 caractères. Ne vérifie pas la clé de contrôle mod-97."},validity_dni_nif:{name:"Pièce d'Identité Espagnole (DNI / NIF / NIE)",description:"Valide le format d'une pièce d'identité espagnole : DNI/NIF (8 chiffres + lettre de contrôle) ou NIE (X/Y/Z + 7 chiffres + lettre), en majuscules. Ne vérifie pas la lettre de contrôle (modulo 23)."},validity_uuid:{name:"UUID Valide",description:"Valide que les valeurs respectent le format canonique d'un UUID (RFC 4122) : 8-4-4-4-12 chiffres hexadécimaux séparés par des tirets."},validity_ipv4:{name:"Adresse IPv4 Valide",description:"Valide que les valeurs sont une adresse IPv4 en notation à quatre octets (0-255 par octet), par ex. 192.168.1.10."},validity_phone:{name:"Numéro de téléphone valide",description:"Valide que les valeurs correspondent aux formats courants de numéros de téléphone, y compris les préfixes internationaux."},validity_url:{name:"Format d'URL valide",description:"Valide que les valeurs sont des URL HTTP/HTTPS bien formées."},validity_no_future_date:{name:"Pas de dates futures",description:"Garantit que les valeurs de date ne sont pas dans le futur. Utile pour les dates de naissance, dates de transaction, etc."},validity_allowed_values:{name:"Liste de valeurs autorisées",description:"Valide que les valeurs appartiennent à un ensemble prédéfini de valeurs autorisées (vérification énumération)."},validity_numeric_range:{name:"Plage numérique",description:"Valide que les valeurs numériques se trouvent dans une plage minimale et maximale spécifiée."},uniqueness_no_duplicates:{name:"Pas de valeurs dupliquées",description:"Garantit que toutes les valeurs de la colonne sont uniques, sans doublons."},uniqueness_primary_key:{name:"Unicité de la clé primaire",description:"Valide qu'une colonne de clé primaire n'a pas de valeurs en double. Essentiel pour l'intégrité des données."},consistency_referential:{name:"Intégrité référentielle",description:"Vérifie que les valeurs de clé étrangère référencent des enregistrements existants dans la table liée."}
1,consistency_cross_field:{name:"Cohérence entre champs",description:"Valide les relations logiques entre les champs (par exemple, start_date doit être antérieur à end_date)."},consistency_no_placeholder:{name:"Aucune Valeur Sentinelle",description:"Détecte la fausse complétude : cellules non nulles contenant en réalité un marqueur « aucune donnée » (N/A, -, inconnu, TBD…). Remplacez « columna » par le nom réel de votre colonne et étendez la liste si nécessaire."},timeliness_freshness:{name:"Fraîcheur des données",description:"Vérifie que les enregistrements ont été mis à jour dans un nombre spécifié de jours."},timeliness_no_stale:{name:"Pas d'enregistrements obsolètes",description:"Identifie les enregistrements dont les valeurs de date sont antérieures au seuil autorisé."},accuracy_pct_range:{name:"Plage de pourcentage (0-100)",description:"Valide que les valeurs de pourcentage ou de ratio se trouvent dans la plage 0 à 100."},accuracy_positive_only:{name:"Valeurs positives uniquement",description:"Garantit que les valeurs numériques sont nulles ou positives. Utile pour les quantités, prix, comptages."},accuracy_string_length:{name:"Limites de longueur de chaîne",description:"Valide que les valeurs de chaîne ont une longueur comprise dans les limites minimales et maximales spécifiées."},allowed_values_hint:"Liste de valeurs autorisées séparées par des virgules",numeric_min_hint:"Valeur minimale",numeric_max_hint:"Valeur maximale",min_completeness_pct:"Pourcentage minimum non nul",condition_referential_hint:"Condition SQL pour la vérification référentielle",condition_cross_field_hint:"par ex., start_date < end_date",condition_no_placeholder_hint:"ex., colonne NOT IN ('N/A', '-', 'inconnu')",max_days_hint:"Âge maximum en jours",min_length_hint:"Longueur de chaîne minimale",max_length_hint:"Longueur de chaîne maximale"},config:{title:"Configuration de la règle",column:"Colonne",columnNotSpecified:"Pas de colonne spécifique",verification:"Vérification",detail:"Détail"},verification:{unknown:"Type de règle non pris en charge",completeness:{notNull:"Ne doit pas être nul",notNullOrEmpty:"Ne doit pas être nul ni chaîne vide"},uniqueness:"Doit être unique (sans doublons)",validity:{pattern:"Doit correspondre au motif : {{pattern}}",allowedValues:"Doit être l'un de : {{values}}",missing:"Motif ou liste de valeurs non configurés"},consistency:{condition:"Doit satisfaire : {{condition}}",missing:"Condition non configurée"},timeliness:{freshnessDays_one:"Fraîcheur maximale : {{count}} jour",freshnessDays_other:"Fraîcheur maximale : {{count}} jours"},accuracy:{condition:"Doit satisfaire : {{condition}}",range:"Doit être entre {{min}} et {{max}}",minOnly:"Doit être ≥ {{min}}",maxOnly:"Doit être ≤ {{max}}",missing:"Plage ou condition non configurées"}}},p={title:"Lignage des données",subtitle:"Visualisez le flux de données",dataLineage:"Lignage des données :",upstream:"Amont",downstream:"Aval",both:"Les deux",viewLineage:"Voir le lignage",fieldMap:"Carte des champs",trace:"Tracer",designer:"Concepteur de lignage",designerSubtitle:"Définissez les relations de lignage des données avec la syntaxe DOT",save:"Enregistrer le lignage",saving:"Enregistrement...",preview:"Aperçu",editor:"Éditeur DOT",syntaxHelp:"Aide sur la syntaxe",saveSuccess:"Lignage enregistré avec succès",saveError:"Certaines arêtes n'ont pas pu être enregistrées",assetNotFound:"Actif introuvable dans le catalogue",columnNotFound:"Colonne introuvable dans l'actif",duplicateEdge:"L'arête existe déjà (ignorée)",editInDesigner:"Modifier dans le concepteur de lignage",exportSvg:"Exporter en SVG",exportingSvg:"Exportation…",exportSvgTooltip:"Télécharger le graphe de lignage en SVG imprimable",exportOpenLineage:"Exporter OpenLineage",exportingOpenLineage:"Exportation…",exportOpenLineageTooltip:"Télécharger tout le graphe de lignage en événements OpenLineage (Marquez/DataHub/OpenMetadata)",noLineageData:"Aucune donnée de lignage disponible",noDependencies:"Cet actif n'a aucune dépendance amont ou aval",errorLoadingAsset:"Erreur lors du chargement de l'actif",loadingLineageGraph:"Chargement du graphe de lignage...",currentAsset:"Actif actuel",impactAnalysis:"Analyse d'impact",upstreamAssets:"Actifs amont",downstreamAssets:"Actifs aval",totalAffected:"Total affecté",criticalDownstream:"Aval critique",transformationTypes:"Types de transformation",noColumns:"Aucune colonne",columnLineage:"Lignage de colonne",errorLoadingColumnLineage:"Erreur lors du chargement du lignage de colonne",noUpstreamSources:"Aucune source amont trouvée",noDownstreamTargets:"Aucune cible aval trouvée",noColumnLineage:"Aucun lignage de colonne trouvé",noColumnLineageHint:"Cette c
1olonne n'a aucune source amont ni cible aval",sourceColumn:"Ceci est une colonne source",notUsedElsewhere:"Cette colonne n'est utilisée nulle part ailleurs",guideButton:"Guide",syntaxButton:"Syntaxe",loadingExisting:"Chargement du lignage existant...",noChanges:"Aucune modification à enregistrer",writeDotHint:"Écrivez la syntaxe DOT à gauche pour voir l'aperçu du lignage",noValidGraph:"Aucun graphe valide à afficher",matchAssetNames:"Assurez-vous que les noms de vos actifs correspondent exactement à ceux de votre catalogue.",guideTitle:"Guide rapide",guide1Title:"1. Définir le lignage des actifs",guide1Desc:"Utilisez la syntaxe DOT pour définir la circulation des données entre les actifs de votre catalogue.",guide2Title:"2. Ajouter le lignage au niveau colonne",guide2Desc:"Pour un suivi précis, spécifiez les relations entre colonnes :",guide3Title:"3. Types de transformation",guide3Desc:"Utilisez des libellés pour décrire les transformations :",guide4Title:"4. Prévisualiser et enregistrer",guide4Desc:"Le panneau d'aperçu affiche une visualisation en temps réel de votre graphe de lignage.",guideSaveTip:"Cliquez sur Enregistrer le lignage pour persister vos modifications dans le catalogue.",guideTip:"Astuce : les noms des actifs doivent correspondre exactement à ceux de votre catalogue.",guideSyntaxTip:"Cliquez sur le bouton Syntaxe pour la référence complète de DOT.",transformSql:"Transformations SQL",transformEtl:"Pipelines ETL",transformApi:"Intégrations API",transformManual:"Processus manuels",syntaxBasicStructure:"Structure de base",syntaxAssetLevel:"Lignage au niveau actif",syntaxAssetLevelDesc:"Utilisez les noms exacts des actifs de votre catalogue :",syntaxColumnLevel:"Lignage au niveau colonne",syntaxColumnLevelDesc:"Utilisez la syntaxe de port pour les mappages de colonnes :",syntaxTransformTypes:"Types de transformation",syntaxSetVia:"Défini via",syntaxAttribute:"attribut :",syntaxAdditionalAttrs:"Attributs supplémentaires",syntaxNameDisambiguation:"Désambiguïsation des noms",syntaxNameDisambiguationDesc:"Si deux actifs partagent le même nom (sources différentes), utilisez des noms qualifiés :",syntaxTipsTitle:"Astuces",syntaxTip1:"Les noms des actifs doivent correspondre exactement à votre catalogue",syntaxTip2:"Les noms de colonnes ne sont pas sensibles à la casse",syntaxTip3:"⌘S pour enregistrer",syntaxTip4:"Les arêtes en double sont automatiquement ignorées",syntaxTip5:"Les mappages de colonnes nécessitent une arête d'actif parent",edgeCount_one:"{{count}} arête créée",edgeCount_other:"{{count}} arêtes créées",updatedEdgeCount_one:"{{count}} arête mise à jour",updatedEdgeCount_other:"{{count}} arêtes mises à jour",deletedEdgeCount_one:"{{count}} arête supprimée",deletedEdgeCount_other:"{{count}} arêtes supprimées",updatedMappingCount_one:"{{count}} mappage de colonne mis à jour",updatedMappingCount_other:"{{count}} mappages de colonnes mis à jour",deletedMappingCount_one:"{{count}} mappage de colonne supprimé",deletedMappingCount_other:"{{count}} mappages de colonnes supprimés",mappingCount_one:"{{count}} mappage de colonne créé",mappingCount_other:"{{count}} mappages de colonnes créés",duplicateCount_one:"{{count}} doublon ignoré",duplicateCount_other:"{{count}} doublons ignorés",errorCount_one:"{{count}} erreur",errorCount_other:"{{count}} erreurs",saveFailed:"Aucune modification n'a été appliquée",nodeCount_one:"{{count}} nœud",nodeCount_other:"{{count}} nœuds"}
1,m={title:"Gouvernance des données",subtitle:"Gérez la propriété, les accès et la conformité",ownership:"Propriété",accessRequests:"Demandes d'accès",requestAccess:"Demander l'accès",certified:"Certifié",underReview:"En cours de révision",notCertified:"Non certifié",undocumented:"Non documenté",overview:"Vue d'ensemble",auditLog:"Journal d'audit",ownershipCoverage:"Couverture de propriété",undocumentedFields:"Champs non documentés",viewAllArrow:"Tout voir →",viewAll:"Tout voir",pendingRequests:"Demandes en attente",needsReview:"à réviser",recentActivity:"Activité récente",last24h:"dernières 24 h",pendingAccessRequests:"Demandes d'accès en attente",noPendingRequests:"Aucune demande en attente",approve:"Approuver",reject:"Rejeter",assetsCount:"{{owned}} actifs sur {{total}}",noOwnershipYet:"Aucune attribution de propriété pour l'instant",assignFromPanel:"Attribuez des propriétaires depuis le panneau de droite",assetHeader:"Actif",ownerHeader:"Propriétaire",typeHeader:"Type",unassignedAssets:"Actifs non attribués",assignBelow:"Attribuez des propriétaires directement ci-dessous",allHaveOwners:"Tous les actifs ont des propriétaires !",selectUser:"Sélectionner un utilisateur...",assignOwner:"Attribuer un propriétaire",dataClassifications:"Classifications des données",noPendingAccessRequests:"Aucune demande d'accès en attente",requesting:"Demande",accessTo:"accès à",requested:"Demandé",pending:"En attente",all:"Tous",timestamp:"Horodatage",user:"Utilisateur",action:"Action",entity:"Entité",details:"Détails",justNow:"à l'instant",minutesAgo:"il y a {{minutes}} min",hoursAgo:"il y a {{hours}} h",daysAgo:"il y a {{days}} j",public:"Public",internal:"Interne",confidential:"Confidentiel",restricted:"Restreint",publicDesc:"Peut être partagé à l'externe",internalDesc:"Usage interne uniquement",confidentialDesc:"Données sensibles",restrictedDesc:"PII, nécessite une approbation",noAuditLogs:"Aucune entrée d'audit ne correspond à ce filtre.",viewPayload:"Voir le payload"},v={generateDescription:"Générer la description",detectPii:"Détecter les PII",generatingDescription:"Génération de la description...",detectingPii:"Détection des PII...",aiGenerated:"(Généré par IA)"},g={notFound:"Introuvable",unauthorized:"Non autorisé",forbidden:"Interdit",serverError:"Erreur serveur",networkError:"Erreur réseau",validationError:"Erreur de validation",unknownError:"Erreur inconnue"},f={deleteAsset:"Supprimer l'actif",deleteAssetConfirm:"Êtes-vous sûr de vouloir supprimer cet actif ?",deleteAssetWarning:"Cette action supprimera définitivement l'actif et toutes les données associées.",deleting:"Suppression...",deleteRule:"Supprimer la règle",deleteRuleConfirm:"Êtes-vous sûr de vouloir supprimer cette règle de qualité ? Cette action est irréversible.",noExecutionsYet:"Aucune exécution pour l'instant"},h={title:"Tableau de bord",subtitle:"Vue d'ensemble de votre plateforme de gouvernance des données",totalAssets:"Total des actifs",assetsCataloged:"Actifs de données catalogués",glossaryTerms:"Termes du glossaire",termsDefined:"Termes métier définis",domains:"Domaines",dataDomains:"Domaines de données",tags:"Étiquettes",classificationTags:"Étiquettes de classification",recentActivity:"Activité récente",viewAll:"Tout voir",noRecentActivity:"Aucune activité récente",popularTags:"Étiquettes populaires",noTagsYet:"Aucune étiquette pour l'instant",dataDomainsTitle:"Domaines de données",noDomainsYet:"Aucun domaine pour l'instant",glossaryCategories:"Catégories du glossaire",noCategoriesYet:"Aucune catégorie pour l'instant",noDescription:"Aucune description",daysAgo:"il y a {{days}} j",hoursAgo:"il y a {{hours}} h",justNow:"À l'instant",unknownSource:"Source inconnue",featureRequiresPaidPlan:"Disponible avec un plan payant"},A={select:"Langue",es:"Español",en:"English",ca:"Català",pt:"Português"},y={title:"Concepteur de données",subtitle:"Concevez les mappages de données pour vos applications",newProject:"Nouveau projet",searchPlaceholder:"Rechercher des projets...",allStatus:"Tous les statuts",draft:"Brouillon",inProgress:"En cours",completed:"Terminé",archived:"Archivé",noProjects:"Aucun projet pour l'instant",noProjectsHint:"Créez votre premier projet de conception de données",fields:"champs",mapped:"mappés",open:"Ouvrir",edit:"Modifier",delete:"Supprimer",createNewProject:"Créer un nouveau projet",projectName:"Nom du projet",description:"Description",optionalDescription:"Description facultative...",cancel:"Annuler",createProject:"Créer le projet",deleteProject:"Supprimer le projet",deleteProjectConfirm:"Êtes-vous sûr de vouloir supprimer ce projet ? Cette action est irréversible.",editProject:"Modifier le projet",s
1aveChanges:"Enregistrer les modifications",deleteProjectConfirmDetailed:"Êtes-vous sûr de vouloir supprimer « {{name}} » ? Cela supprimera tous les champs et mappages. Cette action est irréversible."},b={title:"Champs non documentés",subtitle:"Champs sans description - {{count}} sur {{total}} champs",stats:"Statistiques",documentationCoverage:"Couverture de documentation",totalFields:"Total des champs",documentedMissing:"{{documented}} documentés, {{missing}} manquants",coverageByDomain:"Couverture par domaine",searchPlaceholder:"Rechercher des champs ou des actifs...",allDomains:"Tous les domaines",allTypes:"Tous les types",selected:"{{count}} sélectionné(s)",previewAutodoc:"Aperçu de l'auto-documentation",applyAutodoc:"Appliquer l'auto-documentation",autodocPreview:"Aperçu de l'auto-documentation",applyAllDescriptions:"Appliquer toutes les descriptions",loadingFields:"Chargement des champs non documentés...",allDocumented:"Tous les champs sont documentés !",adjustFilters:"Essayez d'ajuster vos filtres",allFieldsHaveDescriptions:"Bravo ! Tous les champs ont des descriptions.",fieldName:"Nom du champ",dataType:"Type de données",asset:"Actif",domain:"Domaine",actions:"Actions",noDomain:"Aucun domaine",enterDescription:"Saisir une description...",addDescription:"Ajouter une description",showing:"Affichage de {{from}} à {{to}} sur {{total}}",page:"Page {{page}} sur {{totalPages}}"},C={title:"Catégories",newCategory:"Nouvelle catégorie",loadingCategories:"Chargement des catégories...",noCategories:"Aucune catégorie pour l'instant",createFirst:"Créez votre première catégorie",name:"Nom",description:"Description",created:"Créé",actions:"Actions",edit:"Modifier",delete:"Supprimer",deleteCategory:"Supprimer la catégorie",deleteCategoryConfirm:"Êtes-vous sûr de vouloir supprimer cette catégorie ? Cette action est irréversible.",cancel:"Annuler",deleting:"Suppression..."},S={backToCatalog:"Retour au catalogue",title:"Créer un nouvel actif",subtitle:"Ajoutez un nouvel actif de données à votre catalogue",stepBasicInfo:"Infos de base",stepColumns:"Colonnes",stepReview:"Réviser et créer",assetInformation:"Informations sur l'actif",importFromFile:"Importer depuis un fichier",defineManually:"Définir manuellement",uploadFile:"Téléverser un fichier",failedUpload:"Échec du téléversement du fichier",failedParse:"Échec de l'analyse du fichier",csvStructure:"Structure CSV : name, data_type, description, is_primary_key, is_nullable",assetName:"Nom de l'actif *",assetNamePlaceholder:"par ex. customers, orders",assetNameRequired:"Le nom de l'actif est requis",type:"Type",description:"Description",descriptionPlaceholder:"Décrivez ce que contient cet actif...",dataSensitivity:"Sensibilité des données",classificationLevel:"Niveau de classification pour la gouvernance des données",storageFormat:"Format de stockage",storageFormatHint:"Format de stockage physique (Parquet, Delta, etc.)",dataSource:"Source de données *",selectDataSource:"Sélectionner une source de données...",dataSourceRequired:"La source de données est requise",noDataSources:"Aucune source de données disponible. Créez-en une d'abord dans les paramètres.",domain:"Domaine",selectDomain:"Sélectionner un domaine...",schemaName:"Nom du schéma",schemaPlaceholder:"par ex. public, analytics",owner:"Propriétaire",searchOwner:"Rechercher un propriétaire...",ownerHint:"Personne responsable de l'actif de données",steward:"Data steward",searchSteward:"Rechercher un data steward...",stewardHint:"Personne gérant la qualité et la gouvernance des données",defineColumns:"Définir les colonnes",firstRowHeader:"La première ligne est un en-tête",firstRowHeaderHint:"Désactivez si votre fichier n'a pas de noms de colonnes en ligne 1",reviewAndCreate:"Réviser et créer",assetDetails:"Détails de l'actif",name:"Nom :",typeSummary:"Type :",dataSourceSummary:"Source de données :",domainSummary:"Domaine :",ownerSummary:"Propriétaire :",stewardSummary:"Data steward :",storageFormatSummary:"Format de stockage :",schemaSummary:"Schéma :",descriptionSummary:"Description :",none:"Aucun",columnsCount:"Colonnes ({{count}})",withDescriptions:"{{count}}/{{total}} avec descriptions",potentialPII:"{{count}} PII potentielles",columnHeader:"Colonne",typeHeader:"Type",nullableHeader:"Nullable",descriptionHeader:"Description",yes:"Oui",no:"Non",noDescription:"Aucune description",columnsWithoutDesc:"{{count}} colonnes sans description",columnsWithoutDescHint:"Revenez à l'étape Colonnes et utilisez « Remplir automatiquement les descriptions » pour les générer avec l'IA.",errorOccurred:"Une erreur s'est produite",fixErrors:"Veuillez corriger les erreurs suivantes :",back:"Retour",next:"Suivant",creating:"Création...",createAsset:"Créer l'actif",uploadFileFirst:"Veuillez d'abord téléverser un fichier",noFileData:"Aucune donnée de fic
1hier disponible. Revenez en arrière et téléversez un fichier.",selectAtLeastOneColumn:"Sélectionnez au moins une colonne à inclure",addAtLeastOneColumn:"Ajoutez au moins une colonne",notSpecified:"Non spécifié",notSpecifiedDesc:"Format de stockage non déterminé",table:"Table",tableDesc:"Table de base de données traditionnelle",parquetDesc:"Format colonnaire Apache Parquet",deltaDesc:"Delta Lake avec transactions ACID",icebergDesc:"Apache Iceberg pour les lacs de données",csvDesc:"Valeurs séparées par des virgules",jsonDesc:"JavaScript Object Notation",avroDesc:"Format de sérialisation Apache Avro",orcDesc:"Format Optimized Row Columnar",typeTable:"Table",typeView:"Vue",typeMaterializedView:"Vue matérialisée",typeExternalTable:"Table externe"},D={title:"Passer à Starter",featureRequiresPaid:"« {{featureName}} » est une fonctionnalité payante. Passez à la version supérieure pour la débloquer, ainsi que d'autres !",unlockPower:"Débloquez toute la puissance de Linedat avec les fonctionnalités payantes.",featuresTitle:"Tout ce qui est inclus dans Starter :",features:{aiDescriptions:"Descriptions alimentées par l'IA",brainVisualization:"Visualisation en cerveau",aiAssistant:"Assistant IA",qualityRules:"Règles de qualité des données",teamCollaboration:"Collaboration d'équipe",unlimitedSyncs:"Synchronisations et connecteurs illimités"},upgradeButton:"Mettre à niveau maintenant",laterButton:"Peut-être plus tard",isPaidFeature:"est une fonctionnalité payante",clickToUpgrade:"Cliquez pour voir les options de mise à niveau",processing:"Traitement...",error:"Erreur de traitement. Veuillez réessayer.",onlyAdmins:"Seuls les administrateurs peuvent gérer la facturation.",noOrganization:"Veuillez d'abord sélectionner une organisation.",choosePlan:"Choisissez votre plan",trialEndedTitle:"Votre essai est terminé",monthly:"Mensuel",annually:"Annuel",toggleYearly:"Basculer en facturation annuelle",mostPopular:"Le plus populaire",currentPlan:"Plan actuel",subscribe:"S'abonner",contactSales:"Contacter les ventes",custom:"Personnalisé",tailored:"Adapté à vos besoins",yr:"an",perMonth:"/mois",oneMonthFree:"1 mois offert",starterTrial:"Essai Starter",trialRemaining:"{{days}} j {{hours}} h restant(s)",startTrial:"Essayez Starter gratuitement pendant 14 jours",continueWithFree:"Continuer avec Free",plans:{free:{name:"Free",description:"Explorer individuellement",feat1:"3 utilisateurs",feat2:"Jusqu'à 50 actifs",feat3:"1 source de données",feat4:"Lignage de base",feat5:"Support communautaire"},starter:{name:"Starter",description:"Équipes en croissance",feat1:"10 utilisateurs",feat2:"Jusqu'à 500 actifs",feat3:"200 termes de glossaire",feat4:"Lignage complet",feat5:"Détection complète des PII",feat6:"Glossaire métier",feat7:"Support par e-mail"},professional:{name:"Professional",description:"Organisations à grande échelle",feat1:"50 utilisateurs",feat2:"Jusqu'à 5 000 actifs",feat3:"2 000 termes de glossaire",feat4:"Tout Starter +",feat5:"API lecture/écriture",feat6:"Support prioritaire"},enterprise:{name:"Enterprise",description:"Grandes organisations",feat1:"Jusqu'à 1 000 utilisateurs",feat2:"Jusqu'à 100 000 actifs",feat3:"100 000 termes de glossaire",feat4:"SSO / SAML",feat5:"Support dédié",feat6:"SLA garanti",feat7:"On-premise disponible"}}},q={title:"Chat du catalogue",subtitle:"Posez des questions sur votre catalogue de données",welcome:"Bienvenue dans le Chat du catalogue",welcomeDescription:"Je peux vous aider à explorer votre catalogue de données. Posez-moi des questions sur les tables, colonnes, relations ou recherchez des données spécifiques.",trySuggestions:"Essayez de demander :",placeholder:"Posez une question sur votre catalogue de données...",newConversation:"Nouvelle conversation",thinking:"Réflexion...",sendHint:"Appuyez sur Entrée pour envoyer, Maj+Entrée pour une nouvelle ligne",errorMessage:"Désolé, une erreur s'est produite lors du traitement de votre requête. Veuillez réessayer.",dailyLimitReached:"Vous avez atteint votre limite quotidienne de messages ({{current}}/{{limit}}). Votre limite se réinitialise demain.",errors:{generic:{title:"Une erreur est survenue",message:"Désolé, une erreur s'est produite lors du traitement de votre requête. Veuillez réessayer."},aiUnavailable:{title:"Assistant IA temporairement indisponible",message:"Le service IA est en cours de reprise. Veuillez réessayer dans environ {{seconds}} secondes."},userDailyLimit:{title:"Limite quotidienne atteinte",message:"Vous avez atteint votre limite quotidienne de messages ({{current}}/{{limit}}). Elle se réinitialise demain."},tenantDailyLimit:{title:"Limite de l'organisation atteinte",message:"Votre organisation a atteint sa limite quotidienne d'utilisation de l'IA. Contactez votre administrateur."},rateLimited:{title:"Trop de requêtes",message:"Le service IA est limité pour votre organisation en ce moment. Veuillez réessayer dans quelques secondes."}},quota:{badgeTooltip:"Messages IA quotidiens utilisés / limite de votre plan",warningTitle:"Proche de votre limite quotidienne",warningMessage:"Vous avez utilisé {{current}} messages sur {{limit}} aujourd'hui. Pensez à garder des questions pour demain.",dismiss:"Ignorer"},featureName:"Assistant IA",defaultSuggestions:{s1:"Quelles tables contiennent des informations clients ?",s2:"Montre-moi les relations de la table orders",s3:"Que signifie « churn rate » ?",s4:"Quelles tables ont une faible qualité de données ?",s5:"Comment joindre customers avec orders ?"},relatedAssets:"Actifs associés",toolProgress:{fallback:"Traitement…",search_assets:"Recherche de {{query}}",get_asset_details:"Lecture de la structure",get_asset_quality:"Vérification de la qualité",get_asset_lineage:"Traçage du lignage",search_glossary_terms:"Recherche du terme {{query}}",get_term_details:"Lecture de la définition",toolsUsedSummary_one:"{{count}} consultation du catalogue",toolsUsedSummary_other:"{{count}} consultations du catalogue"},copyMessage:"Copier le message",helpful:"Utile",notHelpful:"Pas utile",cachedResponse:"Réponse en cache",shortcutToggle:"pour basculer",sendHintShort:"envoyer",newLineHint:"nouvelle ligne",listening:"Écoute...",stopListening:"Arrêter",startListening:"Saisie vocale"},P={dashboard:"Tableau de bord admin",platformOverview:"Vue d'ensemble et gestion de la plateforme",totalUsers:"Total des utilisateurs",approvedCount:"{{count}} approuvé(s)",totalAssets:"Total des actifs",catalogedAssets:"Actifs de données catalogués",pendingApprovals:"Approbations en attente",usersAwaitingApproval:"Utilisateurs en attente d'approbation",pendingUserApprovals:"Approbations d'utilisateurs en attente",noPendingApprovals:"Aucune approbation en attente",allUsersApproved:"Tous les utilisateurs ont été approuvés",quickLinks:"Liens rapides",manageUsers:"Gérer les utilisateurs",manageUsersDesc:"Voir, modifier et approuver les utilisateurs",orgSettings:"Paramètres de l'organisation",orgSettingsDesc:"Gérez votre organisation",impersonationAudit:"Audit d'usurpation",impersonationAuditDesc:"Suivre les usurpations admin",manageDomains:"Gérer les domaines",manageDomainsDesc:"Organiser les actifs en domaines",manageGroups:"Gérer les groupes",manageGroupsDesc:"Groupes d'utilisateurs par domaine",governanceLink:"Gouvernance",governanceLinkDesc:"Gouvernance des données et conformité",aiGovernanceLink:"Gouvernance IA",aiGovernanceLinkDesc:"Politique IA, limites et utilisation",governanceGaps:"Lacunes de gouvernance",withoutDomain:"Sans domaine",assetsNotAssigned:"Actifs non attribués à un domaine",withoutOwner:"Sans propriétaire",assetsWithoutOwner:"Actifs sans Data Owner",withoutSteward:"Sans data steward",assetsWithoutSteward:"Actifs sans Data Steward",governanceMetrics:"Métriques de gouvernance",undocumentedFieldsLabel:"Champs non documentés",fieldsNeedingDoc:"Champs nécessitant une documentation",totalColumns:"Total des colonnes",acrossAllAssets:"Sur tous les actifs",documentationCoverage:"Couverture de documentation",accessDenied:"Accès refusé",onlySuperadmin:"Seul un superadmin peut voir toutes les organisations.",organizations:"Organisations",organizationsTotal:"{{count}} organisations au total",searchOrganizations:"Rechercher des organisations...",allPlans:"Tous les plans",planFree:"Free",planStarter:"Starter",planProfessional:"Professional",planEnterprise:"Enterprise",allStatus:"Tous les statuts",orgStatusActive:"Active",orgStatusSuspended:"Suspendue",orgStatusCancelled:"Annulée",orgStatusTrial:"Essai",failedToLoadOrganizations:"Échec du chargement des organisations",noOrganizationsMatchFilters:"Aucune organisation ne correspond à vos filtres",noOrganizationsYet:"Aucune organisation pour l'instant",colOrganization:"Organisation",colPlan:"Plan",colMembers:"Membres",colAssets:"Actifs",colStatus:"Statut",colTrialMode:"Mode essai",colCreated:"Créée",colActions:"Actions",trialActive:"Essai actif",expires:"Expire",enableTrial:"Activer l'essai",disableTrialConfirm:"Désactiver le mode essai pour {{name}} ?",enableTrialMode:"Activer le mode essai",organizationLabel:"Organisation",currentPlanLabel:"Plan actuel",whatIsTrialMode:"Qu'est-ce que le mode essai ?",expirationDate:"Date d'expiration (facultative)",leaveEmptyUnlimited:"Laissez vide pour un accès d'essai illimité",activating:"Activation...",impersonationAuditSubtitle:"Voir l'historique des sessions d'usurpation admin",searchAuditPlaceholder:"Rechercher par admin, utilisateur ou motif...",statusLabel:"Statut",filterAll:"Tous",filterActive:"Actives",filterEnded:"Terminées",failedToLoadSessions:"É
1chec du chargement des sessions d'usurpation",noSessionsFound:"Aucune session d'usurpation trouvée",noSessionsHint:"Les sessions apparaîtront ici lorsque les admins usurperont des utilisateurs",noActionsRecorded:"Aucune action enregistrée pour cette session",actionsDuringSession:"Actions effectuées pendant la session",colAdmin:"Admin",colImpersonatedUser:"Utilisateur usurpé",colReason:"Motif",colDuration:"Durée",colStarted:"Démarrée",impersonateUser:"Usurper un utilisateur",impersonateWarningTitle:"Important",impersonateWarningDescription:"Vous êtes sur le point de voir le système en tant qu'autre utilisateur. Toutes les actions seront consignées à des fins d'audit. Certaines actions sont restreintes pendant l'usurpation.",selectUser:"Sélectionner un utilisateur",searchByNameOrEmail:"Rechercher par nom ou e-mail...",noUsersFound:"Aucun utilisateur trouvé",impersonating:"Usurpation",selectOrganization:"Sélectionner une organisation (facultatif)",useDefaultOrganization:"Utiliser l'organisation par défaut de l'utilisateur",reasonForImpersonation:"Motif de l'usurpation",reasonPlaceholder:"par ex., Enquête sur un problème signalé concernant l'accès au catalogue de données...",reasonAuditNote:"Ce motif sera consigné à des fins d'audit.",restrictionsDuringImpersonation:"Restrictions pendant l'usurpation",restrictionChangeRoles:"Impossible de modifier les rôles des utilisateurs",restrictionDeleteUsers:"Impossible de supprimer des utilisateurs ou des organisations",restrictionApproveBlock:"Impossible d'approuver/bloquer des utilisateurs",restrictionStartAnother:"Impossible de démarrer une autre usurpation",starting:"Démarrage...",startImpersonation:"Démarrer l'usurpation"},I={title:"Gestion des utilisateurs",usersTotal:"{{count}} utilisateurs au total",pendingApproval:"{{count}} en attente d'approbation",inviteUser:"Inviter un utilisateur",editUser:"Modifier l'utilisateur",searchPlaceholder:"Rechercher par nom ou e-mail...",emailAddress:"Adresse e-mail",emailPlaceholder:"[email protected]",fullName:"Nom complet",namePlaceholder:"Jean Dupont",roleLabel:"Rôle",roleViewer:"Lecteur",roleViewerDesc:"Accès en lecture seule au catalogue et aux actifs de données",roleSteward:"Data Steward",roleStewardDesc:"Gère les métadonnées, règles de qualité, sensibilité et étiquettes dans les domaines attribués",roleOwner:"Data Owner",roleOwnerDesc:"Responsable des actifs, du lignage et des projets dans les domaines possédés",roleAdmin:"Admin",roleAdminDesc:"Accès complet à la configuration de l'organisation, utilisateurs, rôles et toutes les ressources",userIsActive:"L'utilisateur est actif",inactiveCannotLogin:"Les utilisateurs inactifs ne peuvent pas se connecter au système",inviteBanner:"L'utilisateur recevra un e-mail pour créer son compte et définir son mot de passe.",sendInvitation:"Envoyer l'invitation",saveChanges:"Enregistrer les modifications",deleteConfirm:"Êtes-vous sûr de vouloir supprimer cet utilisateur ? Cette action est irréversible.",deactivateConfirm:"Êtes-vous sûr de vouloir désactiver {{count}} utilisateur(s) ?",deleteSelectedConfirm:"Êtes-vous sûr de vouloir supprimer {{count}} utilisateur(s) ? Cette action est irréversible.",noDeletableUsers:"Aucun utilisateur supprimable sélectionné. Seuls les utilisateurs invités manuellement peuvent être supprimés.",failedToInvite:"Échec de l'invitation de l'utilisateur",failedToUpdate:"Échec de la mise à jour de l'utilisateur",noUsersFound:"Aucun utilisateur trouvé",approveUser:"Approuver l'utilisateur",deactivateUser:"Désactiver l'utilisateur",activateUser:"Activer l'utilisateur",deleteUser:"Supprimer l'utilisateur",editUserAction:"Modifier l'utilisateur",impersonateUser:"Usurper l'utilisateur",cantDeleteYourself:"Impossible de vous supprimer vous-même",approveSelected:"Approuver la sélection",activateSelected:"Activer la sélection",deactivateSelected:"Désactiver la sélection",deleteSelected:"Supprimer la sélection",custodianCalloutTitle:"Vous cherchez «Data Custodian» ?",custodianCalloutBody:"Custodian est un rôle technique par domaine (DBA, integration custodian), pas un rôle au niveau de toute l'organisation — par conception (ISO/IEC TR 38505-2 §6 / DAMA-DMBOK). Pour enrôler un Custodian : invitez-le ici en tant que VIEWER, puis allez sur /admin/groups, ouvrez le groupe du domaine où il opérera et ajoutez-le avec le rôle «Data Custodian»."}
1,T={title:"Groupes",subtitle:"Gérez les groupes qui associent des utilisateurs à des domaines et à des rôles",createGroup:"Créer un groupe",editGroup:"Modifier le groupe",createNewGroup:"Créer un nouveau groupe",groupName:"Nom du groupe",groupNamePlaceholder:"par ex., Stewards Finance",domain:"Domaine",selectDomain:"Sélectionner un domaine...",role:"Rôle",description:"Description",descriptionPlaceholder:"Description facultative",noGroups:"Aucun groupe pour l'instant",noGroupsHint:"Créez des groupes pour organiser les utilisateurs par domaine et par rôle.",members:"membres",memberCount:"{{count}} membre",memberCountPlural:"{{count}} membres",addMember:"Ajouter un membre",searchUsers:"Rechercher des utilisateurs...",noUsersFound:"Aucun utilisateur trouvé",allUsersMembers:"Tous les utilisateurs sont déjà membres",noMembers:"Aucun membre pour l'instant",noMembersHint:"Cliquez sur « Ajouter un membre » pour commencer",removeFromGroup:"Retirer du groupe",deleteGroupConfirm:"Êtes-vous sûr de vouloir supprimer le groupe « {{name}} » ?",roleDescriptions:{admin:"Contrôle total du domaine du groupe : gère les membres, l'ownership et les politiques.",dataOwner:"Responsable des données qui existent dans le domaine et de qui peut y accéder.",dataSteward:"Responsable de la signification, de la qualité et de la classification des données du domaine.",dataCustodian:"Opérateur technique : exécute le profiling, rafraîchit les connecteurs, lance les règles de qualité. N'accorde PAS d'approbations et ne change PAS les décisions de gouvernance (séparation des fonctions).",viewer:"Accès en lecture seule aux assets et métadonnées du domaine."}},R={title:"Domaines",subtitle:"Organisez vos actifs de données en domaines métier ({{count}} au total)",createDomain:"Créer un domaine",editDomain:"Modifier le domaine",createNewDomain:"Créer un nouveau domaine",domainName:"Nom du domaine",domainNamePlaceholder:"par ex., Finance, Ventes, Marketing",parentDomain:"Domaine parent (facultatif)",noneTopLevel:"Aucun (domaine de premier niveau)",descriptionOptional:"Description (facultative)",descriptionPlaceholder:"Quelles données couvre ce domaine ?",noDomains:"Aucun domaine pour l'instant",noDomainsHint:"Créez des domaines pour organiser vos actifs de données par secteur d'activité.",noDomainsExamples:"Exemples : Finance, Ventes, Marketing, Ingénierie, RH",deleteConfirm:`Êtes-vous sûr de vouloir supprimer le domaine « {{name}} » ?
2
3Cela échouera si le domaine comporte des sous-domaines ou des actifs attribués.`,domainDetails:"Détails du domaine",domainGroups:"Groupes",noGroupsForDomain:"Aucun groupe attribué à ce domaine",domainOwners:"Propriétaires et data stewards du domaine",noOwnersForDomain:"Aucun propriétaire attribué à ce domaine",sub:"sous"},_={title:"Gouvernance des données",subtitle:"Attribuez des domaines, propriétaires et data stewards à vos actifs de données",allDomains:"Tous les domaines",noDomainAssigned:"Aucun domaine attribué",searchAssets:"Rechercher des actifs...",assignDomain:"Attribuer un domaine",assignOwner:"Attribuer un propriétaire",assignSteward:"Attribuer un data steward",domainLabel:"Domaine :",selectDomain:"Sélectionner un domaine...",dataOwnerLabel:"Data Owner :",dataStewardLabel:"Data Steward :",applyToAssets:"Appliquer à {{count}} actifs",suggested:"Suggéré",allUsers:"Tous les utilisateurs",noUsersFound:"Aucun utilisateur trouvé",domainAssigned:"Domaine attribué à {{count}} actifs",assignedToAssets:"Attribué à {{count}} actifs ({{skipped}} déjà attribués)",failedAssignDomain:"Échec de l'attribution du domaine",failedAssignOwnership:"Échec de l'attribution de la propriété",noAssets:"Aucun actif trouvé",allAssetsHaveDomain:"Tous les actifs ont un domaine attribué",adjustFilters:"Essayez d'ajuster vos filtres",notAssigned:"Non attribué",assetsCount:"{{count}} actifs"},x={assignOwner:"Attribuer un propriétaire",assigningTo:"Attribution du propriétaire à",selectUser:"Sélectionner un utilisateur",searchUsers:"Rechercher des utilisateurs...",suggested:"Suggéré",allUsers:"Tous les utilisateurs",noUsersFound:"Aucun utilisateur trouvé",ownershipType:"Type de propriété",dataOwner:"Data Owner",dataOwnerDesc:"Contrôle et responsabilité complets sur l'actif",dataSteward:"Data Steward",dataStewardDesc:"Gère la qualité des données et la documentation",notesOptional:"Notes (facultatives)",notesPlaceholder:"Ajoutez toute note concernant cette attribution...",failedToAssign:"Échec de l'attribution du propriétaire. Veuillez réessayer.",ownershipHistory:"Historique de propriété",assigned:"attribué",removeOwner:"Retirer le propriétaire"},w={placeholder:"Rechercher dans le catalogue...",fuzzy:"Approximative",semantic:"Sémantique",semanticUpgradeTip:"Passez à Starter pour utiliser la recherche sémantique al
3imentée par l'IA",semanticUnavailable:"Recherche sémantique non disponible",semanticTooltip:"Recherche sémantique (trouve des significations similaires)",noResults:"Aucun résultat trouvé pour « {{query}} »",recentSearches:"Recherches récentes",searchAllPlaceholder:"Rechercher des actifs, termes et règles de qualité...",fuzzyOn:"Recherche approximative ACTIVÉE (tolère les fautes de frappe)",fuzzyOff:"Recherche approximative DÉSACTIVÉE (correspondances exactes uniquement)",resultCount:"résultat(s)",allTab:"Tout",assetsTab:"Actifs",termsTab:"Termes",rulesTab:"Règles",clear:"Effacer",typeToSearch:"Tapez pour rechercher dans toutes les ressources",minCharacters:"Minimum 2 caractères",didYouMean:"Voulez-vous dire :",tryExact:"Essayez une correspondance exacte ou un autre terme",tryFuzzy:"Essayez la recherche approximative ou un autre terme",navigate:"Naviguer",select:"Sélectionner"},E={noNotifications:"Aucune notification"},L={creating:"Création...",yourOrganization:"Votre organisation",pendingApproval:"En attente d'approbation",pendingDescription:"Votre organisation a été créée. Un administrateur examinera votre demande et vous serez notifié par e-mail une fois approuvée.",accountBlocked:"Compte bloqué",blockedDescription:"Votre compte a été bloqué. Contactez le support pour plus d'informations.",checkStatus:"Vérifier le statut",signOut:"Se déconnecter"},j={title:"Titre",createTicket:"Créer un ticket",connectIntegration:"Connecter l'intégration",export:"Exporter",statusOpen:"Ouvert",statusInProgress:"En cours",statusResolved:"Résolu",statusClosed:"Fermé",priorityLow:"Faible",priorityMedium:"Moyenne",priorityHigh:"Élevée",priorityCritical:"Critique",allStatus:"Tous les statuts",allPriority:"Toutes les priorités",searchPlaceholder:"Rechercher des tickets...",noTicketsFound:"Aucun ticket trouvé",noTicketsHint:"Créez votre premier ticket pour commencer",colTitle:"Titre",colStatus:"Statut",colPriority:"Priorité",colLinkedTo:"Lié à",colCreated:"Créé",colAssigned:"Attribué",colActions:"Actions",assignee:"Attribuer à",unassigned:"Non attribué",deleteConfirm:"Êtes-vous sûr de vouloir supprimer ce ticket ?",editTicket:"Modifier le ticket",updateError:"Échec de la mise à jour du ticket. Veuillez réessayer.",resolutionNotes:"Notes de résolution",resolutionNotesPlaceholder:"Décrivez comment ce ticket a été résolu...",showing:"Affichage de {{from}} à {{to}} sur {{total}} tickets",total:"Total",linkedTo:"Lié à",fieldTitle:"Titre",fieldDescription:"Description",fieldPriority:"Priorité",titlePlaceholder:"Brève description du problème...",descriptionPlaceholder:"Fournissez plus de détails sur le problème...",createError:"Échec de la création du ticket. Veuillez réessayer.",ticketCreated:"Ticket créé !",viewInTickets:"Voir dans les tickets",destination:"Destination",failedToCreate:"Échec de la création du ticket",creating:"Création...",noIntegrationsConnected:"Aucune intégration connectée",connectToolFirst:"Connectez d'abord un outil de gestion de projet",goToIntegrationsSettings:"Accéder aux paramètres d'intégrations",platform:"Plateforme",selectPlatform:"Sélectionner une plateforme...",project:"Projet",loadingProjects:"Chargement des projets...",selectProject:"Sélectionner un projet...",type:"Type",loadingTypes:"Chargement des types...",selectTypeOptional:"Sélectionner un type (facultatif)...",ticketTitlePlaceholder:"Titre du ticket",describeTask:"Décrivez la tâche...",description:"Description",priority:"Priorité"},k={title:"Paramètres",subtitle:"Configurez les fonctionnalités IA et gérez votre catalogue de données",navOrganization:"Organisation",navOrganizationDesc:"Équipe et paramètres",navIntegrations:"Intégrations",navIntegrationsDesc:"Jira, Linear, GitHub",navDataSources:"Sources de données",navDataSourcesDesc:"Snowflake, PostgreSQL",navUsage:"Utilisation",navUsageDesc:"Ressources et consommation IA",aiProvider:"Fournisseur IA",featureAutoDoc:"Auto-Doc",featurePiiDetection:"Détection PII",featureSemanticSearch:"Recherche sémantique",searchIndex:"Index de recherche",searchIndexDescription:"Indexer les actifs et les termes pour la recherche sémantique",indexed:"{{count}} indexé(s)",assets:"Actifs",terms:"Termes",indexing:"Indexation...",indexAll:"Tout indexer",indexAutoNote:"L'index de recherche est mis à jour automatiquement toutes les quelques heures. Une réindexation manuelle n'est nécessaire qu'après des modifications en masse.",forceReindex:"Forcer une réindexation complète…",forceReindexConfirm:"Cela réindexera l'intégralité de votre catalogue ({{count}} entités). L'index automatique couvre déjà les modifications normales. Continuer ?",forceReindexYes:"Réindexer maintenant",forceReindexCancel:"Annuler",requiresOpenAiKey:"Nécessite une clé API OpenAI",requiresProfessionalPlan:"Disponible sur le plan Professional ou supérieur",chatCache:"Cache du chat",chatCacheDescription:"Réponses en cache pour un chat plus rapide",activeCount:"{{count}} actifs",cacheActive:"Actifs",cacheHits:"Correspondances",cacheExpired:"Expirés",cacheTotal:"Total",hitRate:"Taux de correspondance",byIntent:"Par intention",noCacheData:"Aucune donnée de cache",apiConfiguration:"Configuration API",configureApiKeys:"Configurez les clés API dans votre backend",getFreeGroqKey:"Obtenir une clé API Groq gratuite",noOrganizationSelected:"Aucune organisation sélectionnée",selectOrCreateOrganization:"Veuillez sélectionner ou créer une organisation pour continuer.",manageOrgSettings:"Gérez les paramètres de votre organisation et les membres de l'équipe",tabGeneral:"Général",tabMembers:"Membres",tabPlanUsage:"Plan et utilisation",membersFromAdmin:"Les membres sont gérés depuis la page Utilisateurs admin.",goToUserManagement:"Accéder à la gestion des utilisateurs",organizationDetail
3s:"Détails de l'organisation",organizationName:"Nom de l'organisation",organizationSlug:"Slug de l'organisation",dangerZone:"Zone dangereuse",deleteOrgWarning:"Une fois qu'une organisation est supprimée, il n'y a pas de retour possible. Soyez certain de votre choix.",deleteOrganization:"Supprimer l'organisation",planName:"Plan {{plan}}",planDescription_free:"Fonctionnalités de base pour les petites équipes",planDescription_starter:"Fonctionnalités essentielles pour les équipes en croissance",planDescription_professional:"Fonctionnalités avancées pour les grandes équipes",planDescription_enterprise:"Fonctionnalités personnalisées pour l'entreprise",upgradePlan:"Mettre à niveau le plan",usage:"Utilisation",teamMembers:"Membres de l'équipe",limitReachedMembers:"Limite atteinte. Mettez à niveau pour ajouter plus de membres.",assetsLabel:"Actifs",limitReachedAssets:"Limite atteinte. Mettez à niveau pour ajouter plus d'actifs.",availablePlans:"Plans disponibles",planLimits_free:"3 utilisateurs, 50 actifs",planLimits_starter:"10 utilisateurs, 500 actifs",planLimits_professional:"50 utilisateurs, 5000 actifs",planLimits_enterprise:"Illimité",currentPlan:"Plan actuel",integrationsSubtitle:"Connectez vos outils de gestion de projet pour créer des tickets directement depuis Linedat",noIntegrationsAvailable:"Aucune intégration disponible",configureIntegrationCredentials:"Configurez les identifiants d'intégration dans le fichier .env de votre backend",configuration:"Configuration",enableIntegrationsHint:"Pour activer les intégrations, ajoutez les identifiants OAuth au fichier .env de votre backend :",integrationConnected:"Connecté",integrationExpired:"Expiré",project:"Projet",disconnect:"Déconnecter",reconnect:"Reconnecter",connecting:"Connexion...",connect:"Connecter",usagePage:{title:"Utilisation et limites",subtitle:"Vue consolidée de la consommation de votre organisation",planBadge:"Plan : <b>{{plan}}</b>",managePlan:"Gérer le plan",upgradePlan:"Mettre à niveau le plan",resourcesTitle:"Ressources du catalogue",resourcesDescription:"Objets créés dans votre catalogue",aiTitle:"IA — utilisation du jour",aiDescription:"Se réinitialise chaque jour à 00:00 UTC",users:"Utilisateurs",assets:"Actifs",terms:"Termes du glossaire",domains:"Domaines",chatTenant:"Chat (organisation)",autodocTenant:"Autodoc (organisation)",chatUser:"Chat (vous)",concurrent:"Requêtes IA concurrentes",unlimited:"illimité",warningAt80:"Approche des 80 % — envisagez d'augmenter la limite ou contactez votre admin",lastUpdated:"Mis à jour {{time}}",loadingResources:"Chargement de l'utilisation des ressources…",loadingAi:"Chargement de l'utilisation de l'IA…",aiUnavailable:"Les données d'utilisation de l'IA ne sont pas disponibles pour le moment."}},z={loading:"Chargement de votre cerveau de données...",failedToLoadGraph:"Échec du chargement du graphe",tryAgain:"Réessayer",noAssetsFound:"Aucun actif trouvé",adjustFilters:"Essayez d'ajuster vos filtres pour voir plus de résultats.",addAssetsToCatalog:"Ajoutez des actifs à votre catalogue pour les visualiser ici.",columns:"Colonnes",sensitivity:"Sensibilité",dataSource:"Source de données",schema:"Schéma",domain:"Domaine",tags:"Étiquettes",upstream:"Amont",downstream:"Aval",nMore:"+{{count}} de plus",noLineageConnections:"Aucune connexion de lignage",viewFullDetails:"Voir tous les détails",noDataToDisplay:"Aucune donnée à afficher",searchAssets:"Rechercher des actifs...",saveInvestigation:"Enregistrer l'enquête",investigationNamePlaceholder:"Nom de l'enquête...",saveInvestigationHint:"Cela enregistrera vos filtres actuels, le nœud sélectionné et la position du graphe.",noSavedInvestigations:"Aucune enquête enregistrée pour l'instant. Cliquez sur Enregistrer pour préserver vos filtres et votre position actuels.",limitReached:"Limite atteinte",limitReachedDescription:"Vous pouvez enregistrer jusqu'à 3 enquêtes sur le plan gratuit. Supprimez une enquête existante ou passez à Starter pour des enregistrements illimités.",gotIt:"Compris",upgradeToStarter:"Passer à Starter",assetTypes:"Types d'actifs",dataSources:"Sources de données",domains:"Domaines",saveCurrentInvestigation:"Enregistrer l'enquête actuelle",limitReachedShort:"Limite atteinte (3/3)",galaxy:{title:"Galaxie de domaines",description:"Lignage et gouvernance inter-domaine
3s",edges_count:"{{count}} arêtes inter-domaines",domains_count:"{{count}} domaines",recompute:"Recalculer",recompute_running:"Recalcul en cours…",recompute_queued:"Recalcul mis en file — le graphe sera actualisé sous peu.",last_recomputed_at:"Dernier recalcul : {{time}}",loading:"Chargement de la galaxie de domaines…",error_title:"Impossible de charger le graphe de domaines",error_retry:"Réessayer",empty:"Aucun domaine ne correspond à votre périmètre.",edge_click_hint:"Cliquez sur une arête pour afficher les détails de gouvernance.",mobile_hint:"Touchez une arête pour afficher les détails",node:{unassigned:"Non assigné",external_domain:"Domaine externe",no_steward:"Aucun steward",no_owner:"Aucun propriétaire",assets:"{{count}} actifs",flows:"{{count}} flux"},layers:{default:{label:"Par défaut",description:"Épaisseur d'arête = nb de flux"},pii:{label:"PII",description:"Flux PII — vert = contrat, rouge = sans contrat"},risk:{label:"Risque",description:"Couleur = niveau de risque maximal"},contracts:{label:"Contrats",description:"Opacité = couverture contractuelle"},value:{label:"Valeur",description:"Épaisseur = poids de valeur ; intensité = usage 30j"},quality:{label:"Qualité",description:"Couleur = sévérité de la dérive de qualité aval"},lifecycle:{label:"Cycle de vie",description:"Pointillé = arêtes touchant des actifs deprecated/archived"},authority:{label:"Autorité",description:"Couleur = ambiguïté de propriété"},v2_badge:"v2",v2_tooltip:"Disponible en v2"},insights:{title:"Insights",dci:{title:"Indice de couplage des domaines",description:"Top 3 des domaines les plus couplés",in:"In : {{count}}",out:"Out : {{count}}"},pii_flow:{title:"Flux PII inter-domaines",description:"Flux PII sans contrat ni DPIA",action_required:"Action requise — activez la couche PII pour les localiser"},orphan:{title:"Flux orphelins (sans contrat)",description:"Top 5 des arêtes sans contrat"},stewardship:{title:"Manques de stewardship",description:"Domaines très consommés avec peu de stewards",no_steward:"Aucun steward",steward_count:"{{count}} steward",usage_30d:"{{count}} req/30j"},quality_drift:{title:"Dérive de qualité aval",description:"Arêtes où la qualité chute de ≥30 pts"},lifecycle_risk:{title:"Risque cycle de vie",description:"Arêtes touchant des actifs deprecated/archived",touched_count:"{{count}} arêtes affectées"},empty:"Aucun insight pour le moment"},edge:{drill_down_title:"{{source}} → {{target}}",pii_crossed:"PII traversée",contract_active:"Contrat actif",contract_none:"Sans contrat",dpia_required:"DPIA requise",risk:{low:"risque faible",medium:"risque moyen",high:"risque élevé",critical:"risque critique"},stats:{title:"Statistiques",lineage_flows:"Flux de lignage",column_mappings:"Mappages de colonnes",usage_30d:"Usage 30j (req)",value_weight:"Poids de valeur",ownership_ambiguity:"Ambiguïté de propriété",open_violations:"Violations ouvertes"},transformation_types:"Types de transformation",sample_flows:"Flux d'exemple ({{count}})",governance:{title:"État de gouvernance",contract:"Contrat",violations:"Violations ouvertes",max_risk:"Risque max.",dpia:"DPIA",active:"Actif",none:"Aucun",required:"Requise",not_required:"Non requise"},actions:{note:"Actions en v2 — uniquement visuelles dans ce prototype",contract_draft:"Brouillon de contrat",escalate:"Escalader",request_dpia:"Demander DPIA",assign_steward:"Assigner steward"}},permissions:{read_denied:"Vous n'avez pas l'autorisation de voir le graphe de domaines.",recompute_denied:"Vous n'avez pas l'autorisation de recalculer le graphe de domaines."},search:{placeholder:"Rechercher des domaines…",clear:"Effacer la recherche",matches:"{{count}} domaine correspond ; cliquez sur un nœud pour focaliser.",matches_plural:"{{count}} domaines correspondent ; cliquez sur un nœud pour focaliser."},focus:{label:"Focus : {{name}}",tooltip:"Affichage des arêtes connectées au domaine sélectionné uniquement. Cliquez pour effacer.",clear:"Effacer le filtre de focus"},recompute_error:"Recalcul échoué : {{error}}",stale_badge:"Obsolète"}},M={title:"Une erreur est survenue",description:"Une erreur inattendue s'est produite. Notre équipe a été notifiée.",errorDetails:"Détails de l'erreur (dev uniquement)",reloadPage:"Recharger la page",tryAgain:"Réessayer"},N={accountBlocked:"Compte bloqué",requestSubmitted:"Demande soumise",completeProfile:"Complétez votre profil",blockedDescription:"Votre compte a été bloqué. Veuillez contacter le support pour obtenir de l'aide.",submittedDescription:"Votre demande d'accès a été soumise. Vous recevrez une notification par e-mail une fois votre accès accordé.",provideInfoDescription:"Veuillez fournir vos coordonnées pour demander l'accès à la plateforme.",fullName:"Nom complet",fullNamePlaceholder:"Saisissez votre nom complet",phoneNumber:"Numéro de téléphone",reasonForAccess:"Motif de la demande d'accès",reasonPlaceholder:"Dites-nous pourquoi vous avez besoin d'accéder à Linedat...",submitError:"Échec de la soumission de la demande. Veuillez réessayer.",submitRequest:"Soumettre la demande",checkStatusAgain:"Vérifier à nouveau le statut",needHelp:"Besoin d'aide ?",contactSupport:"Contacter le support"},F={title:"Gouvernance IA",subtitle:"ISO/IEC 38507 — Supervision, audit et contrôle de l'utilisation de l'IA",exp
3ortReport:"Exporter le rapport",export:{successTitle:"Téléchargement lancé",errorTitle:"Échec de l'export",errorGeneric:"Réessayez dans quelques secondes.",forbidden:"Vous n'avez pas la permission de télécharger ce rapport.",unauthenticated:"Votre session a expiré. Veuillez vous reconnecter."},overview:"Vue d'ensemble",reviews:"Révisions",risks:"Registre des risques",auditTrail:"Piste d'audit",biasAnalysis:"Analyse des biais",noPendingReviews:"Aucune révision en attente",noRiskAssessments:"Aucune évaluation de risque enregistrée",totalInteractions:"Total des interactions",last30Days:"30 derniers jours",acceptanceRate:"Taux d'acceptation",pendingReview:"En attente de révision",accepted:"Accepté",edited:"Modifié",rejected:"Rejeté",piiRedacted:"PII expurgées",usageByType:"Utilisation par type d'action",approve:"Approuver",reject:"Rejeter",markReviewed:"Marquer comme révisé",rejectDialog:{title:"Rejeter le contenu IA",description:"Indiquez le motif du rejet. Il sera enregistré dans l'historique de révision et visible pour l'audit.",entityLabel:"Contenu :",reasonLabel:"Motif *",reasonPlaceholder:"Ex. La description contient des informations inexactes sur…",reasonRequired:"Un motif est requis pour rejeter.",cancel:"Annuler",confirm:"Confirmer le rejet"},reviewTrail:{title:"Historique de révision IA",subtitle:"Qui a approuvé ou rejeté ce contenu et quand (registre immuable).",viewHistory:"Voir l'historique",noHistory:"Aucune révision enregistrée",fromLabel:"depuis",reasonLabel:"Motif",snapshotToggle:"Voir le texte révisé",systemReviewer:"Système",badge:{ai_draft:"Brouillon IA",human_reviewed:"Révisée",approved:"Approuvée",rejected:"Rejetée",human:"Humaine",unknown:"Sans statut"}},exportCsv:"Exporter en CSV",noAlerts:"Aucune disparité significative détectée",alertsDetected:"Alertes détectées",actionAutodocTable:"Autodoc table",actionAutodocColumn:"Autodoc colonne",actionAutodocTerm:"Autodoc terme",actionAutodocBulk:"Autodoc en masse",actionPiiClassify:"Classification PII",actionChatMessage:"Chat",actionSemanticSearch:"Recherche sémantique",logDate:"Date",logType:"Type",logProvider:"Fournisseur",logEntity:"Entité",logDecision:"Décision",logTime:"Temps (ms)",generated:"Généré",inParent:"dans",mitigation:"Atténuation",nextReviewLabel:"Prochaine révision",residualRisk:"Risque résiduel",reviewed:"Révisé",byDimension:"Par {{dimension}}",disparity:"Disparité",noDisparities:"Aucune disparité significative détectée au cours des {{days}} derniers jours ({{interactions}} interactions).",value:"Valeur",total:"Total",acceptedCol:"Acceptés",rejectedCol:"Rejetés",acceptRateCol:"Taux d'acceptation",bias:{windows:"Fenêtre actuelle {{cur}} j · baseline {{base}} j",scopeTitle:"À propos de cette métrique",scopeHelp:"Surveille l'acceptation humaine du contenu généré par l'IA (un proxy de qualité) par catégorie d'utilisation IA (type d'action, fournisseur, type d'entité). Ce n'est PAS une dérive de prédiction/embedding ni une équité pour les groupes protégés de personnes (c'est la FRIA / Art. 10).",baselineCol:"Baseline",driftCol:"Δ Dérive",statusCol:"Statut",driftStatus:{ok:"Stable",drifting_down:"En dérive ↓",improving:"En amélioration ↑",insufficient_data:"Données insuffisantes"},groupsDrifting:"{{count}} groupe(s) en dérive",createIncident:"Créer un incident",incidentDialogTitle:"Créer un incident à partir d'un constat de dérive",incidentSystem:"Système IA",incidentSeverity:"Sévérité",incidentTitle:"Titre",incidentDescription:"Description",incidentSubmit:"Créer l'incident",incidentCreated:"Incident créé avec succès",incidentError:"Impossible de créer l'incident",noSystems:"Aucun système IA enregistré. Créez-en un d'abord dans l'inventaire."},policyTab:{tabLabel:"Politique et limites",usageTitle:"Utilisation IA du jour",usageAsOf:"Plan : <b>{{plan}}</b> · au {{time}}",loadingUsage:"Chargement de l'utilisation…",loadingPolicy:"Chargement de la politique…",tenantChatMessages:"Messages de chat de l'organisation",tenantAutodoc:"Autodoc de l'organisation",yourChatMessages:"Vos messages de chat",unlimited:"illimité",featureToggles:{title:"Bascules de fonctionnalités",description:"Activez ou désactivez des capacités IA entières pour votre organisation.",autodoc:"Auto-documentation",chat:"Chat IA",pii:"Détection des PII",semanticSearch:"Recherche sémantique"},review:{title:"Human-in-the-loop",description:"Exiger une approbation humaine avant la publication du contenu généré par IA.",requireReview:"Exiger une révision avant publication",requireAiBeforeLifecycle:"Exiger la révision IA avant le cycle de vie",requireAiBeforeLifecycleHelp:"Bloque l'envoi du terme à la révision du cycle de vie tant que la provenance IA est en brouillon ou rejetée. Destiné aux locataires régulés (banque, santé, secteur public)."},limits:{title:"Limites quotidiennes",description:"Plafonds par organisation sur l'utilisation de l'IA. 0 signifie illimité.",customized:"Personnalisé",resetToDefaults:"Réinitialiser aux valeurs par défaut du plan",chatPerDay:"Messages de chat / jour",chatPerDayHint:"Total des messages pour tous les utilisateurs de votre organisation.",autodocPerDay:"Générations d'autodoc / jour",autodocPerDayHint:"Compte les descriptions de tables/colonnes/termes/masse combinées.",maxConcurrent:"Nombre max. d'appels IA concurrents",maxConcurrentHint:"Requêtes parallèles servies pour votre organisation en même temps."},dataProtection:{title:"Protection des données",description:"Mesures ISO 38507 appliquées avant l'envoi des données aux fournisseurs de LLM.",redactPii:"Expurger les PII dans les prompts",excludeConfidential:"Exclure les données confidentielles",excludeRestricted:"Exclure les données restreintes"},retention:{title:"Rétention",description:"Durée de conservation des enregistrements liés à l'IA. Valeurs en jours.",logsDays:"Rétention des journaux d'utilisation (jours)",conversationsDays:"Rétention des conversations (jours)"},discard:"Abandonner",save:"Enregistrer les modifications",saveSuccess:"Politique IA mise à jour",saveErrorTitle:"Échec de la mise à jour de la politique",saveErrorGeneric:"Erreur inconnue",committeeApproval:{title:"Ap
3probation du comité",description:"ISO/IEC 38507 §6.2 — sépare le rôle de gouvernance (comité) du rôle opérationnel (steward). Lorsqu'elle est activée, les changements de la politique IA passent par un flux de propositions signées par le comité.",requireFlag:"Exiger l'approbation du comité pour les changements de politique",requireFlagHelp:"Les modifications directes de la politique IA sont bloquées tant que cette option est active ; les stewards soumettent des propositions revues par le comité de gouvernance.",activeBanner:"L'approbation du comité est active. En enregistrant, vos changements seront envoyés en tant que proposition pour examen par le comité — la politique N'est PAS modifiée directement.",summaryLabel:"Résumé du changement (facultatif, visible par le chair)",summaryPlaceholder:"Pourquoi ce changement est-il nécessaire ?",submitForReview:"Soumettre au comité pour examen",submitSuccess:"Proposition envoyée au comité",submitErrorTitle:"Échec de l'envoi de la proposition",nothingToPropose:"Aucun changement à proposer en dehors du flag du comité.",directEditBlockedTitle:"Approbation du comité requise",directEditBlockedHelp:"Cette organisation exige l'approbation du comité pour les changements de politique IA. Enregistrez à nouveau pour envoyer vos modifications en tant que proposition.",pendingTitle:"Propositions en attente ({{count}})",pendingDescription:"Changements de politique proposés en attente de décision du comité.",statusPending:"En attente",approve:"Approuver et appliquer",reject:"Rejeter",approveSuccess:"Proposition approuvée et appliquée",approveErrorTitle:"Échec de l'approbation de la proposition",rejectSuccess:"Proposition rejetée",rejectErrorTitle:"Échec du rejet de la proposition"}},historyTab:{tabLabel:"Historique des versions",title:"Historique des versions de la politique IA",subtitle:"ISO 38505-1-01 — Registre immuable des modifications de politique"},logPiiCategories:"Catégories PII",linedatScopeNote:"Couvre l'utilisation des fonctionnalités d'IA propres à Linedat (auto-documentation, chat du catalogue, classification des DCP, recherche sémantique). Ne comprend pas les systèmes d'IA externes que ton organisation exploite de son côté : tu peux les inventorier et les documenter dans « Systèmes d'IA », mais ils n'ont ici ni journal d'utilisation ni analyse des biais."},O={title:"Politiques de données",subtitle:"ISO 38505-1 — Gestion des contraintes et conformité",newPolicy:"Nouvelle politique",verifyAll:"Tout vérifier",noPolicies:"Aucune politique configurée",createFirst:"Cliquez sur « Nouvelle politique » pour créer la première.",noViolations:"Aucune violation ouverte",scope:"Portée",from:"De",until:"Jusqu'à",resolve:"Résoudre",acceptRisk:"Accepter le risque",deactivate:"Désactiver cette politique ?",editPolicy:"Modifier la politique",createPolicy:"Créer la politique",saveChanges:"Enregistrer les modifications",saving:"Enregistrement...",cancel:"Annuler",affectedAssets:"Actifs affectés",noAffectedAssets:"Cette politique n'affecte aucun actif actuellement.",policiesChecked:"actifs vérifiés",violationsFound:"violation(s) trouvée(s)",noViolationsFound:"Aucune violation",inactive:"Inactive",reactivate:"Réactiver",showInactive:"Afficher les inactives",inactivePolicyBadge:"Politique inactive",inactivePolicyHint:"La politique a été désactivée ; cette violation est conservée comme preuve mais ne compte plus dans le SLA.",tabPolicies:"Politiques",tabViolations:"Violations",policyActive:"Politique active",detected:"Détecté",newPolicyForm:"Nouvelle politique de données",formName:"Nom",formDescription:"Description",formType:"Type",formScope:"Portée",formRules:"Règles (JSON)",formNamePlaceholder:"Par ex. : Rétention max. pour les données confidentielles",formDescPlaceholder:"Décrivez l'objectif de cette politique...",rulesInvalidJson:"Les règles doivent être un JSON valide",typeRetention:"Rétention",typeUsage:"Utilisation",typeGeoRestriction:"Restriction géographique",typeAccess:"Accès",typeQuality:"Qualité",typeCustom:"Personnalisé",scopeTenant:"Toute l'organisation",scopeDomain:"Domaine",scopeClassification:"Classification des données",scopeAsset:"Actif spécifique",classificationLevel:"Niveau de classification",domainId:"ID du domaine",assetId:"ID de l'actif",uuidPlaceholder:"UUID du domaine ou de l'actif",selectOption:"Sélectionner...",ruleExRetention:'Par ex. : {"max_days": 365, "action": "archive", "severity": "high"}',ruleExQuality:'Par ex. : {"min_score": 80, "required_dimensions": ["completeness"]}',ruleExUsage:'Par ex. : {"allowed_purposes": ["analytics"], "prohibited_actions": ["export"]}',ruleExAccess:'Par ex. : {"require_justification": true, "max_access_days": 90}',ruleExGeo:'Par ex. : {"allowed_regions": ["EU"], "prohibited_regi
3ons": ["US"]}',ruleExCustom:"Définissez les règles au format JSON libre",viewHistory:"Voir l'historique des versions",historyDialog:{title:"Historique des versions",description:"Registre immuable de toutes les modifications de cette politique (ISO 38505-1-01)."},sla:{overdue:"En retard depuis {{date}}",dueOn:"Échéance {{date}}",alerted:"Alerte envoyée"},statusAll:"Toutes",statusOpen:"Ouvertes",statusAcknowledged:"Reconnues",statusResolved:"Résolues",statusWaived:"Dérogées",showingRange:"{from}–{to} sur {total}"},V={title:"Registre des risques de données",subtitle:"ISO 38505-1 — Gestion et évaluation des risques",newRisk:"Nouveau risque",noRisks:"Aucun risque enregistré",createFirst:"Cliquez sur « Nouveau risque » pour créer le premier.",review:"Réviser",reviewed:"Révisé",nextReview:"Suivant",overdueReviews:"Révisions en retard",viewAsset:"Voir l'actif →",editRisk:"Modifier le risque",createRisk:"Créer le risque",newRiskForm:"Nouveau risque de données",categorySecurity:"Sécurité",categoryQuality:"Qualité",categoryCompliance:"Conformité",categoryOperational:"Opérationnel",categoryVendor:"Fournisseur",categoryObsolescence:"Obsolescence",categoryPrivacy:"Vie privée",categoryCustom:"Personnalisé",statusNotStarted:"Non démarré",statusInProgress:"En cours",statusImplemented:"Implémenté",statusVerified:"Vérifié",formTitle:"Titre",formDescription:"Description",formCategory:"Catégorie",formLikelihood:"Vraisemblance",formImpact:"Impact",formMitigation:"Mesures d'atténuation",formMitigationStatus:"Statut d'atténuation",formReviewFrequency:"Fréquence de révision (jours)",formTitlePlaceholder:"Par ex. : Exposition de données sensibles non chiffrées",formMitigationPlaceholder:`1. Première mesure
42. Deuxième mesure`,likelihoodRare:"Rare",likelihoodUnlikely:"Improbable",likelihoodPossible:"Possible",likelihoodLikely:"Probable",likelihoodAlmostCertain:"Quasi-certain",impactNegligible:"Négligeable",impactMinor:"Mineur",impactModerate:"Modéré",impactMajor:"Majeur",impactSevere:"Sévère",effectivenessNotes:"Vérification de l'efficacité",effectivenessPlaceholder:"Preuve que l'atténuation a effectivement réduit le risque (ex. : pentest sans constatations, risque résiduel confirmé faible)",effectivenessHelp:"Obligatoire pour marquer l'atténuation comme vérifiée : sa mise en œuvre ne suffit pas, il faut démontrer qu'elle a fonctionné.",effectivenessRequired:"La vérification de l'efficacité est obligatoire pour marquer l'atténuation comme vérifiée.",effectivenessVerified:"Efficacité vérifiée",saveError:"Impossible d'enregistrer le risque"},U={title:"Analyse d'impact relative à la protection des données (AIPD)",subtitle:"RGPD Art. 35 — Protection des données",newDpia:"Nouvelle AIPD",noDpias:"Aucune AIPD créée",createFirst:"Cliquez sur « Nouvelle AIPD » pour créer la première.",assetsRequiringDpia:"actif(s) nécessitant une AIPD",createDpia:"Créer l'AIPD",editDpia:"Modifier l'AIPD",gdprSections:"Sections RGPD Art. 35",processingDescription:"Description du traitement",purpose:"Finalité du traitement",necessityAssessment:"Évaluation de la nécessité et de la proportionnalité",riskAssessment:"Évaluation des risques pour les personnes concernées",safeguards:"Mesures de sauvegarde et d'atténuation",dataAndLegal:"Données et base légale",dataSubjects:"Catégories de personnes concernées",dataCategories:"Catégories de données",legalBasis:"Base légale",riskBefore:"Risque avant",riskAfter:"Risque après",dpoOpinion:"Avis du DPO",newDpiaForm:"Nouvelle analyse d'impact relative à la protection des données (AIPD)",completeSections:"RGPD Art. 35 — Complétez toutes les sections requises",formTitle:"Titre",formStatus:"Statut",statusDraft:"Brouillon",statusInReview:"En révision",statusApproved:"Approuvé",statusRejected:"Rejeté",statusRequiresDpo:"Nécessite le DPO",legalConsent:"Consentement",legalContract:"Exécution du contrat",legalObligation:"Obligation légale",legalVitalInterest:"Intérêt vital",legalPublicInterest:"Intérêt public",legalLegitimateInterest:"Intérêt légitime",piiColumns:"Colonnes PII",sensitivity:"sensibilité",processingDescPlaceholder:"Quelles données sont traitées et comment...",dataSubjectsPlaceholder:"employés, clients",dataCategoriesPlaceholder:"nom, e-mail, salaire",commaSeparated:"séparés par des virgules",riskLow:"Faible",riskMedium:"Moyen",riskHigh:"Élevé",riskCritical:"Critique",subjects:"Personnes",data:"Données",viewAsset:"Voir l'actif →",reviewOverdue:"Révision échue",reviewOverdueHelp:"La révision périodique de cette AIPD est échue (RGPD Art. 35(11)).",nextReview:"Prochaine révision"},B={title:"Contrats de données",subtitle:"ISO 38505-1 — Accords producteur-consommateur",newContract:"Nouveau contrat",noContracts:"Aucun contrat de données",createFirst:"Cliquez sur « Nouveau contrat » pour créer le premier.",consumer:"Consommateur",frequency:"Fréquence",violations:"violation(s)",verifySla:"Vérifier le SLA",producer:"Producteur",editContract:"Modifier le contrat",createContract:"Créer le contrat",newContractForm:"Nouveau contrat de données",statusDraft:"Brouillon",statusProposed:"Proposé",statusActive:"Actif",statusExpired:"Expiré",statusViolated:"Violé",statusTerminated:"Résilié",formName:"Nom",formDescription:"Description",formProducerAsset:"Actif producteur",formConsumerTeam:"Équipe consommatrice",formUpdateFrequency:"Fréquence de mise à jour",formRetention:"Rétention requise",formSlaJson:"SLA de qualité (JSON)",slaExample:'Par ex. : {"min_score": 90, "min_completeness": 95, "max_freshness_hours": 24}',formNamePlaceholder:"Par ex. : SLA Données Salaires → Reporting",formConsumerPlaceholder:"Par ex. : Finance et Reporting",selectAsset:"Sélectionner l'actif...",frequencyHourly:"Horaire",frequencyDaily:"Quotidien",frequencyWeekly:"Hebdomadaire",frequencyMonthly:"Mensuel",retention1Year:"1 an",retention3Years:"3 ans",retention5Years:"5 ans",retention7Years:"7 ans",retentionIndefinite:"Indéfinie",slaInvalidJson:"Le SLA doit être un JSON valide",approvedProducer:"Producteur",approvedConsumer:"Consommateur",approveToggleHint:"Cliquez pour approuver ou révoquer ce côté",approveNoAuthority:"Vous devez être data steward ou data owner du domaine de ce côté pour approuver",approveErrorTitle:"Échec de l'approbation",approveForbidden:"Vous n'avez pas autorité sur ce domaine pour approuver ce côté",formConsumerDomain:"Domaine consommateur",selectConsumerDomain:"Sélectionnez un domaine…",consumerDomainNone:"— Aucun (équipe en texte libre uniquement) —",consumerDomainHelp:"Le domaine métier consommateur. Ses data stewards/owners approuvent le côté consommateur.",consumerDomainLabel:"Domaine",viewAsset:"Voir l'actif →",verify:"Vérifier",verifyToastSuccessTitle:"Vérification terminée",verifyToastSuccessClean:"Le contrat respecte son SLA. Aucune violation ouverte.",verifyToastSuccessViolations:"Violations ouvertes : {{count}}",verifyToastErrorTitle:"Échec de la vérification",verifyToastErrorDescription:"Impossible de vérifier la conformité du contrat.",s
4aveError:"Impossible d'enregistrer le contrat",schemaInvalidJson:"Le schéma n'est pas un JSON valide",formSchemaJson:"Schéma promis (JSON)",schemaPlaceholder:'{"columns":[{"name":"id","type":"integer"}]}',schemaHelp:"Colonnes et types que le contrat garantit au consommateur. Validé par rapport à l'actif réel à l'activation et par rapport à la promesse précédente lors de la modification.",formStatus:"Statut",activateSchemaNote:"À l'activation, l'actif producteur doit satisfaire le schéma promis.",breakingTitle:"Modification de schéma incompatible",breakingActivation:"L'actif producteur ne satisfait pas le schéma que le contrat promet. L'activer quand même peut interrompre les consommateurs.",breakingBackwardCompat:"Cette modification rompt la promesse précédente du contrat. L'appliquer peut interrompre les consommateurs qui s'y fiaient déjà.",breakMissing:"La colonne promise '{{column}}' est absente",breakType:"La colonne '{{column}}' change de type de manière incompatible : promis '{{promised}}', disponible '{{available}}'",overrideReason:"Motif de la modification disruptive (version majeure intentionnelle)",overrideReasonPlaceholder:"p. ex. v2 majeure, consommateurs déjà migrés",forceOverride:"Forcer quand même",verifyToastViolationsOverdue:"{{count}} violations, {{overdue}} hors délai SLA"},H={title:"Intendance et délégations",subtitle:"ISO 38505-1 — Responsabilité et autorité",metrics:"Métriques",delegations:"Délégations",totalAssets:"Total des actifs",withSteward:"Avec data steward",withoutSteward:"Sans data steward",coverage:"Couverture",qualityAvg:"Qualité moy.",docCoverage:"Couverture doc.",noDelegations:"Aucune délégation active",revoke:"Révoquer",steward:"Data steward",assets:"Actifs",scope:"Portée",delegationStatus:{pending:"En attente",accepted:"Acceptée",declined:"Refusée",revoked:"Révoquée"},accept:"Accepter",decline:"Refuser",declineReason:"Motif du refus (optionnel)",confirmDecline:"Confirmer le refus",cancel:"Annuler",effective:"Effective",expired:"Expirée",pendingAcceptance:"En attente d'acceptation",filterAll:"Toutes",forMe:"Pour moi",issued:"Émises",acceptSuccess:"Délégation acceptée",declineSuccess:"Délégation refusée",revokeSuccess:"Délégation révoquée",actionError:"Impossible de finaliser l'action",createForm:{open:"Nouvelle délégation",title:"Nouvelle délégation",delegate:"Délégué",delegatePlaceholder:"Sélectionnez un utilisateur (data steward ou supérieur)",scope:"Périmètre",scopeDomain:"Domaine",scopeTenant:"Toute l'organisation",domain:"Domaine",domainPlaceholder:"Sélectionnez un domaine",startsAt:"Début",endsAt:"Fin",reason:"Motif",reasonPlaceholder:"Motif de la délégation (facultatif)",submit:"Créer la délégation",cancel:"Annuler",noEligible:"Aucun utilisateur éligible (rôle data steward ou supérieur requis)",invalidWindow:"La date de fin doit être postérieure au début et future",success:"Délégation créée et délégué notifié",error:"Impossible de créer la délégation"}},G={title:"Comités de gouvernance",subtitle:"ISO 38505-1 — Organes décisionnels",newCommittee:"Nouveau comité",noCommittees:"Aucun comité",createFirst:"Cliquez sur « Nouveau comité » pour créer le premier.",selectCommittee:"Sélectionnez un comité pour voir ses détails",members:"Membres",meetings:"Réunions",decisions:"Décisions",charter:"Charte",minutes:"Procès-verbaux",addMember:"Ajouter",addMemberBtn:"Ajouter un membre",adding:"Ajout...",noMembers:"Aucun membre. Cliquez sur « Ajouter » pour ajouter le premier.",noMeetings:"Aucune réunion planifiée.",editCommittee:"Modifier le comité",createCommittee:"Créer le comité",meetingFrequency:"Fréquence des réunions",weekly:"Hebdomadaire",biweekly:"Bihebdomadaire",monthly:"Mensuelle",quarterly:"Trimestrielle",chair:"Président",secretary:"Secrétaire",member:"Membre",observer:"Observateur",selectUser:"Sélectionner un utilisateur...",newGovernanceCommittee:"Nouveau comité de gouvernance",charterLabel:"Charte",charterPlaceholder:"Responsabilités et portée du comité...",noFrequency:"Aucune fréquence",dueDate:"Échéance",agenda:"Ordre du jour",formName:"Nom",formDescription:"Description",namePlaceholder:"Par ex. : Conseil de gouvernance des données",meetingType:{regular:"Régulière",internal_audit:"Audit interne",management_review:"Revue de direction",ai_oversight:"Supervision IA",incident_review:"Revue d'incident"},deleteCommittee:"Supprimer le comité",deleteConfirm:`Supprimer (soft) le comité "{{name}}" ? Membres, réunions, décisions et preuves sont préservés (piste d'audit ISO 38505-1). Le comité disparaîtra de la liste active mais pourra être réactivé.`,deleteSuccess:"Comité supprimé (soft)",deleteErrorTitle:"Échec de la suppression du comité",addDecision:"Ajouter une décision",
4noDecisions:"Pas encore de décisions dans cette réunion.",newDecision:"Nouvelle décision",decisionTitle:"Titre",decisionTitlePlaceholder:"Qu'avez-vous décidé ?",decisionDescription:"Description",decisionDescriptionPlaceholder:"Contexte, justification, participants d'accord — tout ce dont l'auditeur aurait besoin.",decisionType:"Type",decisionType_approval:"Approbation",decisionType_policy_change:"Changement de politique",decisionType_risk_acceptance:"Acceptation du risque",decisionType_other:"Autre",decisionStatusLabel:"Statut",decisionStatus_proposed:"Proposée",decisionStatus_approved:"Approuvée",decisionStatus_rejected:"Rejetée",decisionStatus_deferred:"Reportée",createDecision:"Créer la décision",createDecisionSuccess:"Décision créée",createDecisionErrorTitle:"Échec de la création de la décision",editDecision:"Modifier la décision",updateDecision:"Enregistrer les changements",updateDecisionSuccess:"Décision mise à jour",updateDecisionErrorTitle:"Échec de la mise à jour de la décision",deleteDecision:"Supprimer la décision",deleteDecisionConfirm:`Supprimer la décision "{{title}}" ? Cela supprimera AUSSI toutes les preuves liées (cascade). Pour annuler en préservant l'audit, passez le statut à 'rejected' et créez une décision corrective.`,deleteDecisionSuccess:"Décision supprimée",deleteDecisionErrorTitle:"Échec de la suppression de la décision"},W={connect:{title:"Ajoutez vos données",description:"Depuis ici vous pouvez connecter votre base de données (PostgreSQL, BigQuery, Snowflake...) ou téléverser des données manuellement via CSV."},catalog:{title:"Votre catalogue de données",description:"Visualisez toutes vos tables, colonnes et métadonnées organisées automatiquement."},brain:{title:"Visualisation en cerveau",description:"Un graphe interactif montrant comment toutes vos données sont connectées. Découvrez des relations cachées."},chat:{title:"Discutez avec vos données",description:"Posez des questions en langage naturel sur votre catalogue. « Quelles tables ont des PII ? » — obtenez des réponses instantanées."},glossary:{title:"Glossaire métier",description:"Définissez des termes comme « Client », « Revenu » ou « Churn » et liez-les à vos tables. Votre équipe parle le même langage."},quality:{title:"Règles de qualité",description:"Créez des règles qui valident vos données automatiquement. Détectez les NULL, doublons, plages invalides et plus encore."},governance:{title:"Gouvernance des données",description:"Attribuez des propriétaires, data stewards et politiques. Contrôlez qui accède à quoi et restez conforme."},lineage:{title:"Lignage des données",description:"Visualisez d'où viennent vos données et où elles vont. Comprenez l'impact avant de faire des changements."},designer:{title:"Concepteur visuel",description:"Modélisez visuellement vos schémas de données. Faites glisser des colonnes pour créer des mappages et des transformations."},search:{title:"Recherche globale",description:"Recherchez n'importe quelle table, colonne, terme ou domaine. Cmd+K pour un accès rapide."},ready:{title:"Prêt à démarrer !",description:"Connectez votre première base de données depuis Paramètres → Sources de données. Votre catalogue vous attend !"},prev:"Précédent",next:"Suivant",skip:"Ignorer",finish:"C'est parti !"},Q={starterTrial:"Essai Starter",trialEndsToday:"Se termine aujourd'hui !",trialRemaining:"{{days}} j {{hours}} h restant(s)",trialRemainingHours:"{{hours}} h restant(s)",upgradeNow:"Mettre à niveau maintenant",freeUpgrade:"Débloquez les descriptions IA, le lignage des données, les règles de qualité et plus encore.",upgradeStarter:"Passer à Starter"},J={banner:{atLimit:"Vous avez atteint la limite de votre plan : {{details}}.",nearLimit:"Vous approchez de la limite de votre plan : {{details}}.",resourceFraction:"{{resource}} ({{current}}/{{limit}})",resourcePct:"{{resource}} à {{pct}} %",upgradeCta:"Mettre à niveau le plan",ariaStatus:"Avis de quota du plan"},resources:{users:"utilisateurs",assets:"actifs",terms:"termes du glossaire",glossary_terms:"termes du glossaire",domains:"domaines",designer_projects:"projets Designer",ai_chat_messages_per_user_day:"messages de chat IA par utilisateur/jour",ai_chat_messages_per_tenant_day:"messages de chat IA par organisation/jour",ai_descriptions_per_day:"descriptions IA/jour",ai_concurrent_calls:"appels IA concurrents"},upgradeModal:{recommendedBadge:"Plan recommandé",recommendedTitle:"Votre plan {{currentPlan}} ne couvre pas cette opération",recommendedLimit:"Le plan {{plan}} inclut jusqu'à {{limit}} {{resource}}.",recommendedUnlimited:"Le plan {{plan}} inclut {{resource}} en illimité.",currentUsage:"Utilisation actuelle : {{current}}/{{limit}} {{resource}}"},adminQuotaAlerts:{title:"Alertes de quota",subtitle:"Organisations ayant atteint ou approchant les plafonds de leur plan.",windowLabel:"Fenêtre :",window1h:"dernière 1 h",window24h:"dernières 24 h",window7d:"7 derniers jours",alertsHeading:"Alertes",eventsHeading:"Événements récents",loading:"Chargement…",error:"Impossible de charger les alertes.",empty:"Aucune alerte dans la fenêtre sélectionnée.",tableTenant:"Organisation",tableResource:"Ressource",tableType:"Type",tableEvents:"Év
4énements",tableLastSeen:"Dernière vue",tableDate:"Date",tableValue:"Valeur",tableSource:"Source",none:"—"},eventType:{denied:"Bloqué",warning_80:"Avertissement 80 %"},source:{api:"API",sync:"Synchronisation",jit:"SSO/JIT",invitation:"Invitation",invitation_accept:"Acceptation d'invitation",scim:"SCIM",system:"Système"}},Y={title:"Mes consentements",subtitle:"Historique des acceptations et retraits des documents légaux. Exercez vos droits RGPD d'accès (art. 15) et de retrait (art. 7.3).",loadError:"Impossible de charger l'historique.",currentVersion:"Version actuelle",acceptAction:"Accepter",withdrawAction:"Retirer",deleteAccountAction:"Supprimer mon compte",doc:{termsAndPrivacy:"Conditions et Confidentialité",terms:"Conditions",privacy:"Confidentialité",cookiesAnalytics:"Cookies analytiques",marketing:"Marketing"},termsAndPrivacy:{covers:"Conditions générales · Politique de confidentialité"},state:{accepted:"Accepté",withdrawn:"Retiré",none:"Aucun enregistrement"},currentState:{title:"Statut actuel",subtitle:"Dernière action enregistrée par document."},history:{title:"Historique complet",subtitle:"Enregistrement immuable de chaque acceptation et retrait (inclut l'IP et l'user agent).",empty:"Aucun événement pour l'instant."},col:{document:"Document",version:"Version",action:"Action",date:"Date",ip:"IP",userAgent:"User agent"},withdrawDialog:{title:"Retirer le consentement",body:"Votre consentement sera retiré immédiatement. Vous pouvez le redonner à tout moment.",confirm:"Retirer le consentement"},deleteAccountDialog:{title:"Supprimer mon compte",body1:"L'acceptation des Conditions et de l'Avis de confidentialité n'est pas un consentement retirable au titre de l'Art. 7.3 du RGPD — il s'agit d'une reconnaissance contractuelle accompagnée d'un avis d'information.",body2:"Si vous souhaitez cesser d'utiliser Linedat et que nous supprimions vos données personnelles, exercez votre droit à l'effacement (Art. 17 du RGPD) en écrivant à notre équipe confidentialité. Nous répondrons dans le délai légal de 30 jours.",contactLabel:"Contact :",confirm:"Rédiger l'e-mail de suppression"},deleteAccountMailto:{subject:"Demande de suppression de compte et droit à l'effacement (RGPD Art. 17)",body:`Bonjour,
5
6Je souhaite exercer mon droit à l'effacement des données personnelles (RGPD Art. 17) et demande la suppression définitive de mon compte Linedat.
7
8Merci.`}},K={title:"Conditions générales",subtitle:"Avant de continuer, veuillez consulter et accepter nos documents légaux.",termsLinkLabel:"Conditions générales",privacyLinkLabel:"Politique de confidentialité",checkboxLabel:"J'ai lu et j'accepte les <terms>Conditions générales</terms> et la <privacy>Politique de confidentialité</privacy>.",marketingLabel:"Je souhaite recevoir des communications commerciales de Linedat : actualités produit, contenu sur la data governance, invitations à des événements et offres",marketingOptional:"(facultatif)",marketingHint:"Vous pouvez vous désabonner à tout moment depuis <settingsPath/>.",marketingHintPath:"Paramètres → Mes consentements",errorMessage:"Échec de l'enregistrement de votre acceptation. Veuillez réessayer.",continueButton:"Continuer",processingButton:"Traitement…",logoutButton:"Se déconnecter"},Z={title:"Facturation",subtitle:"Gérez votre abonnement et votre facturation",successTitle:"Paiement réussi !",successDesc:"Votre abonnement a été activé. Profitez de toutes les fonctionnalités premium.",canceled:"Le paiement a été annulé. Aucun montant n'a été débité.",errorCheckout:"Impossible de créer la session de paiement. Veuillez réessayer.",errorPortal:"Impossible d'ouvrir le portail de facturation. Veuillez réessayer.",changePlan:"Changer de plan",manageSubscription:"Gérer l'abonnement",upgradeTitle:"Passez à Starter",upgradeDesc:"Débloquez les descriptions par IA, le lignage de données, les règles de qualité et plus encore.",month:"mois",yearlyOption:"ou 3 289 EUR/an (1 mois gratuit)",upgrade:"Mettre à niveau",nextRenewal:"Prochain renouvellement",pastDue:"Votre dernier paiement a échoué. Veuillez mettre à jour votre mode de paiement pour éviter une interruption du service.",updatePayment:"Mettre à jour le mode de paiement",usage:"Utilisation",users:"Utilisateurs",assets:"Actifs",terms:"Termes du glossaire",limit:"Limite",paidFeatures:"Fonctionnalités Starter",feat:{ai:"Descriptions et chat IA",lineage:"Lignage au niveau colonne",quality:"Règles de qualité",governance:"Workflows de gouvernance",designer:"Concepteur de données",connectors:"Connecteurs illimités",users:"Jusqu'à 10 utilisateurs",assets:"Jusqu'à 500 actifs"},status:{active:"Active",past_due:"Paiement en retard",canceled:"Annulée",trialing:"Période d'essai",incomplete:"Incomplète",incomplete_expired:"Expirée",unpaid:"Impayée",paused:"En pause"},plans:{free:"Gratuit",starter:"Starter",professional:"Professional",enterprise:"Enterprise"}},X={pageTitle:"API tokens",pageSubtitle:"Credentials your external AI clients (Claude Desktop, Cursor, MCP hosts) use to talk to Linedat on your behalf.",createButton:"Create token",loadError:"Couldn't load your tokens.",emptyState:"No tokens yet. Create one to connect Claude Desktop or another MCP client.",forbidden:"You don't have permission to manage tokens.",scopesInherited:"Inherits your role",scopesCount:"{{count}} permissions",currentTenantNote:"You're operating as {{tenant}}. New tokens will be bound to this tenant.",tab:{tokens:"My tokens",docs:"How to connect"},col:{name:"Name",prefix:"Prefix",scopes:"Scopes",expires:"Expires",lastUsed:"Last used",status:"Status",actions:"Actions"},status:{active:"Active",revoked:"Revoked",expired:"Expired"},create:{title:"Create new API token",description:"The token is shown only once. Save it immediately; we cannot recover it later.",nameLabel:"Name",namePlaceholder:"Claude Desktop — laptop",tenantLabel:"Tenant",expiryLabel:"Expiry",expiryOption:"{{days}} days",restrictScopes:"Restrict to specific permissions (recommended for AI clients)",noScopesAvailable:"Your role in this tenant grants no selectable scopes.",submit:"Create token",error:"Failed to create the token."},reveal:{title:"Save your token now",description:"This is the only time you'll see the full token. Copy it somewhere safe or paste it straight into your MCP client config.",tokenLabel:"Token (copy it now)",mcpConfigLabel:"MCP client configuration",mcpConfigHint:"Paste this block into your MCP client's config file (`claude_desktop_config.json`, Cursor's `.mcp.json`, etc.).",warning:"Closing this dialog discards the token. If you don't save it now you'll need to create a new one.",acknowledge:"I've saved it"},revoke:{button:"Revoke",title:"Revoke token",description:'Any client using "{{name}}" will lose access within 30 seconds. The action cannot be undone; usage history is preserved for audit.',confirm:"Revoke token"},audit:{button:"View activity",title:'Activity for "{{name}}"',description:"One row per authenticated request made with this token. Only you can see this log.",error:"Couldn't load activity.",empty:"This token hasn't been used yet.",col:{when:"When",method:"Method",path:"Endpoint",status:"Status",latency:"Latency",ip:"IP"},pagination:"Page {{page}} of {{totalPages}} — {{total}} events"},docs:{title:"Connecting Claude Desktop / Cursor to Linedat",intro:"Four steps to get your AI assistant querying the catalog over HTTP.",step1:'Create a token here. Pick a name that identifies the client (e.g. "Claude Desktop — laptop").',step2:"When the token is shown, copy it. You will not see it again.",step3:"Open your MCP client's config file and paste the snippet below. The connection is over HTTP — nothing to install locally.",step4:"Restart the client. When you ask, it will invoke Linedat's MCP tools to answer.",sampleTitle:"Sample configuration"}},$={title:"Erreur de connexion",body:"Impossible de charger votre session. Vérifiez votre connexion et réessayez.",retry:"Réessayer"},ee={timeline:{loading:"Chargement de l'historique des versions…",errorLoading:"Impossible de charger l'historique des versions.",retry:"Réessayer",empty:"Aucun historique de versions pour l'instant.",current:"Actuelle",actorSystem:"Système",version:"Version",selectTwoHint:"Sélectionnez deux ver
8sions à comparer.",compareSelected:"Comparer les sélectionnées",actorDeleted:"Utilisateur supprimé"},diff:{title:"Comparaison de versions",loading:"Chargement des différences…",errorLoading:"Impossible de charger les différences.",retry:"Réessayer",noDifferences:"Aucune différence entre les versions sélectionnées.",back:"Retour à l'historique",from:"Version précédente",to:"Nouvelle version",colField:"Champ",colBefore:"Avant",colAfter:"Après"},source:{manual:"Manuel",committee:"Comité",legacyBackfill:"Rétroactif"}},te={title:"Preuve de la décision",helpText:"Enregistrez quels assets / requêtes / tableaux de bord / conversations IA ont soutenu cette décision. Exigé par ISO/IEC TR 38505-2 §5 (phase «decide») pour que la décision puisse être reconstruite devant un régulateur ou un tribunal.",empty:"Aucune preuve enregistrée pour cette décision.",loading:"Chargement des preuves…",record:"Enregistrer une preuve",cancel:"Annuler",submit:"Envoyer la preuve",showSuperseded:"Afficher les remplacées",superseded:"Remplacée",correctsPrevious:"Corrige une preuve précédente",assetsLabel:"IDs des assets (séparés par virgule ou espace)",assetsHelp:"Au moins 1 UUID. Ouvrez n'importe quel asset du catalogue et copiez l'UUID depuis l'URL (la partie après /catalog/assets/).",assetsPlaceholder:"uuid1, uuid2, uuid3",rationaleLabel:"Justification",rationaleHelp:"Minimum 20 caractères ({{count}}/20).",rationalePlaceholder:"Pourquoi ces assets soutiennent-ils cette décision ? Soyez précis — c'est la piste d'audit.",queryHashLabel:"Hash de la requête (optionnel)",urlLabel:"URL externe (dashboard / notebook, optionnel)",externalLink:"lien externe",assetsLine:"{{count}} asset(s) consulté(s)",recordSuccess:"Preuve enregistrée",recordErrorTitle:"Échec de l'enregistrement de la preuve",missingPrefix:"Impossible d'envoyer pour l'instant :",missingAssets:"au moins 1 ID d'asset est requis",missingRationale:"la justification doit faire ≥ 20 caractères ({{count}}/20)",invalidAssets:"{{count}} valeur(s) ne sont pas des UUID valides : {{bad}}",correct:"Corriger",correctTooltip:"Enregistrer une correction — la ligne actuelle sera marquée comme remplacée.",correctionBannerTitle:"Enregistrement d'une correction",correctionBannerHelp:"Les preuves sont append-only. Une NOUVELLE ligne sera créée qui remplace la précédente. L'originale est préservée dans la piste d'audit et visible en activant «Afficher les remplacées».",supersedesReasonLabel:"Pourquoi cette correction ?",supersedesReasonPlaceholder:"ex. typo corrigée, dashboard manquant ajouté, justification clarifiée…",missingSupersedesReason:"le motif de la correction est requis",submitCorrection:"Envoyer la correction",correctionSuccess:"Correction enregistrée — preuve précédente remplacée"},ie={title:"Compétence et sensibilisation",subtitle:"ISO/IEC 42001 §7.2 + §7.3 — enregistrer formations et accusés de réception de politique.",tabMyTraining:"Ma formation",tabTeamTraining:"Formation de l'équipe",tabCoverage:"Couverture",myTrainingTitle:"Enregistrements de formation",myTrainingHelp:"Enregistrez les cours, certifications ou sessions de sensibilisation terminés. Un admin peut les vérifier.",addRecord:"Ajouter un enregistrement",submitRecord:"Envoyer",recordCreated:"Enregistrement sauvegardé",recordError:"Échec de l'enregistrement",noRecords:"Aucun enregistrement encore.",fieldType:"Type",typeCompetence:"Compétence (§7.2)",typeAwareness:"Sensibilisation (§7.3)",fieldTitle:"Titre",titlePlaceholder:"ex. Cours fondations ISO/IEC 42001 AIMS",fieldDescription:"Description (optionnel)",fieldCompletedAt:"Terminé le",fieldExpiresAt:"Expire le (optionnel)",fieldScore:"Score 0-100 (optionnel)",fieldEvidenceUrl:"URL de preuve (LMS/certificat)",completedAt:"Terminé",expiresAt:"Expire",score:"Score",evidenceLink:"Preuve",userSnapshot:"Utilisateur",verified:"Vérifié",verify:"Vérifier",verifySuccess:"Formation vérifiée",verifyError:"Échec de la vérification",teamTrainingTitle:"Formation de l'équipe",teamTrainingHelp:"Tous les enregistrements de l'organisation. Cliquez Vérifier pour élever les auto-déclarations en preuve vérifiée.",myAcksTitle:"Mes accusés de réception",myAcksHelp:"Accusés signés de versions de politiques de données et d'IA. Les nouveaux accusés se signent depuis la page de chaque politique.",myAcksEmpty:"Vous n'avez encore signé aucune politique.",kindData:"Politique de données",kindAi:"Politique d'IA",coverageTitle:"Couverture des accusés",coverageHelp:"Qui a signé la ver
8sion ACTUELLE ouverte de chaque politique. Les lignes «Obsolète» indiquent que l'utilisateur a signé une version antérieure désormais remplacée.",coverageEmpty:"Pas encore de politiques avec versions ouvertes.",coverageUpToDate:"À jour : {{count}}",coverageStale:"Obsolète : {{count}}",colUser:"Utilisateur",colPolicy:"Politique",colCurrent:"Version actuelle",colLastAck:"Dernier accusé",colStatus:"Statut",statusUpToDate:"À jour",statusStale:"Obsolète"},se={title:"Objectifs AIMS",subtitle:"ISO/IEC 42001 §6.2 — objectifs mesurables de votre Système de Gestion d'IA.",newObjective:"Nouvel objectif",editTitle:"Modifier l'objectif",empty:"Aucun objectif AIMS encore.",emptyHint:"Ajoutez au moins un objectif mesurable avec KPI, baseline, cible et direction. L'auditeur les demandera.",fieldTitle:"Titre",titlePlaceholder:"ex. Taux d'hallucinations en dessous de 2%",fieldDescription:"Description",fieldKpiName:"Nom du KPI",fieldKpiUnit:"Unité",fieldBaseline:"Baseline",fieldTarget:"Cible",fieldDirection:"Direction",fieldStatus:"Statut",fieldTargetDate:"Date cible",fieldDataSource:"Source des données",dataSourcePlaceholder:"ex. AIUsageLog.feedback, manuel, BI externe",fieldCheckpointValue:"Valeur actuelle",fieldCheckpointNotes:"Notes",fieldCheckpointStatus:"Mettre à jour le statut",keepStatus:"(garder le statut actuel)",notesPlaceholder:"Justification du relecteur — ce que vous avez observé et pourquoi.",targetWas:"Cible",checkpoint:"Checkpoint",checkpointTooltip:"Enregistrer une valeur révisée et optionnellement un nouveau statut.",checkpointTitle:"Enregistrer un checkpoint",recordCheckpoint:"Enregistrer le checkpoint",checkpointSuccess:"Checkpoint enregistré",checkpointError:"Échec de l'enregistrement du checkpoint",lastReview:"Dernière revue",on:"le",by:"par",baseline:"Baseline",target:"Cible",targetDate:"Échéance",owner:"Owner",edit:"Modifier",deleteButton:"Supprimer",deleteConfirm:`Supprimer l'objectif AIMS "{{title}}" ? Cette action est irréversible.`,deleteSuccess:"Objectif supprimé",deleteError:"Échec de la suppression de l'objectif",createSuccess:"Objectif créé",createError:"Échec de la création de l'objectif",updateSuccess:"Objectif mis à jour",updateError:"Échec de la mise à jour de l'objectif",create:"Créer",update:"Enregistrer les modifications",status_draft:"Brouillon",status_active:"Actif",status_achieved:"Atteint",status_at_risk:"À risque",status_missed:"Non atteint",status_archived:"Archivé",direction_lower_is_better:"Plus bas est mieux",direction_higher_is_better:"Plus haut est mieux",direction_maintain_at_target:"Maintenir à la cible"},ne={title:"Intégrité de l'audit chain",subtitle:"ISO/IEC 38505-1 — vérifiez que audit_logs et ai_usage_logs n'ont pas été altérés.",verify:"Vérifier",verifyOk:"Audit chain vérifié — intact",verifyBroken:"Audit chain ROMPU — altération détectée",verifyError:"Échec de la vérification de l'audit chain",tableAuditLogsLabel:"audit_logs",tableAuditLogsDesc:"Chaque action de gouvernance (créer, modifier, supprimer, approuver, rejeter…).",tableAiUsageLogsLabel:"ai_usage_logs",tableAiUsageLogsDesc:"Chaque appel LLM avec prompt/output sanitisés, catégories PII et verdict utilisateur.",tableLineageChangeEventsLabel:"lineage_change_events",tableLineageChangeEventsDesc:"Chaque mutation du graphe de lineage (création/suppression/modification d'arêtes, mappings colonne-à-colonne, réassignations de domaine).",lastVerified:"Dernière vérification",rowsChecked:"{{count}} lignes vérifiées",statusIntact:"Intact",statusBroken:"Rompu",statusNotVerified:"Pas encore vérifié",reasonLabel:"Raison",brokenRowId:"ID de ligne",storedHash:"row_hash stocké",expectedHash:"row_hash attendu",copyForensic:"Copier le rapport forensique",forensicCopied:"Rapport forensique copié dans le presse-papier",aboutTitle:"À propos de ce ra
8pport",aboutBody:"Le hash-chain est appliqué au niveau du DB-trigger (les écritures ne peuvent pas l'omettre, les mises à jour sont rejetées). Cette page vous permet de démontrer à votre auditeur qu'aucune ligne n'a été altérée après coup. Une chaîne rompue signifie que quelqu'un a contourné le trigger — investiguez immédiatement. La vérification est en lecture seule ; réparer la chaîne en détruirait l'intérêt.",permissionDeniedTitle:"Permissions insuffisantes",permissionDeniedBody:"La vérification de l'audit chain est restreinte à OWNER et ADMIN du tenant. Demandez l'accès à votre administrateur si nécessaire.",browseAuditLogs:"Ouvrir audit_logs dans Governance",browseAiUsageLogs:"Ouvrir ai_usage_logs dans AI Governance",browseLineageChangeEvents:"Voir l'activité de lineage"},re={title:"Activité de lineage",subtitle:"Chronologie tenant-wide des mutations du graphe de lineage (lineage_change_events).",windowLabel:"Fenêtre",range_7d:"7 jours",range_30d:"30 jours",range_90d:"90 jours",range_1y:"1 an",range_all:"Complet",fullHistoryWarning:"Vous consultez l'historique complet ({{count}} événements). Les pages plus anciennes se chargeront plus lentement. Une fenêtre de 90 jours ou 1 an suffit généralement pour les rapports d'audit.",permissionDeniedTitle:"Permissions insuffisantes",permissionDeniedBody:"Vous avez besoin de permissions de lecture sur les assets pour voir l'activité de lineage.",allChangeTypes:"Tous les types",sincePlaceholder:"De",untilPlaceholder:"Jusqu'à",totalEvents:"{{count}} événements",empty:"Aucun événement ne correspond aux filtres.",loadError:"Échec du chargement de l'historique",pageOf:"Page {{page}} sur {{totalPages}}",colWhen:"Quand",colType:"Type",colEdge:"Edge",colAuthor:"Auteur",colReason:"Raison",systemActor:"(système)",aboutTitle:"À propos de cette page",aboutBody:"Chaque ligne est un événement immuable du log lineage_change_events. L'intégrité de ces événements est protégée par la hash-chain installée dans la migration z103 (R-LIN-02). Pour démontrer à votre auditeur qu'aucune ligne n'a été altérée, exécutez la vérification depuis Governance > Audit chain.",goToVerify:"Vérifier la hash-chain"},oe={title:"Aperçu EDM",subtitle:"ISO/IEC 38505-1 — posture de gouvernance des données selon les 6 principes",computedAt:"Calculé",aboutTitle:"À propos de cette vue",aboutBody:"Cette page résume l'état de la gouvernance des données de votre organisation selon les 6 principes de la norme ISO/IEC 38505-1. Les données sont calculées en temps réel. Pour les tendances temporelles, le scheduler persistant est nécessaire (issue #396).",loadError:"Impossible de charger l'aperçu EDM",value:{title:"Valeur",detailLink:"Explorer les assets à valoriser",coverage:"Couverture d'évaluation",totalValue:"Valeur estimée totale",totalValueHint:"Somme de la dernière évaluation par asset dans la devise dominante",byMethod:"Par méthode",noValuations:"Aucune évaluation"},risk:{title:"Risque",detailLink:"Voir risques et violations",activeRisks:"Risques actifs",byLevel:"Par niveau",noRisks:"Aucun risque enregistré",openViolations:"Violations ouvertes",overdue:"SLA dépassés",overdueHint:"Open violations dont la date de remédiation est dépassée",dpiaTotal:"DPIA"},constraints:{title:"Contraintes",detailLink:"Voir les politiques",activePolicies:"Politiques actives",byType:"Par type",noPolicies:"Aucune politique",byScope:"Par scope"},quality:{title:"Qualité",detailLink:"Voir rapports de qualité",avgScore:"Qualité moyenne",avgScoreHint:"Moyenne du dernier score par asset",coverage:"Couverture",activeRules:"Règles actives",byseverity:"Par sévérité",noRules:"Aucune règle"},lifecycle:{title:"Cycle de vie",detailLink:"Voir assets dans le catalogue",assets:"Assets totaux",byStatus:"Par statut",stale:"Stale (hors sync)",staleHint:"Assets dont la source a changé depuis la dernière sync"},authority:{title:"Autorité",detailLink:"Voir utilisateurs et rôles",users:"Utilisateurs",byRole:"Par rôle",delegations:"Délégations effectives",expiringSoon:"Expirent dans 7 jours",pendingAcceptance:"En att. d'acceptation"}},ae={title:"Inventaire des systèmes IA",subtitle:"ISO/IEC 38507 — registre de tous les systèmes IA sous gouvernance.",newSystem:"Nouveau système",editTitle:"Modifier le système",empty:"Aucun système IA enregistré pour l'instant.",emptyHint:"Enregistrez les systèmes IA utilisés par votre organisation pour vous conformer à ISO/IEC 38507.",filterByStatus:"Filtrer par état",filterAllStatuses:"Tous les états",includeInternal:"Inclure les internes",internalBadge:"Interne",internalTooltip:"Système interne de Linedat",providerModelAutoSynced:"Le fournisseur et le modèle sont synchronisés automatiquement avec la configuration (système interne).",fieldName:"Nom",namePlaceholder:"ex. Générateur de descriptions",fieldSlug:"Slug (optionnel)",slugPlaceholder:"ex. autodoc-v2",fieldUseCase:"Cas d'usage",useCasePlaceholder:"ex. Génération automatique de documentation",fieldDescription:"Description",fieldRiskClassification:"Classification du risque",fieldProvider:"Fournisseur",providerPlaceholder:"ex. OpenAI, Groq, Mistral",fieldModelIdentifier:"Modèle",modelPlaceholder:"ex. gpt-4o, llama-3.1-70b",f
8ieldSupplier:"Fournisseur (optionnel)",supplierNone:"Aucun fournisseur lié",supplierHint:"Liez un fournisseur d'IA enregistré — la partie contractuelle (DPA, transferts). Le fournisseur/modèle ci-dessus reste le descripteur d'exécution.",fieldDocumentationUrl:"URL de documentation",docUrlPlaceholder:"https://...",fieldOwner:"Owner (user ID, optionnel)",fieldChangeSummary:"Résumé des modifications",changeSummaryPlaceholder:"Décrivez ce qui a changé et pourquoi",fieldTransitionReason:"Motif (obligatoire pour suspendre)",transitionReasonPlaceholder:"Décrivez le motif de la suspension",lifecycle_development:"Développement",lifecycle_pilot:"Pilote",lifecycle_production:"Production",lifecycle_suspended:"Suspendu",lifecycle_retired:"Retiré",risk_prohibited:"Interdit",risk_high:"Élevé",risk_limited:"Limité",risk_minimal:"Minimal",transitionTo:"Transitionner vers",transitionButton:"Transitionner",transitionTitle:"Changer l'état du système",transitionSelectStatus:"Sélectionner le nouvel état",noTransitions:"Ce système est dans un état terminal (retiré).",versionHistory:"Historique des versions",createSuccess:"Système IA créé",createError:"Impossible de créer le système",slugConflict:"Un système avec ce slug existe déjà",updateSuccess:"Système mis à jour",updateError:"Impossible de mettre à jour le système",transitionSuccess:"État mis à jour",transitionError:"Transition non autorisée",suspendReasonRequired:"Le motif est obligatoire lors de la suspension d'un système",create:"Créer",update:"Enregistrer les modifications",suspendedReason:"Motif de suspension",retiredAt:"Retiré le",lastUpdated:"Mis à jour"},le={title:"Registre des fournisseurs IA",subtitle:"ISO/IEC 42001 — registre de tous les fournisseurs IA sous gouvernance.",newSupplier:"Nouveau fournisseur",editTitle:"Modifier le fournisseur",empty:"Aucun fournisseur IA enregistré pour l'instant.",emptyHint:"Enregistrez les fournisseurs IA utilisés par votre organisation pour vous conformer à ISO/IEC 42001.",filterByStatus:"Filtrer par état",filterAllStatuses:"Tous les états",flagDpaMissing:"DPA manquant",flagTransferUnprotected:"Transfert non protégé",flagExpired:"Renouvellement échu",fieldName:"Nom",namePlaceholder:"ex. OpenAI",fieldSlug:"Slug (optionnel)",slugPlaceholder:"ex. openai",fieldType:"Type de fournisseur",fieldDescription:"Description",fieldCountry:"Pays (ISO-3166)",fieldTransferMechanism:"Mécanisme de transfert",fieldAdequacyReference:"Référence d'adéquation",adequacyReferencePlaceholder:"ex. Décision UE 2021/914",fieldSccsSignedAt:"Date de signature des CCT",fieldSccsUrl:"URL des CCT",fieldTiaDoneAt:"Date de l'AEF",fieldTiaOutcome:"Résultat de l'AEF",fieldTiaUrl:"URL du rapport AEF",fieldDpaSignedAt:"Date de signature du DPA",fieldDpaUrl:"URL du DPA",fieldRenewalDueAt:"Date de renouvellement",fieldSubProcessors:"Sous-traitants (un par ligne)",subProcessorsPlaceholder:`Amazon Web Services
9Google Cloud
10Microsoft Azure`,subProcessorsHint:"Saisissez un sous-traitant par ligne.",fieldModelCardUrl:"URL de la Model Card",fieldContactEmail:"E-mail de contact",fieldOwner:"Owner (user ID, optionnel)",ownerPlaceholder:"UUID de l'utilisateur propriétaire",fieldChangeSummary:"Résumé des modifications",changeSummaryPlaceholder:"Décrivez ce qui a changé et pourquoi",fieldTransitionReason:"Motif (obligatoire pour suspendre)",transitionReasonPlaceholder:"Décrivez le motif de la suspension",type_model_provider:"Fournisseur de modèles",type_infrastructure:"Infrastructure",type_data_provider:"Fournisseur de données",type_integrator:"Intégrateur",type_other:"Autre",status_under_review:"En révision",status_active:"Actif",status_suspended:"Suspendu",status_terminated:"Résilié",transfer_none:"Aucun",transfer_adequacy:"Adéquation",transfer_scc:"CCT",transfer_bcr:"BCR",transfer_derogation:"Dérogation",tia_adequate:"Adéquat",tia_adequate_with_measures:"Adéquat avec mesures",tia_inadequate:"Inadéquat",transitionTo:"Transitionner vers",transitionButton:"Transitionner",transitionTitle:"Changer l'état du fournisseur",transitionSelectStatus:"Sélectionner le nouvel état",noTransitions:"Ce fournisseur est dans un état terminal (résilié).",activateNeedsDpa:"Impossible d'activer sans DPA signé",activateNeedsDpaHint:"Ce fournisseur n'a pas de DPA enregistré. Ajoutez la date de signature avant de l'activer.",versionHistory:"Historique des versions",createSuccess:"Fournisseur IA créé",createError:"Impossible de créer le fournisseur",slugConflict:"Un fournisseur avec ce slug existe déjà",updateSuccess:"Fournisseur mis à jour",updateError:"Impossible de mettre à jour le fournisseur",transitionSuccess:"État mis à jour",transitionError:"Transition non autorisée",suspendReasonRequired:"Le motif est obligatoire lors de la suspension d'un fournisseur",create:"Créer",update:"Enregistrer les modifications",suspendedReason:"Motif de suspension",lastUpdated:"Mis à jour",platformManagedBadge:"Géré par Linedat",subProcessors:"Sous-traitants",type_saas_processor:"Sous-traitant SaaS"}
10,ue={title:"Évaluations d'impact sur les droits fondamentaux (FRIA)",subtitle:"Règlement IA UE Art. 27 — évaluation de l'impact des systèmes d'IA à haut risque sur les droits fondamentaux.",newAssessment:"Nouvelle évaluation",editTitle:"Modifier l'évaluation",empty:"Aucune évaluation d'impact enregistrée.",emptyHint:"Créez une FRIA pour chaque système d'IA à haut risque en exploitation ou en phase pilote.",filterByStatus:"Filtrer par statut",filterAllStatuses:"Tous les statuts",filterBySystem:"Filtrer par système",filterAllSystems:"Tous les systèmes",selectSystem:"Sélectionner un système d'IA...",searchSystems:"Rechercher un système...",noSystemsFound:"Aucun système trouvé",create:"Créer",update:"Enregistrer les modifications",createSuccess:"Évaluation créée",createError:"Impossible de créer l'évaluation",updateSuccess:"Évaluation mise à jour",updateError:"Impossible de mettre à jour l'évaluation",approvedLocked:"Cette évaluation est approuvée et ne peut pas être modifiée. Demandez d'abord une révision.",approvedLockedHint:"Une FRIA approuvée ne peut pas être modifiée directement. Utilisez la transition «Nécessite révision» pour rouvrir le brouillon.",transitionTitle:"Changer le statut de l'évaluation",transitionSelectStatus:"Sélectionner le nouveau statut",transitionButton:"Transitionner",transitionTo:"Transitionner vers",transitionSuccess:"Statut mis à jour",transitionError:"Transition non autorisée",noTransitions:"Cette évaluation n'a pas de transitions disponibles.",approveGateHint:"Pour approuver, les mesures d'atténuation et un mécanisme de recours sont requis ;
10 si des groupes vulnérables sont concernés, leur détail l'est aussi. L'approbation doit être effectuée par une personne autre que l'évaluateur.",versionHistory:"Historique des versions",viewDetail:"Voir le détail",exportPdf:"Exporter le PDF",exportGenerating:"Génération du PDF en cours…",exportSuccess:"PDF généré avec succès",exportError:"Impossible d'exporter le PDF de la FRIA",missingBannerTitle_one:"{{count}} système d'IA à haut risque sans FRIA approuvée",missingBannerTitle_other:"{{count}} systèmes d'IA à haut risque sans FRIA approuvée",missingBannerTitle:"{{count}} système(s) d'IA à haut risque sans FRIA approuvée",missingBannerDescription:"Art. 27 Règlement IA UE exige une FRIA approuvée avant de déployer des systèmes d'IA à haut risque.",missingBannerAllClear:"Tous les systèmes à haut risque ont une FRIA approuvée.",missingBannerError:"Impossible de vérifier l'état de conformité des FRIA.",createFria:"Créer FRIA",fieldAISystem:"Système d'IA",fieldTitle:"Titre",titlePlaceholder:"ex. FRIA – Système de recommandation de crédit 2026",fieldIntendedPurpose:"Finalité prévue",intendedPurposePlaceholder:"Décrivez l'objectif du système et comment il prend des décisions",fieldDeploymentContext:"Contexte de déploiement",deploymentContextPlaceholder:"Décrivez où et comment le système est déployé",fieldAffectedGroups:"Groupes concernés",addGroup:"Ajouter un groupe",groupDescriptionPlaceholder:"Description optionnelle...",fieldVulnerableGroupsAffected:"Concerne des groupes vulnérables",vulnerableGroupsDetailPlaceholder:"Décrivez quels groupes vulnérables et comment ils sont concernés",vulnerableGroupsAffectedNote:"Concerne des groupes vulnérables",fieldFundamentalRightsImpacts:"Impacts sur les droits fondamentaux",addImpact:"Ajouter un droit concerné",impactDescriptionPlaceholder:"Description de l'impact...",colRight:"Droit",colDescription:"Description",colLikelihood:"Probabilité",colSeverity:"Gravité",fieldImpactSummary:"Résumé de l'impact",fieldMitigationMeasures:"Mesures d'atténuation",mitigationMeasuresPlaceholder:"Décrivez les mesures techniques et organisationnelles adoptées",fieldResidualRiskLevel:"Niveau de risque résiduel",noRiskLevel:"Non déterminé",fieldHumanOversightMeasures:"Mesures de surveillance humaine",fieldRedressMechanism:"Mécanisme de recours",redressMechanismPlaceholder:"Décrivez comment les personnes peuvent contester des décisions ou demander des corrections",fieldConclusion:"Conclusion",conclusionPlaceholder:"Décrivez la conclusion de l'évaluation",fieldRequiresAuthorityNotification:"Nécessite une notification à l'autorité de contrôle",fieldNextReviewAt:"Prochaine révision",fieldReviewFrequencyDays:"Fréquence de révision (jours)",fieldChangeSummary:"Résumé de la modification",changeSummaryPlaceholder:"Décrivez ce qui a changé et pourquoi",sectionReview:"Révision (Art. 27(2))",assessedAt:"Évalué le",approvedAt:"Approuvé le",nextReviewAt:"Prochaine révision",reviewFrequencyDays:"Fréquence",linkedSystem:"Système d'IA",linkedRiskAssessments:"Évaluations des risques liées",requiresNotificationBadge:"Nécessite notification",requiresNotificationDetail:"Cette évaluation nécessite une notification à l'autorité de contrôle compétente.",reviewOverdueBadge:"Révision en retard",reviewOverdueDetail:"La date de révision obligatoire est dépassée. Cette FRIA doit être révisée.",highRiskWithoutRedressBadge:"Sans mécanisme de recours",highRiskWithoutRedressDetail:"Système à haut risque sans mécanisme de recours défini. Requis par l'Art. 27.",status_draft:"Brouillon",status_in_review:"En révision",status_approved:"Approuvée",status_rejected:"Rejetée",status_needs_revision:"Nécessite révision",riskLevel_low:"Faible",riskLevel_medium:"Moyen",riskLevel_high:"Élevé",riskLevel_critical:"Critique",group_general_public:"Grand public",group_customers:"Clients",group_employees:"Employés",group_minors:"Mineurs",group_elderly:"Personnes âgées",group_persons_with_disabilities:"Personnes handicapées",group_ethnic_minorities:"Minorités ethniques",group_vulnerable_other:"Groupes vulnérables (autre)",group_other:"Autre",right_human_dignity:"Dignité humaine",right_non_discrimination:"Non-discrimination",right_privacy_data_protection:"Vie privée et protection des données",right_freedom_of_expression:"Liberté d'expression",right_effective_remedy:"Droit à un recours effectif",right_consumer_protection:"Protection des consommateurs",right_workers_rights:"Droits des travailleurs",right_childrens_rights:"Droits des enfants",right_health_safety:"Santé et sécurité",right_other:"Autre",likelihood_rare:"Rare",likelihood_unlikely:"Peu probable",likelihood_possible:"Possible",likelihood_likely:"Probable",likelihood_almost_certain:"Quasi certain",severity_negligible:"Négligeable",severity_minor:"Mineur",severity_moderate:"Modéré",severity_major:"Majeur",severity_severe:"Grave"},ce={title:"Registre des Activités de Traitement (RoPA)",subtitle:"RGPD Art. 30 — Inventaire des traitements de données personnelles du responsable/sous-traitant.",newActivity:"Nouvelle activité",editTitle:"Modifier l'activité",empty:"Aucune activité de traitement enregistrée.",emptyHint:"Le backend crée 4 modèles brouillon au premier accès. Vérifiez les filtres ou créez une nouvelle activité.",filterByStatus:"Filtrer par statut",filterAllStatuses:"Tous les statuts",exportCsv:"Exporter RoPA (CSV)",exportSuccess:"RoPA exporté avec succès",exportError:"Impossible d'exporter le RoPA",fieldName:"Nom",namePlaceholder:"ex. Gestion des employés",fieldPurpose:"Finalité du traitement",purposePlaceholder:"Décrivez à quelle fin les données sont traitées",fieldLegalBasis:"Base juridique (Art. 6 RGPD)",noLegalBasis:"Sans base juridique",fieldRole:"Rôle du responsable",fieldHasSpecialCategories:"Inclut des catégories particulières (Art. 9 RGPD)",hasSpecialCategories:"Cat. particulières",fieldSpecialCondition:"Condition Art. 9",selectSpecialCondition:"Sélectionner une condition",fieldDataSubjectCategories:"Catégories de personnes concernées",dataSubjectCategoriesPlaceholder:"ex. Employés, clients, fournisseurs",fieldRecipientC
10ategories:"Catégories de destinataires",recipientCategoriesPlaceholder:"ex. Conseillers juridiques, autorités publiques",fieldRetentionDescription:"Durée / critère d'effacement",retentionPlaceholder:"ex. 5 ans après la fin du contrat",fieldSecurityMeasures:"Mesures de sécurité",securityMeasuresPlaceholder:"ex. Chiffrement AES-256, contrôle d'accès RBAC",fieldLifecyclePhases:"Phases du cycle de vie",fieldDpoName:"Nom du DPO",dpoNamePlaceholder:"ex. Marie Dupont",fieldDpoContact:"Contact du DPO",dpoContactPlaceholder:"ex. [email protected]",fieldChangeSummary:"Résumé de la modification",changeSummaryPlaceholder:"Décrivez ce qui a changé et pourquoi",status_draft:"Brouillon",status_active:"Actif",status_under_review:"En révision",status_archived:"Archivé",role_controller:"Responsable",role_processor:"Sous-traitant",role_joint_controller:"Coresponsable",legal_consent:"Consentement",legal_contract:"Contrat",legal_legal_obligation:"Obligation légale",legal_vital_interests:"Intérêts vitaux",legal_public_task:"Mission d'intérêt public",legal_legitimate_interests:"Intérêts légitimes",scc_explicit_consent:"Consentement explicite",scc_employment_social_security:"Emploi / Sécurité sociale",scc_vital_interests:"Intérêts vitaux",scc_not_for_profit_body:"Organisme à but non lucratif",scc_manifestly_public:"Manifestement publics",scc_legal_claims:"Actions en justice",scc_substantial_public_interest:"Intérêt public important",scc_health_social_care:"Santé / Action sociale",scc_public_health:"Santé publique",scc_archiving_research:"Archivage / Recherche",phase_collect:"Collecter",phase_store:"Stocker",phase_use:"Utiliser",phase_report:"Rapporter",phase_decide:"Décider",phase_distribute:"Distribuer",phase_dispose:"Supprimer",alertPiiNoLegalBasis:"DCP sans base légale",alertSpecialNoDpia:"Cat. particulières sans AIPD",alertTransferUnprotected:"Transfert sans garantie",transitionTitle:"Changer le statut de l'activité",transitionSelectStatus:"Sélectionner le nouveau statut",transitionTo:"Transitionner vers",transitionButton:"Transitionner",noTransitions:"Cette activité ne peut pas transitionner depuis l'état actuel.",activateRequiresPurpose:"L'activation nécessite une finalité et une base juridique. Modifiez l'activité avant de l'activer.",versionHistory:"Historique des versions",createSuccess:"Activité de traitement créée",createError:"Impossible de créer l'activité",updateSuccess:"Activité mise à jour",updateError:"Impossible de mettre à jour l'activité",transitionSuccess:"Statut mis à jour",transitionError:"Transition non autorisée",create:"Créer",update:"Enregistrer les modifications",fieldLinkedAssets:"Actifs liés",linkedAssetsPlaceholder:"Sélectionner des actifs...",linkedAssetsSearchPlaceholder:"Rechercher un actif...",fieldLinkedRecipients:"Destinataires / sous-traitants",linkedRecipientsPlaceholder:"Sélectionner des destinataires...",linkedRecipientsSearchPlaceholder:"Rechercher un destinataire...",fieldLinkedDpias:"AIPD / Analyses d'impact",linkedDpiasPlaceholder:"Sélectionner des AIPD...",linkedDpiasSearchPlaceholder:"Rechercher une AIPD..."},de={title:"Demandes d'Exercice des Droits (DER)",subtitle:"RGPD Art. 12-22 — Gérez les demandes d'accès, d'effacement, de portabilité, de rectification, de limitation et d'opposition.",newRequest:"Nouvelle demande",editTitle:"Modifier la demande",empty:"Aucune demande de droits des personnes concernées pour l'instant.",emptyHint:"Créez une nouvelle demande lorsqu'une personne concernée exerce ses droits RGPD.",filterByStatus:"Filtrer par statut",filterAllStatuses:"Tous les statuts",filterByType:"Filtrer par type",filterAllTypes:"Tous les types",fieldRequestType:"Type de demande",fieldChannel:"Canal de réception",fieldSubjectName:"Nom de la personne concernée",fieldSubjectEmail:"Email de la personne concernée",fieldSubjectIdentifier:"Identifiant de la personne concernée",fieldSubjectNotes:"Notes supplémentaires",fieldReceivedAt:"Date de réception",fieldExtendedUntil:"Délai prolongé jusqu'au (Art. 12(3))",fieldExtensionReason:"Motif de la prolongation",fieldResolution:"Résolution",fieldResolutionReason:"Motif du refus (Art. 12(4))",fieldResponseArtifactPath:"Chemin de l'artefact de réponse",subjectNamePlaceholder:"ex. Marie Dupont",subjectEmailPlaceholder:"ex. [email protected]",invalidEmail:"Saisissez une adresse e-mail valide.",subjectIdentifierPlaceholder:"ex. numéro client, identifiant national",subjectNotesPlaceholder:"Informations supplémentaires sur la demande",extensionReasonPlaceholder:"Décrivez le motif de la prolongation du délai",resolutionReasonPlaceholder:"Décrivez le motif du refus (Art. 12(4))",responseArtifactPathPlaceholder:"ex. /exports/dsr-2026-0001.zip",responseArtifactPathHint:"Obligatoire pour les demandes d'accès et de portabilité avant de les marquer comme complétées.",selectResolution:"Sélectionner une résolution",status_received:"Reçue",status_identity_verification:"Vérification d'identité",status_in_progress:"En cours",status_extended:"Délai prolongé",status_completed:"Complétée",status_rejected:"Rejetée",type_access:"Accès (Art. 15)",type_portability:"Portabilité (Art. 20)",type_erasure:"Effacement (Art. 17)",type_rectification:"Rectification (Art. 16)",type_restriction:"Limitation (Art. 18)",type_objection:"Opposition (Art. 21)",channel_email:"Courrier électronique",channel_web_form:"Formulaire web",channel_postal:"Courrier postal",channel_phone:"Téléphone",channel_internal:"Interne",resolution_fulfilled:"Satisfaite",resolution_partially_fulfilled:"Partiellement satisfaite",resolution_rejected:"Rejetée",overdue:"En retard",deadline:"Délai limite",extended:"prolongé",linkedErasure:"Demande d'effacement liée",transitionTitle:"Changer le statut de la demande",transitionSelectStatus:"Sélectionner le nouveau statut",transitionTo:"Transitionner vers",transitionButton:"Transitionner",noTransitions:"Cette demande ne peut pas transitionner depuis l'état actuel.",identityMustBeVerified:"L'identité doit être vérifiée avant de passer à 'En cours'. Utilisez le bouton 'Vérifier l'identité'.",artifactPathRequired:"Les demandes d'accès et de portabilité nécessitent un chemin d'artefact de réponse avant d'être marquées comme complétées.",verifyIdentityButton:"Vérifier l'identité",verifyIdentitySuccess:"Identité vérifiée avec succès",verifyIdentityError:"Impossible de vérifier l'identité",locateDataTitle:"Localisation assistée des données (Art. 15/20)",locateDataButton:"Localiser les données",locateDataHint:"Cliquez sur 'Localiser les données' pour obtenir une carte des activités, actifs, colonnes PII et destinataires liés.",locateSuccess:"Données localisées avec succès",locateError:"Erreur lors de la localisation des données",locatedAt:"Localisé le",matchedUserId:"Utilisateur plateforme",locatedActivities:"Activités de traitement",locatedAssets:"Actifs de données",locatedPiiColumns:"Colonnes PII",locatedRecipients:"Destinataires",locateNoDataFound:"Aucune donnée trouvée liée à l'identifiant de la personne concernée.",detailSubject:"Personne concernée",detailTimeline:"Chronologie",detailResolution:"Résolution",timelineReceived:"Demande reçue",timelineIdentityVerified:"Identité vérifiée",timelineInProgress:"En cours",t
10imelineExtended:"Délai prolongé jusqu'au",timelineCompleted:"Résolue",createSuccess:"Demande de droits créée",createError:"Impossible de créer la demande",updateSuccess:"Demande mise à jour",updateError:"Impossible de mettre à jour la demande",transitionSuccess:"Statut mis à jour",transitionError:"Transition non autorisée",create:"Créer",update:"Enregistrer les modifications",scopeNote:"Linedat assiste : il localise où la donnée peut résider (catalogue/RoPA) ; l'extraction et la réponse à la personne concernée sont traitées en dehors de la plateforme. La suppression automatique couvre le compte de la personne concernée dans Linedat et les stockages de la plateforme, pas les systèmes sources."},pe={title:"Fiches de modèle (Model Cards)",subtitle:"Règlement IA UE Art. 11 + Annexe IV — documentation technique des systèmes d'IA.",newCard:"Nouvelle fiche de modèle",editTitle:"Modifier la fiche de modèle",empty:"Aucune fiche de modèle enregistrée.",emptyHint:"Créez une fiche de modèle pour chaque système d'IA en documentant le fournisseur, les performances et les limitations.",filterByStatus:"Filtrer par statut",filterAllStatuses:"Tous les statuts",filterBySystem:"Filtrer par système",filterAllSystems:"Tous les systèmes",selectSystem:"Sélectionner un système d'IA...",searchSystems:"Rechercher un système...",noSystemsFound:"Aucun système trouvé",create:"Créer",update:"Enregistrer les modifications",createSuccess:"Fiche de modèle créée",createError:"Impossible de créer la fiche de modèle",updateSuccess:"Fiche de modèle mise à jour",updateError:"Impossible de mettre à jour la fiche de modèle",publishedLocked:"Cette fiche est publiée et ne peut pas être modifiée. Demandez une mise à jour d'abord.",publishedLockedHint:"Une fiche publiée ne peut pas être modifiée directement. Utilisez la transition «Nécessite une mise à jour» pour rouvrir le brouillon.",transitionTitle:"Changer le statut de la fiche de modèle",transitionSelectStatus:"Sélectionner le nouveau statut",transitionButton:"Transitionner",transitionTo:"Transitionner vers",transitionSuccess:"Statut mis à jour",transitionError:"Transition non autorisée",noTransitions:"Cette fiche n'a pas de transitions disponibles.",publishGateHint:"Pour publier : usage prévu, usage hors périmètre et limitations connues doivent être renseignés. La publication scelle l'identité du modèle documenté.",versionHistory:"Historique des versions",viewDetail:"Voir le détail",exportPdf:"Exporter le PDF",exportGenerating:"Génération du PDF en cours…",exportSuccess:"PDF généré avec succès",exportError:"Impossible d'exporter le PDF de la Model Card",missingBannerTitle_one:"{{count}} système d'IA à haut risque sans fiche de modèle publiée",missingBannerTitle_other:"{{count}} systèmes d'IA à haut risque sans fiche de modèle publiée",missingBannerTitle:"{{count}} système(s) d'IA à haut risque sans fiche de modèle publiée",missingBannerDescription:"Art. 11 Règlement IA UE exige une documentation technique publiée avant d'exploiter des systèmes d'IA à haut risque.",missingBannerAllClear:"Tous les systèmes à haut risque ont une fiche de modèle publiée.",missingBannerError:"Impossible de vérifier la conformité des fiches de modèle.",createCard:"Créer une fiche",staleBadge:"Modèle obsolète",providerWithoutDpaBadge:"Fournisseur sans DPA",providerWithoutDpaHint:"Le fournisseur documenté n'est pas couvert par un fournisseur d'IA (ou sous-traitant) avec un accord de traitement des données signé (RGPD Art. 28 / AI Act Art. 25).",staleDetail:"Le modèle documenté ne correspond plus à la configuration actuelle du système. Cette fiche est obsolète (Art. 11).",reviewOverdueBadge:"Révision en retard",reviewOverdueDetail:"La date de révision obligatoire est dépassée. Cette fiche doit être révisée.",linkedSystem:"Système d'IA",linkedRiskAssessments:"Évaluations des risques liées",publishedAt:"Publié le",nextReviewAt:"Prochaine révision",reviewFrequencyDays:"Fréquence",fieldAISystem:"Système d'IA",fieldTitle:"Titre",titlePlaceholder:"ex. Fiche de modèle – GPT-4o dans le système de support client 2026",sectionModelIdentity:"Identité du modèle documenté",fieldDocumentedProvider:"Fournisseur",noProvider:"Non spécifié",fieldModelIdentifier:"Identifiant du modèle",modelIdentifierPlaceholder:"ex. gpt-4o, llama-3.1-70b",f
10ieldModelVersion:"Version documentée",modelVersionPlaceholder:"ex. 2024-11-20",fieldIntendedUse:"Usage prévu",intendedUsePlaceholder:"Décrivez les cas d'usage pour lesquels le système a été conçu",fieldOutOfScopeUse:"Usage hors périmètre",outOfScopeUsePlaceholder:"Décrivez les usages pour lesquels le système NE doit PAS être utilisé",fieldIntendedUsers:"Utilisateurs prévus",intendedUserPlaceholder:"ex. Agents du support client",addUser:"Ajouter un utilisateur prévu",fieldPerformanceMetrics:"Métriques de performance",colMetric:"Métrique",colValue:"Valeur",colDataset:"Jeu de données",colSubgroup:"Sous-groupe",metricPlaceholder:"ex. Accuracy",valuePlaceholder:"ex. 0.92",datasetPlaceholder:"ex. Test set 2026-Q1",subgroupPlaceholder:"ex. Genre féminin",addMetric:"Ajouter une métrique",fieldEvaluationData:"Données d'évaluation",evaluationDataPlaceholder:"Décrivez les jeux de données utilisés pour évaluer le modèle",fieldKnownLimitations:"Limitations connues",knownLimitationsPlaceholder:"Décrivez les limitations techniques ou de couverture du modèle",fieldKnownBiases:"Biais connus (déclarés)",colBiasDescription:"Description du biais",colAffectedDimension:"Dimension affectée",colBiasSource:"Source",biasDescriptionPlaceholder:"ex. Moindre précision sur les dialectes régionaux",dimensionPlaceholder:"ex. Origine géographique",biasSourcePlaceholder:"ex. Évaluation interne 2026-Q1",addBias:"Ajouter un biais connu",fieldEthicalConsiderations:"Considérations éthiques",fieldTrainingDataDescription:"Description des données d'entraînement",trainingDataPlaceholder:"Décrivez les données utilisées pour entraîner le modèle (origine, taille, prétraitement)",fieldDataProvenance:"Provenance des données",colProvenanceSource:"Source",colProvenanceType:"Type",colProvenanceLicense:"Licence",colProvenancePeriod:"Période",provenanceSourcePlaceholder:"ex. Common Crawl",provenanceTypePlaceholder:"ex. Web scrape",provenanceLicensePlaceholder:"ex. CC-BY 4.0",provenancePeriodPlaceholder:"ex. 2020-2024",addProvenance:"Ajouter une source de données",fieldExternalDocUrl:"Documentation technique externe",fieldProviderModelCardUrl:"Fiche de modèle du fournisseur",sectionExternalLinks:"Documentation externe",sectionReview:"Révision (Art. 11(4))",fieldNextReviewAt:"Prochaine révision",fieldReviewFrequencyDays:"Fréquence de révision (jours)",fieldChangeSummary:"Résumé des modifications",changeSummaryPlaceholder:"Décrivez ce qui a changé et pourquoi",status_draft:"Brouillon",status_published:"Publiée",status_needs_update:"Nécessite une mise à jour",provider_openai:"OpenAI",provider_groq:"Groq",provider_anthropic:"Anthropic",provider_azure_openai:"Azure OpenAI",provider_google_vertex:"Google Vertex AI",provider_aws_bedrock:"AWS Bedrock",provider_mistral:"Mistral AI",provider_cohere:"Cohere",provider_self_hosted:"Auto-hébergé",provider_other:"Autre",provider_fallback:"Autre fournisseur"},me={title:"Dataset Cards (Fiches corpus)",subtitle:"ISO/IEC 42001 A.7.5 — documentation du corpus de fondation pour les systèmes RAG et l'IA générative.",newCard:"Nouvelle Dataset Card",editTitle:"Modifier la Dataset Card",empty:"Aucune Dataset Card enregistrée.",emptyHint:"Créez une Dataset Card pour chaque corpus de fondation ou ensemble de données alimentant vos systèmes d'IA.",filterByStatus:"Filtrer par statut",filterAllStatuses:"Tous les statuts",filterByType:"Filtrer par type",filterAllTypes:"Tous les types",create:"Créer",update:"Enregistrer les modifications",createSuccess:"Dataset Card créée",createError:"Impossible de créer la Dataset Card",updateSuccess:"Dataset Card mise à jour",updateError:"Impossible de mettre à jour la Dataset Card",publishedLocked:"Cette Dataset Card est publiée et ne peut pas être modifiée. Demandez une mise à jour d'abord.",publishedLockedHint:"Une Dataset Card publiée ne peut pas être modifiée directement. Utilisez la transition «Nécessite une mise à jour» pour rouvrir le brouillon.",transitionTitle:"Changer le statut de la Dataset Card",transitionSelectStatus:"Sélectionner le nouveau statut",transitionButton:"Transitionner",transitionTo:"Transitionner vers",transitionSuccess:"Statut mis à jour",transitionError:"Transition non autorisée",noTransitions:"Cette Dataset Card n'a pas de transitions disponibles.",publishGateHint:"Pour publier : motivation et description de la composition sont obligatoires. Les types RAG et base de connaissances nécessitent également au moins un asset lié.",versionHistory:"Historique des versions",viewDetail:"Voir le détail",missingBannerTitle_one:"{{count}} système RAG/grounding en opération sans Dataset Card publiée",missingBannerTitle_other:"{{count}} systèmes RAG/grounding en opération sans Dataset Card publiée",missingBannerTitle:"{{count}} système(s) RAG/grounding en opération sans Dataset Card publiée",missingBannerDescription:"ISO/IEC 42001 A.7.5 exige une documentation publiée du corpus de fondation pour les systèmes RAG en production.",missingBannerAllClear:"Tous les systèmes RAG actifs ont une Dataset Card publiée.",missingBannerError:"Impossible de vérifier la conformité des Dataset Cards.",createCard:"Créer une Dataset Card",reviewOverdueBadge:"Révision en retard",reviewOverdueDetail:"La date de révision obligatoire est dépassée. Cette Dataset Card doit être révisée.",publishedAt:"Publiée le",nextReviewAt:"Prochaine révision",reviewFrequencyDays:"Fréquence",lastRefreshedAt:"Dernier rafraîchissement",fieldTitle:"Titre",titlePlaceholder:"ex. Corpus support client — Linedat KB 2026",fieldDatasetType:"Type de dataset",sectionMotivation:"1. Motivation",fieldMotivation:"Motivation",motivationPlaceholder:"Pourquoi ce dataset a-t-il été cr
10éé ? Quelles tâches vise-t-il à soutenir ?",sectionComposition:"2. Composition",fieldCompositionDescription:"Description de la composition",compositionDescriptionPlaceholder:"Que représente le dataset ? Combien d'instances ? Y a-t-il des données manquantes ?",sectionCoverageBias:"Couverture et biais déclarés",colDimension:"Dimension",colExcluded:"Exclu / sous-représenté",colRationale:"Justification",dimensionPlaceholder:"ex. Langue, géographie, période temporelle",excludedPlaceholder:"ex. Documents antérieurs à 2020",rationalePlaceholder:"ex. Non disponibles dans le corpus original",addCoverageBias:"Ajouter une ligne de couverture",sectionCollection:"3. Processus de collecte",fieldCollectionProcess:"Processus de collecte",collectionProcessPlaceholder:"Comment les données ont-elles été collectées ? Qui les a collectées ? Existe-t-il un mécanisme de consentement ?",sectionPreprocessing:"4. Prétraitement",fieldPreprocessingDescription:"Description du prétraitement",preprocessingDescriptionPlaceholder:"Quels nettoyages, normalisations ou transformations ont été appliqués ? Un logiciel est-il disponible ?",sectionUses:"5. Usages",fieldIntendedUses:"Usages prévus",intendedUsesPlaceholder:"Pour quelles tâches a-t-il été créé ? Y a-t-il des usages validés ?",fieldOutOfScopeUses:"Usages hors périmètre",outOfScopeUsesPlaceholder:"Pour quelles tâches ce dataset NE doit-il PAS être utilisé ?",sectionDistribution:"6. Distribution",fieldDistributionDescription:"Distribution et licence",distributionDescriptionPlaceholder:"Comment est-il distribué ? Sous quelle licence ? Y a-t-il des restrictions d'accès ?",fieldLicense:"Licence",licensePlaceholder:"ex. CC-BY 4.0, propriétaire, usage interne",sectionMaintenance:"7. Maintenance",fieldMaintenanceDescription:"Plan de maintenance",maintenanceDescriptionPlaceholder:"Qui maintient le dataset ? Comment sera-t-il mis à jour ? Existe-t-il un mécanisme de retour ?",sectionReview:"Révision et dates",fieldLastRefreshedAt:"Dernier rafraîchissement du corpus",fieldNextReviewAt:"Prochaine révision",fieldReviewFrequencyDays:"Fréquence de révision (jours)",fieldChangeSummary:"Résumé des modifications",changeSummaryPlaceholder:"Décrivez ce qui a changé et pourquoi",sectionLinkedAssets:"Assets du corpus",searchAssets:"Rechercher des assets...",noAssetsFound:"Aucun asset trouvé",linkedAssetsHint:"Sélectionnez les assets du catalogue qui composent ce corpus. La qualité dérivée est calculée à partir de ces assets.",sectionLinkedModelCards:"Model Cards liées",searchModelCards:"Rechercher des Model Cards...",noModelCardsFound:"Aucune Model Card trouvée",linkedModelCardsHint:"Model Cards des systèmes RAG dont le corpus est ce dataset.",sectionDerivedQuality:"Qualité dérivée du corpus (lecture seule)",derivedQualityNote:"Calculé automatiquement à partir des assets liés. Non modifiable.",assetCount:"Assets liés",corpusQualityScore:"Score de qualité",corpusCompleteness:"Complétude",assetsWithoutQuality:"Assets sans score de qualité",coveredDomains:"Domaines couverts",coveredDataSources:"Sources de données couvertes",noQualityData:"Pas de données de qualité",status_draft:"Brouillon",status_published:"Publiée",status_needs_update:"Nécessite une mise à jour",type_rag_grounding:"RAG / Grounding",type_knowledge_base:"Base de connaissances",type_fine_tuning:"Fine-tuning",type_evaluation:"Évaluation",type_training:"Entraînement",type_other:"Autre"},ve={title:"Registre des incidents IA",subtitle:"ISO/IEC 38507 §6.4 — enregistrement et suivi des incidents dans les systèmes d'IA.",newIncident:"Nouvel incident",empty:"Aucun incident enregistré.",raiseNonconformity:"Créer une non-conformité",viewNonconformities:"Voir les non-conformités",nonconformitiesCount_one:"{{count}} non-conformité",nonconformitiesCount_other:"{{count}} non-conformités",overdueBadge:"Signalement à l'autorité en retard",detectedAt:"Détecté",owner:"Responsable",system:"Système",noOwner:"Sans responsable",filterStatus:"Tous les états",openOnly:"Ouverts uniquement",stats:{open:"Incidents ouverts",reportOverdue:"Signalement à l'autorité en retard",seriousWithoutCapa:"Graves sans actions correctives"},type:{hallucination_with_impact:"Hallucination avec impact",bias:"Biais",data_leakage:"Fuite de données",unavailability:"Indisponibilité",regulatory_breach:"Non-conformité réglementaire",safety:"Sécurité",human_oversight_failure:"Défaillance de supervision humaine"},severity:{low:"Faible",medium:"Moyenne",high:"Élevée",critical:"Critique"},status:{detected:"Détecté",under_investigation:"En cours d'investigation",mitigated:"Atténué",resolved:"Résolu",reopened:"Rouvert",closed:"Fermé"}
10,form:{title:"Nouvel incident IA",titleField:"Titre",description:"Description",severity:"Sévérité",type:"Type d'incident",detectedAt:"Date de détection",serious:"Incident grave (Art. 73 EU AI Act)",seriousHelp:"Si vous laissez décoché, le système suggère automatiquement si une notification à l'autorité est requise selon la sévérité et le type.",owner:"Responsable",submit:"Créer l'incident",cancel:"Annuler",noSystems:"Aucun système d'IA enregistré. Enregistrez-les d'abord dans l'inventaire des systèmes d'IA.",success:"Incident créé",error:"Impossible de créer l'incident"},transition:{title:"Changer l'état de l'incident",action:"Changer l'état",rootCause:"Cause racine",correctiveActions:"Actions correctives (CAPA)",resolutionNote:"Note de résolution",notifyFirstWarning:"Cet incident nécessite une notification à l'autorité de surveillance. Enregistrez-la avant de fermer l'incident pour respecter le délai de 15 jours (Art. 73 EU AI Act).",submit:"Appliquer la transition",success:"État mis à jour",error:"Transition non autorisée",noTransitions:"État terminal. Aucune transition disponible."},notify:{title:"Enregistrer la notification à l'autorité",action:"Notifier l'autorité",notifiedAt:"Date de notification",authorityRef:"Référence de l'autorité",help:"Cette action enregistre qu'un responsable a notifié manuellement l'autorité de surveillance. Linedat n'envoie pas de notifications automatiquement.",submit:"Enregistrer la notification",success:"Notification enregistrée",error:"Impossible d'enregistrer la notification"}},ge={title:"Non-conformités IA",filteredByIncident:"Filtré par incident :",clearFilter:"Supprimer le filtre",subtitle:"Registre des non-conformités du système de management de l'IA et de leurs actions correctives et préventives (CAPA) — ISO/IEC 42001 §10.2",scopeNote:"Une non-conformité est enregistrée (déclarée par un audit interne, une revue de direction, une réclamation ou un incident) ; Linedat ne la détecte pas automatiquement. Elle s'applique à tout système d'IA —interne ou externe— ou au système de management lui-même.",newNonconformity:"Nouvelle non-conformité",empty:"Aucune non-conformité enregistrée",overdueBadge:"En retard",system:"Système",managementSystem:"Système de management",fromIncident:"Depuis un incident",dueDate:"Date d'échéance",owner:"Responsable",noOwner:"Non assigné",effectivenessVerified:"Efficacité vérifiée",correctionLabel:"Correction immédiate",rootCauseLabel:"Cause racine",effectivenessLabel:"Vérification d'efficacité",filterStatus:"État",filterSource:"Source",openOnly:"Ouvertes uniquement",stats:{open:"Ouvertes",overdue:"En retard",awaitingEffectiveness:"En attente de vérification d'efficacité"},status:{open:"Ouverte",containment:"Confinement",root_cause_analysis:"Analyse de cause racine",action_planned:"Action planifiée",action_implemented:"Action mise en œuvre",effectiveness_verified:"Efficacité vérifiée",reopened:"Rouverte",closed:"Fermée"},source:{internal_audit:"Audit interne",management_review:"Revue de direction",incident:"Incident",complaint:"Réclamation",monitoring:"Surveillance",other:"Autre"},severity:{low:"Faible",medium:"Moyenne",high:"Élevée",critical:"Critique"},form:{title:"Enregistrer une non-conformité",source:"Source",severity:"Sévérité",system:"Système d'IA concerné",systemNone:"Aucun — non-conformité du système de management",systemHelp:"Facultatif. Laisser vide si la non-conformité concerne le système de management lui-même et non un système d'IA spécifique.",fromIncident:"Incident source",fromIncidentNone:"Aucun",fromIncidentHelp:"Facultatif. Si cette non-conformité découle d'un incident IA, associez-le ici : la source devient « Incident » et le système est hérité.",titleField:"Titre",description:"Description",dueDate:"Date d'échéance",correction:"Correction immédiate",correctionHelp:"Action de confinement avant de connaître la cause racine (facultatif)",submit:"Enregistrer",success:"Non-conformité enregistrée",error:"Impossible d'enregistrer la non-conformité"},transition:{title:"Changer l'état",action:"Action",submit:"Appliquer",success:"État mis à jour",error:"Impossible de changer l'état",noTransitions:"État terminal. Aucune transition disponible.",correction:"Correction immédiate",rootCause:"Cause racine",effectivenessNotes:"Vérification d'efficacité",effectivenessHelp:"Décrire la preuve que l'action corrective a fonctionné (ISO 42001 §10.2 d).",resolutionNote:"Motif"},actions:{label:"Actions",success:"Action mise à jour",error:"Impossible de mettre à jour l'action",empty:"Aucune action corrective pour l'instant",addTitle:"Ajouter une action",type:"Type",due:"Échéance",descriptionPlaceholder:"Description de l'action",complete:"Marquer comme terminée",cancel:"Annuler l'action",types:{corrective:"Corrective",preventive:"Préventive"},statuses:{planned:"Planifiée",in_progress:"En cours",completed:"Terminée",cancelled:"Annulée"}}},fe={title:"Autorisations d'accès",subtitle:"Accès gouverné aux actifs ou domaines avec une finalité déclarée et une date d'expiration (ISO 38505-1, RGPD Art. 5, §1, b)).",newGrant:"Nouvelle autorisation",empty:"Aucune autorisation d'accès pour l'instant.",filterAll:"Toutes",grantee:"Bénéficiaire",granteeRequired:"Sélectionne un bénéficiaire",resource:"Ressource",resourceRequired:"Sélectionne une ressource",asset:"Actif",domain:"Domaine",accessLevel:"Niveau d'accès",purposeLabel:"Finalité",purposeDetail:"Détail de la finalité",purposeDetailRequired:"Le détail est obligatoire lorsque la finalité est 'Autre'.",expiresAt:"Expire le",expiresAtOptional:"Expiration (optionnel ; par défaut +90 jours)",grant:"Autoriser",revoke:"Révoquer",revokeHint:"Indique le motif de la révocation ; il sera enregistré.",revokeReason:"Motif",revokeReasonPlaceholder:"Motif de la révocation",createSuccess:"Autorisation créée",createError:"Impossible de créer l'autorisation",conflictError:"Une autorisation active existe déjà pour ce bénéficiaire, cette ressource et cette finalité.",revokeSuccess:"Autorisation révoquée",revokeError:"Impossible de révoquer l'autorisation",status:{active:"Active",expired:"Expirée",revoked:"Révoquée"},purpose:{data_analysis:"Analyse de données",reporting:"Rapports",quality_assurance:"Assurance qualité",incident_investigation:"Enquête sur incident",data_integration:"Intégration de données",compliance_audit:"Audit de conformité",model_training:"Entraînement de modèles",operational_support:"Support opérationnel",regulatory_reporting:"Reporting réglementaire",other:"Autre"}},he={empty:{title:"Aucune donnée d'utilisation enregistrée",hint:"L'utilisation est enregistrée au fur et à mesure que les utilisateurs accèdent 
10à la fiche de cet asset."},totalAccesses:"Accès totaux",lastNDays:"derniers {days} jours",uniqueUsers:"Utilisateurs uniques",dailyAverage:"Moyenne journalière",dailyTrend:"Tendance journalière",byType:"Accès par type",byPurpose:"Accès au catalogue par finalité",byPurposeHint:"Consultations de la fiche de cet asset dans Linedat (pas de requêtes sur les données sources), regroupées par la finalité de l'autorisation d'accès en vigueur. RGPD Art. 5(1)(b).",accessesAt:"{date} : {count} accès",purposeNone:"Sans autorisation",purposeMultiple:"Finalités multiples",purposeUnknown:"Non déterminé",type:{detail_view:"Vue détail",query:"Requête",export:"Export",api_read:"Lecture API",dashboard_view:"Dashboard",lineage_view:"Lignage"}},Ae={title:"Revues de Direction",subtitle:"ISO/IEC 42001 §9.3 — Revue par la haute direction de la pertinence, de l'adéquation et de l'efficacité de l'AIMS.",scopeNote:"Une revue de direction est une délibération périodique et documentée de la haute direction. Les entrées requises par le §9.3.2 (atteinte des objectifs, non-conformités, incidents, audits internes, risques, sorties des revues précédentes) sont figées en tant que preuve immuable à l'issue de la revue.",newReview:"Nouvelle revue",empty:"Aucune revue de direction enregistrée.",overdueBadge:"En retard",reviewDate:"Date de la revue",period:"Période",chairedBy:"Présidée par",nextReview:"Prochaine revue",conclusionLabel:"Conclusion sur la pertinence",snapshotLabel:"Snapshot des entrées §9.3.2 (preuve en lecture seule)",viewInputs:"Voir les entrées §9.3.2",filterStatus:"Tous les statuts",stats:{total:"Total",inProgress:"En cours",completed:"Terminées",overdue:"En retard"},status:{draft:"Brouillon",in_progress:"En cours",completed:"Terminée",cancelled:"Annulée"},form:{title:"Nouvelle revue de direction",titleField:"Titre",reviewDate:"Date de la revue",periodStart:"Début de la période",periodEnd:"Fin de la période",submit:"Créer la revue",success:"Revue créée",error:"Impossible de créer la revue"},transition:{title:"Modifier le statut de la revue",action:"Modifier le statut",submit:"Appliquer",success:"Statut mis à jour",error:"Transition non autorisée",noTransitions:"Statut terminal. Aucune transition disponible.",conclusionOnSuitability:"Conclusion sur la pertinence de l'AIMS",conclusionHelp:"ISO 42001 §9.3.3 — Indique si l'AIMS reste pertinent, adéquat et efficace. Obligatoire pour clôturer la revue.",changesToAims:"Modifications nécessaires à l'AIMS",resourceNeeds:"Besoins en ressources identifiés",nextReviewAt:"Date de la prochaine revue",nextReviewHelp:"Obligatoire pour clôturer. Définit le calendrier du prochain cycle de revue."},actionItems:{label:"Points d'action",empty:"Aucun point d'action pour l'instant.",addTitle:"Ajouter un point d'action",descriptionPlaceholder:"Description du point d'action",due:"Échéance",success:"Point d'action mis à jour",error:"Impossible de mettre à jour le point d'action",complete:"Marquer comme terminé",statuses:{planned:"Planifié",in_progress:"En cours",completed:"Terminé",cancelled:"Annulé"}},inputsPreview:{title:"Entrées requises §9.3.2 (en temps réel)",subtitle:"Signaux en temps réel de l'AIMS actif. Ces entrées sont figées dans la preuve de la revue à sa clôture.",empty:"Aucune entrée disponible."}},ye={title:"Audits Internes",subtitle:"ISO/IEC 42001 §9.2 — Audits planifiés et réalisés pour vérifier la conformité du système de management de l'IA.",scopeNote:"Les audits internes vérifient que l'AIMS satisfait à ses propres exigences. L'auditeur doit être indépendant du domaine audité (une attestation d'impartialité est requise avant de clôturer un audit).",newAudit:"Nouvel audit",empty:"Aucun audit interne enregistré.",overdueBadge:"En retard",impartialityConflict:"Conflit d'impartialité",impartialityAttested:"Impartialité attestée",impartialityNoteLabel:"Note d'impartialité",attestImpartiality:"Attester l'impartialité",attestSuccess:"Impartialité attestée",attestError:"Impossible d'attester l'impartialité",plannedDate:"Date planifiée",auditor:"Auditeur",areaOwner:"Responsable du domaine",scope:"Périmètre",conclusionLabel:"Conclusion",filterStatus:"Tous les statuts",filterSystem:"Tous les systèmes IA",stats:{total:"Total",inProgress:"En cours",overdue:"En retard",openFindings:"Constats ouverts"},status:{planned:"Planifié",in_progress:"En cours",completed:"Terminé",cancelled:"Annulé"},findingType:{major_nc:"NC majeure",minor_nc:"NC mineure",observation:"Observation",opportunity_for_improvement:"Opportunité d'amélioration",conformity:"Conformité"}
10,form:{title:"Nouvel audit interne",titleField:"Titre",programme:"Programme d'audit",scope:"Périmètre",criteria:"Critères",plannedDate:"Date planifiée",system:"Système IA (optionnel)",systemNone:"Aucun — audit du système de management",submit:"Créer l'audit",success:"Audit créé",error:"Impossible de créer l'audit"},transition:{title:"Modifier le statut de l'audit",action:"Modifier le statut",submit:"Appliquer",success:"Statut mis à jour",error:"Transition non autorisée",noTransitions:"Statut terminal. Aucune transition disponible.",conclusion:"Conclusion",conductedAt:"Date de réalisation",nextAuditAt:"Date du prochain audit",needsImpartialityHint:"Vous devez attester l'impartialité avant de clôturer cet audit."},attestDialog:{title:"Attester l'impartialité",description:"Confirme que l'auditeur est indépendant du domaine audité, comme l'exige la ISO 42001 §9.2.",conflictWarning:"Un possible conflit d'impartialité a été détecté (l'auditeur pourrait être également le responsable du domaine). Une note d'impartialité est requise.",note:"Note d'impartialité",notePlaceholder:"Décrivez les mesures prises pour préserver l'indépendance...",noteRequired:"Obligatoire en cas de conflit d'intérêts.",submit:"Confirmer l'impartialité"},findings:{label:"Constats",empty:"Aucun constat enregistré pour l'instant.",addTitle:"Ajouter un constat",type:"Type de constat",titleField:"Titre",description:"Description",raiseNonconformity:"Générer une non-conformité à partir de ce constat",linkedNc:"NC liée",add:"Ajouter un constat",success:"Constat ajouté",error:"Impossible d'ajouter le constat"}},be={title:"AIMS — Vue PDCA",subtitle:"ISO/IEC 42001 §9 — cycle Plan·Do·Check·Act du système de gestion de l'IA. Vue en temps réel ; sans scheduler ni tendances (issue #396).",computedAt:"Calculé",loadError:"Impossible de charger le résumé AIMS",aboutTitle:"À propos de cette vue",aboutBody:"Cette page résume l'état du système de gestion de l'IA (AIMS) mappé sur le cycle PDCA de la norme ISO/IEC 42001. Les données sont calculées en temps réel à l'ouverture de la page. Pour les tendances temporelles, le scheduler persistant est nécessaire (issue #396).",health:{title:"Signaux de santé",allGood:"Aucun signal d'alerte actif",noInternalAudit:"Audit interne jamais réalisé",noManagementReview:"Revue de direction jamais réalisée",internalAuditsOverdue:"Audits en retard : {{n}}",managementReviewsOverdue:"Revues en retard : {{n}}",openFindings:"Constats ouverts : {{n}}",nonconformitiesOpen:"Non-conformités ouvertes : {{n}}",nonconformitiesOverdue:"Non-conformités en retard : {{n}}",objectivesOffTrack:"Objectifs hors trajectoire : {{n}}",highRiskWithoutFria:"Systèmes à haut risque sans FRIA approuvée : {{n}}",incidentsOpen:"Incidents ouverts : {{n}}"},phases:{plan:"Plan",planLink:"Voir les objectifs AIMS",do:"Do",doLink:"Voir les systèmes IA",check:"Check",checkLink:"Voir les audits",act:"Act",actLink:"Voir les non-conformités"},plan:{objectivesTotal:"Objectifs totaux",objectivesOffTrack:"Hors trajectoire",objectivesOffTrackHint:"Objectifs avec statut at_risk ou missed",objectivesByStatus:"Par statut",noObjectives:"Aucun objectif",aiSystemsTotal:"Systèmes IA",highRiskSystems:"Haut risque",highRiskHint:"Systèmes classifiés comme high_risk ou unacceptable",friaApproved:"FRIA approuvées",friaHint:"Évaluations d'impact sur les droits fondamentaux approuvées",risksByLevel:"Risques par niveau",noRisks:"Aucun risque enregistré"},do:{systemsByLifecycle:"Systèmes par cycle de vie",noSystems:"Aucun système enregistré",suppliersTotal:"Fournisseurs totaux",suppliersWithDpa:"Avec DPA",suppliersWithDpaHint:"Fournisseurs disposant d'un accord de traitement des données en vigueur",suppliersWithoutDpa:"Sans DPA",suppliersWithoutDpaHint:"Fournisseurs actifs sans accord de traitement des données",trainingRecords:"Enregistrements de formation",policyAcknowledgements:"Conformités aux politiques"},check:{internalAudits:"Audits internes",auditsTotal:"Total",auditsPlanned:"Planifiés",auditsInProgress:"En cours",auditsCompleted:"Terminés",auditsOverdue:"En retard",openFindings:"Constats ouverts",managementReviews:"Revues de direction",reviewsLink:"Voir",reviewsTotal:"Total",reviewsCompleted:"Terminées",reviewsOverdue:"En retard",incidentsOpen:"Incidents ouverts"},act:{nonconformities:"Non-conformités",ncTotal:"Total",ncOpen:"Ouvertes",ncOverdue:"En retard",ncOverdueHint:"Non-conformités dont l'échéance de résolution est dépassée",ncAwaitingEffectiveness:"En att. d'efficacité",ncAwaitingEffectivenessHint:"Actions correctives clôturées mais en attente de vérification de l'efficacité (vérification à 30 jours)"}}
10,Ce={title:"Politique IA organisationnelle",subtitle:"ISO/IEC 42001 §5.2 — document unique du tenant, approuvé par la direction et versionné. Distinct de la configuration technique de l'IA.",scopeNote:"Ce document est la politique organisationnelle d'utilisation de l'IA (§5.2, direction). À ne pas confondre avec la configuration technique de gouvernance de l'IA. Elle est versionnée : chaque modification approuvée génère une nouvelle version permettant de reconstruire l'état à tout moment.",createButton:"Créer la politique IA",transitionButton:"Changer le statut",overdueBadge:"Révision en retard",archivedNote:"Politique archivée — lecture seule",archivedEditNote:"Une politique archivée ne peut pas être modifiée directement. Pour la modifier à nouveau, utilisez «Réactiver» pour la repasser en brouillon.",status:{draft:"Brouillon",active:"Active",archived:"Archivée"},empty:{title:"Aucune politique IA pour l'instant",hint:"Créez la politique IA organisationnelle (ISO/IEC 42001 §5.2) pour documenter la finalité, les principes et les engagements de l'organisation envers une IA responsable."},sections:{purpose:"§5.2 a · Finalité",scope:"§5.2 b · Champ d'application",principles:"§5.2 c · Principes",commitmentRequirements:"§5.2 d · Engagement envers les exigences",commitmentImprovement:"§5.2 e · Engagement envers l'amélioration continue",objectivesFramework:"§5.2 f · Cadre d'objectifs",emptyHint:"Aucun contenu. Modifiez la politique pour ajouter cette section."},fields:{title:"Titre du document",titlePlaceholder:"ex. Politique IA d'ACME Corp 2026",purposePlaceholder:"Pourquoi l'organisation utilise-t-elle l'IA et quels objectifs poursuit-elle ?",scopePlaceholder:"À quelles unités, systèmes et activités l'AIMS s'applique-t-il ?",principlesPlaceholder:"Valeurs et principes de conception guidant l'utilisation de l'IA (ex. transparence, équité, supervision humaine).",commitmentRequirementsPlaceholder:"Engagement à respecter les exigences applicables (ISO 42001, réglementations, contrats).",commitmentImprovementPlaceholder:"Engagement à améliorer continuellement le système de management de l'IA.",objectivesFrameworkPlaceholder:"Cadre pour définir, réviser et communiquer les objectifs IA.",reviewFrequencyDays:"Fréquence de révision (jours)",reviewFrequencyHelp:"Tous les combien de jours la politique doit-elle être révisée. Ex. 365 pour une révision annuelle.",changeSummary:"Résumé de la modification (optionnel)",changeSummaryPlaceholder:"Décrivez brièvement ce qui a changé et pourquoi."},meta:{approvedAt:"Approuvée le",approvedBy:"Approuvée par",nextReview:"Prochaine révision",reviewFrequency:"Fréquence de révision",reviewFrequencyValue:"tous les {{days}} jours"},transitions:{approve:"Approuver et activer",reopen:"Rouvrir en brouillon",archive:"Archiver",revive:"Réactiver en brouillon"},transitionDialog:{title:"Changer le statut de la politique",targetStatus:"Nouveau statut",noTransitions:"Aucune transition disponible depuis le statut actuel.",approvalGateTitle:"Champs obligatoires §5.2 manquants pour l'approbation :",nextReviewAt:"Prochaine révision (optionnel)",nextReviewHelp:"Si définie, Linedat marquera la politique comme «révision en retard» à partir de cette date.",submit:"Appliquer"},createDialog:{title:"Créer la politique IA organisationnelle",submit:"Créer la politique"},editDialog:{title:"Modifier la politique IA"},versions:{title:"Historique des versions",empty:"Aucune version enregistrée pour l'instant.",validFrom:"Valide depuis",validTo:"Valide jusqu'au",changedBy:"Modifiée par"},toast:{createSuccess:"Politique IA créée",createError:"Impossible de créer la politique",updateSuccess:"Politique mise à jour",updateError:"Impossible de mettre à jour la politique",transitionSuccess:"Statut mis à jour",transitionError:"Transition non autorisée"}},Se={title:"Déclaration d'Applicabilité (SoA)",subtitle:"ISO/IEC 42001 §6.1.3 — inventaire des ~38 contrôles de l'Annexe A, avec justification et état de mise en œuvre.",scopeNote:"La SoA est le document de certification de l'AIMS (Annexe A). Linedat la versionne et gère le flux d'approbation ; le certificat ISO est délivré par l'organisme de certification externe accrédité.",createButton:"Créer une Déclaration d'Applicabilité",transitionButton:"Changer le statut",overdueBadge:"Révision en retard",archivedNote:"SoA archivée — lecture seule",archivedEditNote:"Une SoA archivée ne peut pas être modifiée directement. Utilisez « Restaurer » pour la repasser en brouillon.",gateHintInline:"{{count}} justifications manquantes. Tous les contrôles doivent être justifiés avant l'approbation (§6.1.3).",controlsSection:"Contrôles de l'Annexe A",status:{draft:"Brouillon",active:"Active",archived:"Archivée"},empty:{title:"Aucune Déclaration d'Applicabilité pour l'instant",hint:"Créez la SoA pour inventorier les contrôles de l'Annexe A de l'ISO/IEC 42001, déclarer leur applicabilité et justifier chaque décision (§6.1.3)."},coverage:{title:"Couverture de l'Annexe A",total:"Total des contrôles",applicable:"Ap
10plicables",excluded:"Exclus",implemented:"Mis en œuvre",partial:"Partiel",notImplemented:"Non mis en œuvre",justified:"Justifiés",unjustified:"Non justifiés"},fields:{title:"Titre du document",titlePlaceholder:"ex. SoA ACME Corp — ISO/IEC 42001:2023",description:"Description",descriptionPlaceholder:"Périmètre organisationnel, version de la norme, date de création…",reviewFrequencyDays:"Fréquence de révision (jours)",reviewFrequencyHelp:"Tous les combien de jours la SoA doit être révisée. Ex. 365 pour une révision annuelle."},control:{applicable:"Inclus",excluded:"Exclu",clickToExclude:"Cliquez pour exclure ce contrôle",clickToInclude:"Cliquez pour inclure ce contrôle",justification:"Justification",justificationPlaceholder:"Justifiez pourquoi ce contrôle est applicable / non applicable (obligatoire §6.1.3).",noJustification:"Aucune justification — requise avant l'approbation",implementationStatusLabel:"État de mise en œuvre",implementationStatus:{not_implemented:"Non mis en œuvre",partial:"Partiel",implemented:"Mis en œuvre"},evidence:"Preuve (facultative)",evidencePlaceholder:"Chemin du document, URL, ID de tâche, description du contrôle existant…"},meta:{approvedAt:"Approuvée le",approvedBy:"Approuvée par",nextReview:"Prochaine révision"},transitions:{approve:"Approuver et activer",reopen:"Rouvrir en brouillon",archive:"Archiver",revive:"Restaurer en brouillon"},transitionDialog:{title:"Changer le statut de la SoA",targetStatus:"Nouveau statut",noTransitions:"Aucune transition disponible depuis le statut actuel.",gateTitle:"Justifications manquantes — §6.1.3 exige la justification de tous les contrôles",gateHint:"{{count}} justifications manquantes. Remplissez-les toutes avant d'approuver.",nextReviewAt:"Date de la prochaine révision (facultative)",nextReviewHelp:"Si définie, Linedat marquera la SoA comme « révision en retard » après cette date.",changeSummary:"Résumé des modifications (facultatif)",changeSummaryPlaceholder:"Décrivez brièvement ce qui a changé et pourquoi.",submit:"Appliquer"},createDialog:{title:"Créer une Déclaration d'Applicabilité",seedNote:"Les ~38 contrôles de l'Annexe A de l'ISO/IEC 42001 seront créés automatiquement. Vous pourrez ensuite modifier l'applicabilité, la justification et l'état de mise en œuvre de chacun.",submit:"Créer la SoA"},versions:{title:"Historique des versions",empty:"Aucune version enregistrée pour l'instant.",validFrom:"Valide depuis",validTo:"Valide jusqu'au",changedBy:"Modifiée par"},toast:{createSuccess:"Déclaration d'Applicabilité créée",createError:"Impossible de créer la SoA",controlSaved:"Contrôle mis à jour",controlError:"Impossible de mettre à jour le contrôle",transitionSuccess:"Statut mis à jour",transitionError:"Transition non autorisée"},suggestions:{label:"Suggéré",apply:"Appliquer la suggestion",applied:"Suggestion appliquée",disclaimer:"Suggestion dérivée de vos fonctionnalités ; confirmez-la — elle ne s'applique pas automatiquement.",evidence:{mgmt_policy_active:"Politique IA §5.2 active",mgmt_policy_missing:"Aucune politique IA §5.2 active",fria_approved:"{{count}} FRIA approuvée(s)",fria_none:"Aucune FRIA approuvée",systems_inventoried:"{{count}} système(s) IA inventorié(s)",systems_none:"Aucun système IA inventorié",model_cards_published:"{{count}} Model Card publiée(s)",model_cards_none:"Aucune Model Card publiée",ai_usage_logs:"{{count}} journal/journaux d'utilisation IA",ai_usage_logs_none:"Aucun journal d'utilisation IA",dataset_cards:"{{count}} Dataset Card publiée(s)",dataset_cards_none:"Aucune Dataset Card publiée",quality_scored:"{{count}} actif(s) avec score de qualité",quality_none:"Aucun actif avec score de qualité",training_records:"{{count}} enregistrement(s) de formation",training_none:"Aucun enregistrement de formation",ai_policy_configured:"Politique technique IA configurée",incidents_registered:"{{count}} incident(s) IA enregistré(s)",suppliers_with_dpa:"{{count}} fournisseur(s) avec DPA",suppliers_without_dpa:"{{count}} fournisseur(s) sans DPA"}}},De={common:e,checklist:t,nav:i,catalog:s,assetType:n,dataSources:r,asset:o,sensitivity:a,storageFormat:l,column:u,import:{title:"Importer un actif",uploadFile:"Téléverser un fichier",dragDropHint:"Glissez-déposez un fichier CSV ou Excel ici",orClickToSelect:"ou cliquez pour sélectionner",supportedFormats:"Formats pris en charge : CSV, XLSX, XLS",downloadTemplate:"Télécharger le modèle",preview:"Aperçu",mapping:"Mappage",validation:"Validation",execute:"Exécuter",detectingColumns:"Détection des colonnes...",columnsDetected:"{{count}} colonnes détectées",autoGenerateDescriptions:"Générer automatiquement les descriptions",detectPii:"Détecter les PII",importSuccess:"Actif importé avec succès",importError:"Erreur lors de l'importation de l'actif"}
10,glossary:c,quality:d,lineage:p,governance:m,ai:v,errors:g,actions:f,dashboard:h,language:A,designer:y,undocumentedFields:b,categories:C,createAsset:S,upgrade:D,chat:q,admin:P,users:I,groups:T,domains:R,dataGovernance:_,ownership:x,search:w,notifications:E,onboarding:L,tickets:j,settings:k,brain:z,errorBoundary:M,accessBlocked:N,aiGovernance:F,policies:O,dataRisks:V,dpia:U,contracts:B,stewardship:H,committees:G,tour:W,banner:Q,planLimits:J,consents:Y,acceptTerms:K,billing:Z,apiTokens:X,authSyncError:$,policyVersions:ee,decisionEvidence:te,competence:ie,aimsObjectives:se,auditChain:ne,lineageActivity:re,edm:oe,aiSystems:ae,aiSuppliers:le,aiImpactAssessments:ue,processingActivities:ce,dataSubjectRequests:de,modelCards:pe,datasetCards:me,aiIncidents:ve,aiNonconformities:ge,accessGrants:fe,usage:he,managementReviews:Ae,internalAudits:ye,aimsOverview:be,aiManagementPolicy:Ce,soa:Se};export{K as acceptTerms,N as accessBlocked,fe as accessGrants,f as actions,P as admin,v as ai,F as aiGovernance,ue as aiImpactAssessments,ve as aiIncidents,Ce as aiManagementPolicy,ge as aiNonconformities,le as aiSuppliers,ae as aiSystems,se as aimsObjectives,be as aimsOverview,X as apiTokens,o as asset,n as assetType,ne as auditChain,$ as authSyncError,Q as banner,Z as billing,z as brain,s as catalog,C as categories,q as chat,t as checklist,u as column,G as committees,e as common,ie as competence,Y as consents,B as contracts,S as createAsset,h as dashboard,_ as dataGovernance,V as dataRisks,r as dataSources,de as dataSubjectRequests,me as datasetCards,te as decisionEvidence,De as default,y as designer,R as domains,U as dpia,oe as edm,M as errorBoundary,g as errors,c as glossary,m as governance,T as groups,ye as internalAudits,A as language,p as lineage,re as lineageActivity,Ae as managementReviews,pe as modelCards,i as nav,E as notifications,L as onboarding,x as ownership,J as planLimits,O as policies,ee as policyVersions,ce as processingActivities,d as quality,w as search,a as sensitivity,k as settings,Se as soa,H as stewardship,l as storageFormat,j as tickets,W as tour,b as undocumentedFields,D as upgrade,he as usage,I as users};
11//# sourceMappingURL=fr-urc1Pdgt.js.map

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.