@cat-factory/app 0.46.10 → 0.46.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/app/components/auth/AuthGate.vue +2 -1
- package/app/components/auth/LoginScreen.vue +41 -31
- package/app/components/auth/ResetPasswordScreen.vue +16 -13
- package/app/components/auth/UserMenu.vue +3 -2
- package/app/components/layout/AccountDeploymentSettings.vue +75 -32
- package/app/components/layout/AccountFragmentSettings.vue +2 -3
- package/app/components/layout/AccountTeamSettings.vue +75 -45
- package/app/components/layout/AiProvidersBanner.vue +11 -11
- package/app/components/layout/BoardSwitcher.vue +63 -29
- package/app/components/layout/CommandBar.vue +68 -54
- package/app/components/layout/GitHubPatBanner.vue +13 -6
- package/app/components/layout/IntegrationBackTitle.vue +4 -1
- package/app/components/layout/IntegrationsHub.vue +67 -49
- package/app/components/layout/NotificationsInbox.vue +48 -19
- package/app/components/layout/PersonalSetupModal.vue +26 -16
- package/app/components/layout/ProviderConfigBanner.vue +14 -9
- package/app/components/layout/SideBar.vue +20 -18
- package/app/components/layout/SpendWarningBanner.vue +16 -16
- package/app/components/observability/StepMetricsBar.vue +31 -11
- package/app/components/observability/StepModelActivity.vue +3 -2
- package/app/components/panels/AgentStepDetail.vue +52 -39
- package/app/components/panels/DecisionModal.vue +12 -5
- package/app/components/panels/GenericStructuredResultView.vue +16 -6
- package/app/components/panels/InspectorPanel.vue +35 -28
- package/app/components/panels/ObservabilityPanel.vue +92 -49
- package/app/components/panels/StepMetadataCard.vue +87 -30
- package/app/components/panels/StepRestartControl.vue +4 -3
- package/app/components/panels/StepRunMeta.vue +23 -10
- package/app/components/panels/StepTestReport.vue +14 -11
- package/app/components/panels/inspector/ContainerSummary.vue +25 -14
- package/app/components/panels/inspector/EpicChildren.vue +7 -4
- package/app/components/panels/inspector/RecurringScheduleSettings.vue +60 -19
- package/app/components/panels/inspector/ServiceFragments.vue +3 -2
- package/app/components/panels/inspector/ServiceReleaseHealthConfig.vue +18 -13
- package/app/components/panels/inspector/ServiceTestConfig.vue +50 -39
- package/app/components/panels/inspector/TaskAgentConfig.vue +6 -5
- package/app/components/panels/inspector/TaskDependencies.vue +9 -4
- package/app/components/panels/inspector/TaskEstimateBadge.vue +14 -13
- package/app/components/panels/inspector/TaskExecution.vue +65 -31
- package/app/components/panels/inspector/TaskRunSettings.vue +93 -56
- package/app/components/panels/inspector/TaskStructure.vue +5 -4
- package/app/components/providers/PersonalSubscriptionSection.vue +1 -2
- package/i18n/locales/en.json +814 -0
- package/i18n/locales/es.json +811 -0
- package/i18n/locales/fr.json +811 -0
- package/i18n/locales/pl.json +811 -0
- package/i18n/locales/uk.json +811 -0
- package/package.json +1 -1
package/i18n/locales/fr.json
CHANGED
|
@@ -308,5 +308,816 @@
|
|
|
308
308
|
"step3": "Copiez tout le contenu de auth.json, collez-le ci-dessous et choisissez un mot de passe personnel pour le protéger."
|
|
309
309
|
}
|
|
310
310
|
}
|
|
311
|
+
},
|
|
312
|
+
"inspector": {
|
|
313
|
+
"container": {
|
|
314
|
+
"modules": "Modules ({count})",
|
|
315
|
+
"taskCount": "{count} tâche | {count} tâches",
|
|
316
|
+
"allTasks": "Toutes les tâches ({count})",
|
|
317
|
+
"tasks": "Tâches ({count})",
|
|
318
|
+
"addTask": "Ajouter une tâche",
|
|
319
|
+
"noTasks": "Aucune tâche pour le moment. Ajoutez-en une pour commencer.",
|
|
320
|
+
"servicesHint": "Les services sont permanents et ne se terminent pas. Le travail se fait dans leurs tâches et modules."
|
|
321
|
+
},
|
|
322
|
+
"epicChildren": {
|
|
323
|
+
"title": "Tâches de l'epic",
|
|
324
|
+
"doneCount": "{done}/{total} terminées",
|
|
325
|
+
"empty": "Aucune tâche n'appartient encore à cet epic. Importez les enfants d'un epic, ou définissez l'epic d'une tâche.",
|
|
326
|
+
"unassigned": "Non assigné"
|
|
327
|
+
},
|
|
328
|
+
"recurring": {
|
|
329
|
+
"title": "Pipeline récurrent",
|
|
330
|
+
"active": "Actif",
|
|
331
|
+
"paused": "En pause",
|
|
332
|
+
"intervalDays": "{count}j",
|
|
333
|
+
"intervalHours": "{count}h",
|
|
334
|
+
"anyDay": "n'importe quel jour",
|
|
335
|
+
"cadence": "Tous les {every} · {days}{window} · {timezone}",
|
|
336
|
+
"weekdays": {
|
|
337
|
+
"sun": "Dim",
|
|
338
|
+
"mon": "Lun",
|
|
339
|
+
"tue": "Mar",
|
|
340
|
+
"wed": "Mer",
|
|
341
|
+
"thu": "Jeu",
|
|
342
|
+
"fri": "Ven",
|
|
343
|
+
"sat": "Sam"
|
|
344
|
+
},
|
|
345
|
+
"nextRun": "Prochaine exécution : {time}",
|
|
346
|
+
"runNow": "Exécuter maintenant",
|
|
347
|
+
"pause": "Mettre en pause",
|
|
348
|
+
"resume": "Reprendre",
|
|
349
|
+
"editCadence": "Modifier la cadence",
|
|
350
|
+
"recentRuns": "Exécutions récentes",
|
|
351
|
+
"runStatus": {
|
|
352
|
+
"running": "En cours",
|
|
353
|
+
"done": "Terminé",
|
|
354
|
+
"failed": "Échoué",
|
|
355
|
+
"skipped": "Ignoré"
|
|
356
|
+
},
|
|
357
|
+
"updateFailed": "Impossible de mettre à jour la planification",
|
|
358
|
+
"runNowFailed": "Impossible d'exécuter maintenant"
|
|
359
|
+
},
|
|
360
|
+
"fragments": {
|
|
361
|
+
"serviceTitle": "Bonnes pratiques du service",
|
|
362
|
+
"serviceEmpty": "Aucune. Les agents conscients du code sur ce service suivent leurs consignes par défaut."
|
|
363
|
+
},
|
|
364
|
+
"releaseHealth": {
|
|
365
|
+
"title": "Santé post-déploiement",
|
|
366
|
+
"clear": "Effacer",
|
|
367
|
+
"connectPrompt": "Connectez une intégration d'observabilité pour surveiller ce service après les déploiements.",
|
|
368
|
+
"connectFirst": "Connectez d'abord une intégration d'observabilité",
|
|
369
|
+
"connect": "Connecter",
|
|
370
|
+
"hint": "Les monitors et SLO que la gate surveille après le déploiement de ce service. Séparez les ids par des virgules.",
|
|
371
|
+
"monitorIds": "Ids de monitors",
|
|
372
|
+
"sloIds": "Ids de SLO",
|
|
373
|
+
"envTag": "Tag d'environnement (facultatif)",
|
|
374
|
+
"saveMonitoring": "Enregistrer la surveillance",
|
|
375
|
+
"savedToast": "Surveillance enregistrée",
|
|
376
|
+
"saveFailed": "Impossible d'enregistrer le mappage",
|
|
377
|
+
"clearFailed": "Impossible d'effacer le mappage"
|
|
378
|
+
},
|
|
379
|
+
"testConfig": {
|
|
380
|
+
"title": "Infrastructure de test",
|
|
381
|
+
"defaultEnv": "Environnement de test par défaut",
|
|
382
|
+
"defaultEnvHint": "Celui avec lequel les tâches par défaut de ce service sont créées. Chaque tâche peut le remplacer dans ses paramètres d'agent.",
|
|
383
|
+
"env": {
|
|
384
|
+
"ephemeral": "Environnement éphémère",
|
|
385
|
+
"ephemeralHint": "les tests s'exécutent sur un environnement provisionné",
|
|
386
|
+
"local": "Local (docker-compose)",
|
|
387
|
+
"localHint": "le Testeur met en place les dépendances localement"
|
|
388
|
+
},
|
|
389
|
+
"composePath": "Chemin docker-compose",
|
|
390
|
+
"browseRepo": "Parcourir le dépôt pour trouver le fichier compose",
|
|
391
|
+
"composeHint": "Utilisé par le Testeur pour mettre en place les dépendances du service localement.",
|
|
392
|
+
"selectComposeTitle": "Sélectionner le fichier docker-compose",
|
|
393
|
+
"selectComposeHint": "Choisissez le fichier compose dans le dépôt. Son chemin est stocké relativement à la racine du dépôt.",
|
|
394
|
+
"selected": "Sélectionné : {path}",
|
|
395
|
+
"noFileSelected": "Aucun fichier sélectionné.",
|
|
396
|
+
"useThisFile": "Utiliser ce fichier",
|
|
397
|
+
"noInfra": "Aucune dépendance d'infrastructure (le Testeur ne met rien en place)",
|
|
398
|
+
"missingInfra": "Définissez un chemin docker-compose ou activez l'absence de dépendances d'infrastructure, sinon un pipeline avec un Testeur ne démarrera pas.",
|
|
399
|
+
"provisioningTitle": "Provisionnement de l'environnement éphémère",
|
|
400
|
+
"provisioningHint": "Une indication pour provisionner l'environnement de test éphémère de ce service : quel fournisseur cloud cibler et quelle taille d'instance demander. Ignoré pour les tests locaux (docker-compose).",
|
|
401
|
+
"cloudProvider": "Fournisseur cloud",
|
|
402
|
+
"instanceSize": "Taille d'instance",
|
|
403
|
+
"providers": {
|
|
404
|
+
"docker": "Docker (local)",
|
|
405
|
+
"custom": "Personnalisé"
|
|
406
|
+
},
|
|
407
|
+
"sizes": {
|
|
408
|
+
"small": "Petite",
|
|
409
|
+
"medium": "Moyenne",
|
|
410
|
+
"large": "Grande",
|
|
411
|
+
"xlarge": "Très grande"
|
|
412
|
+
}
|
|
413
|
+
},
|
|
414
|
+
"agentConfig": {
|
|
415
|
+
"title": "Configuration de l'agent",
|
|
416
|
+
"inherited": "hérité du service",
|
|
417
|
+
"frozen": "Figé : l'agent a démarré"
|
|
418
|
+
},
|
|
419
|
+
"dependencies": {
|
|
420
|
+
"title": "Dépend de",
|
|
421
|
+
"merged": "Fusionné",
|
|
422
|
+
"notMerged": "Pas encore fusionné",
|
|
423
|
+
"empty": "Aucune dépendance. Peut s'exécuter à tout moment.",
|
|
424
|
+
"blocked": "Bloqué jusqu'à la fusion des dépendances."
|
|
425
|
+
},
|
|
426
|
+
"estimate": {
|
|
427
|
+
"title": "Estimation",
|
|
428
|
+
"complexity": "Complexité",
|
|
429
|
+
"risk": "Risque",
|
|
430
|
+
"impact": "Impact"
|
|
431
|
+
},
|
|
432
|
+
"execution": {
|
|
433
|
+
"stage": {
|
|
434
|
+
"incorporating": "Intégration en cours…",
|
|
435
|
+
"reviewing": "Nouvelle revue en cours…",
|
|
436
|
+
"recommending": "Recommandation en cours…"
|
|
437
|
+
},
|
|
438
|
+
"prNumber": "PR n° {number}",
|
|
439
|
+
"pullRequest": "Pull request",
|
|
440
|
+
"stepState": {
|
|
441
|
+
"pending": "En attente",
|
|
442
|
+
"working": "En cours",
|
|
443
|
+
"waiting_decision": "Décision requise",
|
|
444
|
+
"done": "Terminé"
|
|
445
|
+
},
|
|
446
|
+
"failed": "Échoué",
|
|
447
|
+
"needsDecision": "Décision requise",
|
|
448
|
+
"needsApproval": "Approbation requise",
|
|
449
|
+
"spinningUp": "Démarrage…",
|
|
450
|
+
"stop": "Arrêter",
|
|
451
|
+
"stopTooltip": "Arrêter l'exécution mais la conserver (lisible et relançable)",
|
|
452
|
+
"reset": "Réinitialiser",
|
|
453
|
+
"resetTooltip": "Abandonner cette exécution et réinitialiser la tâche à planifiée",
|
|
454
|
+
"viewDetailsOutput": "Voir les détails et lire la sortie",
|
|
455
|
+
"viewDetails": "Voir les détails de l'étape",
|
|
456
|
+
"companion": "Compagnon",
|
|
457
|
+
"companionTooltip": "Compagnon d'une étape de production",
|
|
458
|
+
"subtasksProgress": "{completed} sur {total} sous-tâches terminées, {inProgress} en cours",
|
|
459
|
+
"subtasksDone": "{completed} sur {total} sous-tâches terminées",
|
|
460
|
+
"resolve": "Résoudre",
|
|
461
|
+
"decide": "Décider",
|
|
462
|
+
"review": "Réviser",
|
|
463
|
+
"approve": "Approuver",
|
|
464
|
+
"fragmentsTooltip": "Fragments de bonnes pratiques intégrés à cette étape : {fragments}",
|
|
465
|
+
"standardsApplied": "{count} standard appliqué | {count} standards appliqués",
|
|
466
|
+
"companionOf": "{label} (compagnon)",
|
|
467
|
+
"merged": "Fusionné",
|
|
468
|
+
"open": "Ouvert",
|
|
469
|
+
"mergePr": "Fusionner la PR"
|
|
470
|
+
},
|
|
471
|
+
"structure": {
|
|
472
|
+
"module": "Module",
|
|
473
|
+
"modulePlaceholder": "ex. Sessions (créé lors de l'implémentation s'il est nouveau)",
|
|
474
|
+
"bestPractices": "Bonnes pratiques",
|
|
475
|
+
"bestPracticesEmpty": "Aucune. Les agents suivent leurs consignes par défaut."
|
|
476
|
+
},
|
|
477
|
+
"runSettings": {
|
|
478
|
+
"unassigned": "Non assigné",
|
|
479
|
+
"workspaceDefault": "Valeur par défaut de l'espace de travail",
|
|
480
|
+
"workspaceDefaultParen": "(valeur par défaut de l'espace de travail)",
|
|
481
|
+
"defaultPresetThresholds": "Par défaut ({name}) : {thresholds}",
|
|
482
|
+
"defaultPreset": "Par défaut ({name})",
|
|
483
|
+
"noDefault": "Aucune valeur par défaut",
|
|
484
|
+
"inheritWorkspace": "Hériter de l'espace de travail",
|
|
485
|
+
"on": "Activé",
|
|
486
|
+
"off": "Désactivé",
|
|
487
|
+
"inheritOn": "Hériter (activé)",
|
|
488
|
+
"inheritOff": "Hériter (désactivé)",
|
|
489
|
+
"technical": {
|
|
490
|
+
"unset": "Non défini (détection automatique)",
|
|
491
|
+
"technical": "Technique",
|
|
492
|
+
"business": "Métier"
|
|
493
|
+
},
|
|
494
|
+
"pipeline": "Pipeline",
|
|
495
|
+
"pipelineEmpty": "Aucune valeur par défaut. Choisissez un pipeline lorsque vous exécutez cette tâche.",
|
|
496
|
+
"mergePolicy": "Politique de fusion",
|
|
497
|
+
"mergePresetDetail": "{name} : fusion automatique lorsque la complexité ≤ {complexity}, le risque ≤ {risk}, l'impact ≤ {impact} ; jusqu'à {attempts} tentatives de correction CI.",
|
|
498
|
+
"mergePresetEmpty": "Aucun preset configuré. Le fusionneur déclenche une notification de revue pour chaque PR.",
|
|
499
|
+
"modelPreset": "Preset de modèle",
|
|
500
|
+
"modelPresetBase": "base {model}",
|
|
501
|
+
"modelPresetOverrides": ", {count} remplacement | , {count} remplacements",
|
|
502
|
+
"modelPresetEmpty": "Aucun preset configuré. Les agents s'exécutent avec le routage par défaut du déploiement.",
|
|
503
|
+
"unavailableModels": "Non disponible avec la configuration actuelle : {models}. Cette tâche échouerait à ces étapes.",
|
|
504
|
+
"editPresets": "Modifier les presets",
|
|
505
|
+
"configureVendors": "Configurer les fournisseurs",
|
|
506
|
+
"modelPresetChangeHint": "Ce changement n'affecte que les étapes qui n'ont pas encore démarré.",
|
|
507
|
+
"taskKind": "Type de tâche",
|
|
508
|
+
"technicalHint": {
|
|
509
|
+
"technical": "Technique : l'implémenteur traite la définition de la tâche comme primaire et la spec comme référence de régression ; le rédacteur de spec peut ne produire aucune spec métier.",
|
|
510
|
+
"business": "Métier : la spécification mène, comme d'habitude.",
|
|
511
|
+
"unset": "Détection automatique : déduit de la phase de spec. Définissez-le explicitement pour le remplacer."
|
|
512
|
+
},
|
|
513
|
+
"issueWriteback": "Réécriture d'issue",
|
|
514
|
+
"commentOnPrOpen": "Commenter à l'ouverture de la PR",
|
|
515
|
+
"closeOnMerge": "Fermer à la fusion",
|
|
516
|
+
"writebackHint": "Réécrit dans l'issue de tracker liée à cette tâche. Remplace la valeur par défaut de l'espace de travail.",
|
|
517
|
+
"responsibleProduct": "Produit responsable",
|
|
518
|
+
"responsibleEmpty": "Non assigné. Définissez un responsable produit pour le notifier lorsque la revue d'exigences signale cette tâche.",
|
|
519
|
+
"autoStartDependents": "Démarrer automatiquement les dépendants",
|
|
520
|
+
"autoStartHint": "Lorsque cette tâche est fusionnée, démarrer automatiquement les tâches qui en dépendent (une fois que leurs autres dépendances sont également terminées)."
|
|
521
|
+
}
|
|
522
|
+
},
|
|
523
|
+
"panels": {
|
|
524
|
+
"decision": {
|
|
525
|
+
"title": "Décision requise",
|
|
526
|
+
"agentOnBlock": "{agent} sur {block}",
|
|
527
|
+
"visualizationHint": "Ceci est une visualisation. Tout choix reprend simplement le pipeline."
|
|
528
|
+
},
|
|
529
|
+
"stepRestart": {
|
|
530
|
+
"restartFromStep": "Redémarrer le pipeline à partir de cette étape",
|
|
531
|
+
"restartFromHere": "Redémarrer à partir d'ici"
|
|
532
|
+
},
|
|
533
|
+
"structuredResult": {
|
|
534
|
+
"fallbackTitle": "Résultat de l'agent",
|
|
535
|
+
"titleWithBlock": "{label} : {title}",
|
|
536
|
+
"fallbackDescription": "Sortie structurée de l'agent",
|
|
537
|
+
"structuredOutput": "Sortie structurée",
|
|
538
|
+
"noResult": "Pas encore de résultat.",
|
|
539
|
+
"noResultHint": "La sortie structurée apparaît une fois que cet agent a terminé. Pendant son exécution, l'étape affiche sa progression en direct sur le tableau."
|
|
540
|
+
},
|
|
541
|
+
"testReport": {
|
|
542
|
+
"title": "Rapport de test",
|
|
543
|
+
"greenlit": "Validé",
|
|
544
|
+
"needsFixes": "Corrections nécessaires",
|
|
545
|
+
"fixAttempts": "{count}/{max} tentatives de correction",
|
|
546
|
+
"fixing": "· correction…",
|
|
547
|
+
"tested": "Testé",
|
|
548
|
+
"outcomes": "Résultats",
|
|
549
|
+
"concerns": "Préoccupations"
|
|
550
|
+
},
|
|
551
|
+
"stepMeta": {
|
|
552
|
+
"stateLabel": "État",
|
|
553
|
+
"duration": "Durée",
|
|
554
|
+
"elapsed": "écoulé",
|
|
555
|
+
"step": "Étape",
|
|
556
|
+
"stepOf": "{number} sur {total}",
|
|
557
|
+
"started": "Démarré",
|
|
558
|
+
"finished": "Terminé",
|
|
559
|
+
"model": "Modèle",
|
|
560
|
+
"notRecorded": "Non enregistré",
|
|
561
|
+
"run": "Exécution",
|
|
562
|
+
"clickToCopy": "{id} (cliquer pour copier)",
|
|
563
|
+
"spinningUpContainer": "Démarrage du conteneur…",
|
|
564
|
+
"subtasks": "Sous-tâches · {completed}/{total}",
|
|
565
|
+
"standardsApplied": "Standards appliqués",
|
|
566
|
+
"decision": "Décision",
|
|
567
|
+
"awaitingChoice": "En attente d'un choix humain",
|
|
568
|
+
"approvalGate": "Gate d'approbation",
|
|
569
|
+
"companionReview": "Revue du compagnon",
|
|
570
|
+
"correctionIterations": "{count} itération de correction. | {count} itérations de correction.",
|
|
571
|
+
"state": {
|
|
572
|
+
"pending": "En attente",
|
|
573
|
+
"working": "En cours",
|
|
574
|
+
"waiting_decision": "Saisie requise",
|
|
575
|
+
"done": "Terminé",
|
|
576
|
+
"failed": "Échoué"
|
|
577
|
+
},
|
|
578
|
+
"approvalStatus": {
|
|
579
|
+
"pending": "En attente",
|
|
580
|
+
"approved": "Approuvé",
|
|
581
|
+
"changes_requested": "Modifications demandées",
|
|
582
|
+
"rejected": "Rejeté"
|
|
583
|
+
}
|
|
584
|
+
},
|
|
585
|
+
"stepDetail": {
|
|
586
|
+
"contents": "Contenu",
|
|
587
|
+
"details": "Détails",
|
|
588
|
+
"approvalRequired": "Approbation requise",
|
|
589
|
+
"decisionRequired": "Décision requise",
|
|
590
|
+
"expandAll": "Développer toutes les sections",
|
|
591
|
+
"collapseAll": "Réduire toutes les sections",
|
|
592
|
+
"copyRawOutput": "Copier la sortie brute",
|
|
593
|
+
"closeEsc": "Fermer (Esc)",
|
|
594
|
+
"companionCapHeading": "{agent} a atteint sa limite de {attempts} tentatives de retravail, toujours en dessous du seuil {threshold}.",
|
|
595
|
+
"companionCapDetail": "Effectuer un tour de retravail automatique supplémentaire, passer à l'étape suivante en acceptant la sortie actuelle, ou arrêter et réinitialiser la tâche pour modifier les entrées et la resoumettre.",
|
|
596
|
+
"infraAttempts": "Tentatives d'infrastructure",
|
|
597
|
+
"hideInfraAttempts": "Masquer les tentatives d'infrastructure",
|
|
598
|
+
"editingConclusions": "Modification des conclusions",
|
|
599
|
+
"editConclusionsPlaceholder": "Modifiez les conclusions de l'agent ; vos modifications sont enregistrées lorsque vous approuvez…",
|
|
600
|
+
"noProseOutput": "Cet agent n'a produit aucune sortie en texte libre.",
|
|
601
|
+
"approveWithCorrections": "Approuver avec corrections",
|
|
602
|
+
"reviewAndApprove": "Réviser et approuver",
|
|
603
|
+
"editHint": "Modifiez les conclusions à gauche ; vos modifications sont enregistrées lorsque vous approuvez.",
|
|
604
|
+
"reviewHint": "Cliquez sur n'importe quel bloc de la sortie pour le commenter, ou laissez un retour global ci-dessous.",
|
|
605
|
+
"editingNotice": "Vous modifiez les conclusions directement. Les modifications manuelles ne peuvent pas être combinées avec des commentaires par bloc. Approuvez pour les enregistrer, ou annulez pour revenir à la revue.",
|
|
606
|
+
"commentingOn": "Commentaire sur",
|
|
607
|
+
"commentPlaceholder": "Laissez un commentaire sur ce bloc…",
|
|
608
|
+
"addComment": "Ajouter un commentaire",
|
|
609
|
+
"commentN": "Commentaire {number}",
|
|
610
|
+
"removeComment": "Supprimer le commentaire",
|
|
611
|
+
"overallFeedback": "Retour global / motif de rejet",
|
|
612
|
+
"overallFeedbackPlaceholder": "Décrivez les modifications que l'agent devrait apporter (facultatif si vous avez laissé des commentaires par bloc)…",
|
|
613
|
+
"approveWithEdits": "Approuver avec ces modifications",
|
|
614
|
+
"cancelEdits": "Annuler les modifications",
|
|
615
|
+
"approveAndProceed": "Approuver et continuer",
|
|
616
|
+
"rejectConfirmPrompt": "Rejeter cette proposition et arrêter complètement l'exécution ?",
|
|
617
|
+
"confirmReject": "Confirmer le rejet",
|
|
618
|
+
"requestChanges": "Demander des modifications",
|
|
619
|
+
"reject": "Rejeter",
|
|
620
|
+
"requestChangesHint": "Demander des modifications relance cette étape avec votre retour et vos commentaires. Rejeter arrête complètement l'exécution."
|
|
621
|
+
},
|
|
622
|
+
"inspector": {
|
|
623
|
+
"frameStatus": {
|
|
624
|
+
"planned": "Aucune tâche",
|
|
625
|
+
"ready": "En ligne",
|
|
626
|
+
"in_progress": "Actif",
|
|
627
|
+
"blocked": "Attention requise",
|
|
628
|
+
"pr_ready": "Actif",
|
|
629
|
+
"done": "En ligne"
|
|
630
|
+
},
|
|
631
|
+
"deleteRecurringPipeline": "Supprimer le pipeline récurrent",
|
|
632
|
+
"deleteTask": "Supprimer la tâche",
|
|
633
|
+
"deleteModule": "Supprimer le module",
|
|
634
|
+
"deleteService": "Supprimer le service",
|
|
635
|
+
"titlePlaceholder": "Titre…",
|
|
636
|
+
"reworkedRequirements": "Exigences retravaillées",
|
|
637
|
+
"agentStepsUseDocument": "Les étapes d'agent utilisent ce document.",
|
|
638
|
+
"open": "Ouvrir",
|
|
639
|
+
"originalDescriptionFrozen": "Description originale (figée)",
|
|
640
|
+
"noDescription": "Aucune description",
|
|
641
|
+
"describeBlock": "Décrivez ce bloc…",
|
|
642
|
+
"taskStartedLocked": "Cette tâche a démarré. Ses détails sont verrouillés.",
|
|
643
|
+
"lastIncorporatedRequirements": "Dernières exigences intégrées",
|
|
644
|
+
"priorDocHint": "Issu de la revue précédente. Utilisez-le comme base : modifiez la description ci-dessus et resoumettez.",
|
|
645
|
+
"bootstrapping": "Initialisation…",
|
|
646
|
+
"importIssue": "Importer une issue",
|
|
647
|
+
"connectTracker": "Connecter un tracker",
|
|
648
|
+
"spawnFromDocument": "Créer à partir d'un document",
|
|
649
|
+
"viewRequirements": "Voir les exigences",
|
|
650
|
+
"reRun": "Relancer",
|
|
651
|
+
"run": "Exécuter",
|
|
652
|
+
"focus": "Cibler"
|
|
653
|
+
}
|
|
654
|
+
},
|
|
655
|
+
"observability": {
|
|
656
|
+
"modelActivity": "Activité du modèle",
|
|
657
|
+
"viewAllCalls": "Voir tous les appels →",
|
|
658
|
+
"providedContext": "Contexte fourni",
|
|
659
|
+
"exportJson": "Exporter en JSON",
|
|
660
|
+
"exportHint": "Télécharger un export JSON de cette exécution adapté aux LLM",
|
|
661
|
+
"closeEsc": "Fermer (Esc)",
|
|
662
|
+
"loadingActivity": "Chargement de l'activité du modèle…",
|
|
663
|
+
"loadingContext": "Chargement du contexte fourni…",
|
|
664
|
+
"noCalls": "Aucun appel de modèle enregistré pour cette exécution.",
|
|
665
|
+
"noContext": "Aucun contexte d'agent stocké pour cette exécution. Il est capturé à chaque dispatch lorsque l'espace de travail a activé 'Stocker le contexte complet de l'agent'.",
|
|
666
|
+
"summary": {
|
|
667
|
+
"calls": "Appels",
|
|
668
|
+
"tokensInOut": "Tokens (entrée / sortie)",
|
|
669
|
+
"transportOverhead": "Surcoût de transport",
|
|
670
|
+
"modelExecution": "Exécution du modèle",
|
|
671
|
+
"truncated": "{count} tronqué | {count} tronqués"
|
|
672
|
+
},
|
|
673
|
+
"metricsBar": {
|
|
674
|
+
"calls": "{count} appel | {count} appels",
|
|
675
|
+
"promptCompletionTokens": "Tokens de prompt / complétion",
|
|
676
|
+
"cachedTokens": "({tokens} en cache)",
|
|
677
|
+
"cachedTokensHint": "Tokens de prompt servis depuis le cache du fournisseur",
|
|
678
|
+
"errors": "{count} erreur | {count} erreurs",
|
|
679
|
+
"warnings": "{count} avertissement | {count} avertissements",
|
|
680
|
+
"outputLimit": "Limite de sortie",
|
|
681
|
+
"truncatedCalls": "{count} appel tronqué à la limite | {count} appels tronqués à la limite",
|
|
682
|
+
"transportVsExecution": "Transport vs exécution",
|
|
683
|
+
"transportOverhead": "Surcoût de transport / proxy",
|
|
684
|
+
"modelExecution": "Exécution du modèle"
|
|
685
|
+
},
|
|
686
|
+
"call": {
|
|
687
|
+
"tokensTitle": "{prompt} tokens de prompt / {completion} de complétion",
|
|
688
|
+
"outputUsedVsLimit": "Sortie utilisée vs limite",
|
|
689
|
+
"transportVsExecution": "Surcoût de transport / exécution du modèle",
|
|
690
|
+
"error": "erreur",
|
|
691
|
+
"ok": "ok",
|
|
692
|
+
"messages": "{count} messages",
|
|
693
|
+
"tools": "{count} outils",
|
|
694
|
+
"streamed": "en streaming",
|
|
695
|
+
"buffered": "en mémoire tampon",
|
|
696
|
+
"maxTokens": "max_tokens {value}",
|
|
697
|
+
"promptCached": "{cached}/{prompt} prompt en cache",
|
|
698
|
+
"total": "total {duration}",
|
|
699
|
+
"prompt": "Prompt",
|
|
700
|
+
"promptPrefixOmitted": "(nouveaux messages uniquement : {count} antérieurs omis)",
|
|
701
|
+
"response": "Réponse",
|
|
702
|
+
"reasoning": "Raisonnement"
|
|
703
|
+
},
|
|
704
|
+
"context": {
|
|
705
|
+
"injectedFiles": "Fichiers de contexte injectés",
|
|
706
|
+
"bestPracticeFragments": "Fragments de bonnes pratiques",
|
|
707
|
+
"filesCount": "{count} fichiers",
|
|
708
|
+
"fragmentsCount": "{count} fragments",
|
|
709
|
+
"systemPrompt": "Prompt système",
|
|
710
|
+
"userPrompt": "Prompt utilisateur",
|
|
711
|
+
"details": "Détails"
|
|
712
|
+
}
|
|
713
|
+
},
|
|
714
|
+
"auth": {
|
|
715
|
+
"gate": {
|
|
716
|
+
"loading": "Chargement…"
|
|
717
|
+
},
|
|
718
|
+
"login": {
|
|
719
|
+
"appTitle": "Architecture Board",
|
|
720
|
+
"subtitle": "Connectez-vous pour continuer.",
|
|
721
|
+
"inviteSubtitle": "Acceptez votre invitation pour continuer.",
|
|
722
|
+
"forgotSubtitle": "Réinitialisez votre mot de passe.",
|
|
723
|
+
"continueWithGithub": "Continuer avec GitHub",
|
|
724
|
+
"continueWithGoogle": "Continuer avec Google",
|
|
725
|
+
"or": "ou",
|
|
726
|
+
"namePlaceholder": "Nom (facultatif)",
|
|
727
|
+
"emailPlaceholder": "E-mail",
|
|
728
|
+
"passwordPlaceholder": "Mot de passe",
|
|
729
|
+
"createAccount": "Créer un compte",
|
|
730
|
+
"signIn": "Se connecter",
|
|
731
|
+
"signUp": "S'inscrire",
|
|
732
|
+
"needAccount": "Besoin d'un compte ? {signUp}",
|
|
733
|
+
"haveAccount": "Vous avez déjà un compte ? {signIn}",
|
|
734
|
+
"forgotPassword": "Mot de passe oublié ?",
|
|
735
|
+
"forgotSent": "Si un compte existe pour cet e-mail, un lien de réinitialisation du mot de passe est en route. Vérifiez votre boîte de réception.",
|
|
736
|
+
"sendResetLink": "Envoyer le lien de réinitialisation",
|
|
737
|
+
"backToSignIn": "Retour à la connexion",
|
|
738
|
+
"signInFailed": "Échec de la connexion. Vérifiez vos informations et réessayez.",
|
|
739
|
+
"genericError": "Une erreur s'est produite. Veuillez réessayer."
|
|
740
|
+
},
|
|
741
|
+
"resetPassword": {
|
|
742
|
+
"title": "Réinitialiser le mot de passe",
|
|
743
|
+
"subtitle": "Choisissez un nouveau mot de passe pour votre compte.",
|
|
744
|
+
"doneBody": "Votre mot de passe a été réinitialisé. Vous pouvez maintenant vous connecter avec votre nouveau mot de passe.",
|
|
745
|
+
"goToSignIn": "Aller à la connexion",
|
|
746
|
+
"missingToken": "Il manque le jeton à ce lien de réinitialisation. Demandez un nouveau lien depuis l'écran de connexion.",
|
|
747
|
+
"backToSignIn": "Retour à la connexion",
|
|
748
|
+
"newPasswordPlaceholder": "Nouveau mot de passe",
|
|
749
|
+
"confirmPasswordPlaceholder": "Confirmer le nouveau mot de passe",
|
|
750
|
+
"submit": "Réinitialiser le mot de passe",
|
|
751
|
+
"errorTooShort": "Le mot de passe doit comporter au moins 8 caractères.",
|
|
752
|
+
"errorMismatch": "Les mots de passe ne correspondent pas.",
|
|
753
|
+
"errorInvalidLink": "Ce lien de réinitialisation du mot de passe est invalide ou a expiré."
|
|
754
|
+
},
|
|
755
|
+
"userMenu": {
|
|
756
|
+
"mySetup": "Ma configuration",
|
|
757
|
+
"signOut": "Se déconnecter"
|
|
758
|
+
}
|
|
759
|
+
},
|
|
760
|
+
"layout": {
|
|
761
|
+
"accountDeployment": {
|
|
762
|
+
"title": "Intégrations du déploiement",
|
|
763
|
+
"intro": "Identifiants partagés par tous les espaces de travail de ce compte, scellés au repos. Les valeurs ne sont jamais affichées après l'enregistrement ; laissez un champ vide pour conserver le secret stocké.",
|
|
764
|
+
"configured": "Configuré",
|
|
765
|
+
"notSet": "Non défini",
|
|
766
|
+
"clear": "Effacer",
|
|
767
|
+
"loadFailed": "Impossible de charger les paramètres du déploiement",
|
|
768
|
+
"slack": {
|
|
769
|
+
"title": "Application Slack (OAuth)",
|
|
770
|
+
"description": "Active le flux OAuth \"Add to Slack\". Sans lui, les espaces de travail peuvent quand même connecter Slack en collant un jeton de bot.",
|
|
771
|
+
"clientId": "ID client",
|
|
772
|
+
"clientSecret": "Secret client",
|
|
773
|
+
"redirectUrl": "URL de redirection",
|
|
774
|
+
"validation": "Saisissez l'id client, le secret et l'URL de redirection",
|
|
775
|
+
"saved": "OAuth Slack enregistré",
|
|
776
|
+
"saveFailed": "Impossible d'enregistrer l'OAuth Slack",
|
|
777
|
+
"cleared": "OAuth Slack effacé",
|
|
778
|
+
"clearFailed": "Impossible d'effacer l'OAuth Slack"
|
|
779
|
+
},
|
|
780
|
+
"web": {
|
|
781
|
+
"title": "Recherche web du conteneur",
|
|
782
|
+
"description": "Le fournisseur de recherche que les agents en conteneur atteignent via le proxy du backend. Définissez une clé Brave (recommandé) ou une URL SearXNG auto-hébergée (avec une clé bearer facultative).",
|
|
783
|
+
"configured": "Configuré ({provider})",
|
|
784
|
+
"braveKey": "Clé d'API Brave",
|
|
785
|
+
"searxngUrl": "URL SearXNG",
|
|
786
|
+
"searxngKey": "Clé SearXNG (facultative)",
|
|
787
|
+
"validation": "Saisissez une clé Brave ou une URL SearXNG",
|
|
788
|
+
"saved": "Clés de recherche web enregistrées",
|
|
789
|
+
"saveFailed": "Impossible d'enregistrer les clés de recherche web",
|
|
790
|
+
"cleared": "Clés de recherche web effacées",
|
|
791
|
+
"clearFailed": "Impossible d'effacer les clés de recherche web"
|
|
792
|
+
}
|
|
793
|
+
},
|
|
794
|
+
"accountFragments": {
|
|
795
|
+
"intro": "Bonnes pratiques partagées par tous les tableaux de ce compte. Chaque tableau en hérite et peut les remplacer ou en ajouter. Les agents qui connaissent le code (coder, reviewer, architect, fixers) intègrent les plus pertinentes dans leur prompt."
|
|
796
|
+
},
|
|
797
|
+
"accountTeam": {
|
|
798
|
+
"roles": {
|
|
799
|
+
"admin": "Administrateur",
|
|
800
|
+
"developer": "Développeur",
|
|
801
|
+
"product": "Produit"
|
|
802
|
+
},
|
|
803
|
+
"org": {
|
|
804
|
+
"ctaTitle": "Invitez des coéquipiers et gérez les rôles",
|
|
805
|
+
"ctaBody": "Les membres, rôles et invitations vivent dans une organisation. Créez-en une pour inviter des coéquipiers et gérer leurs rôles ; vos tableaux personnels restent inchangés.",
|
|
806
|
+
"namePlaceholder": "Acme Inc.",
|
|
807
|
+
"create": "Créer une organisation",
|
|
808
|
+
"created": "Organisation créée"
|
|
809
|
+
},
|
|
810
|
+
"members": {
|
|
811
|
+
"title": "Membres",
|
|
812
|
+
"empty": "Aucun membre pour l'instant."
|
|
813
|
+
},
|
|
814
|
+
"invite": {
|
|
815
|
+
"title": "Inviter un coéquipier",
|
|
816
|
+
"submit": "Inviter",
|
|
817
|
+
"revoke": "Révoquer l'invitation",
|
|
818
|
+
"created": "Invitation créée",
|
|
819
|
+
"createdEmailed": "Un e-mail a été envoyé (ou copiez le lien dans la liste ci-dessous).",
|
|
820
|
+
"createdShareLink": "Partagez le lien d'acceptation avec votre coéquipier.",
|
|
821
|
+
"status": {
|
|
822
|
+
"pending": "En attente",
|
|
823
|
+
"accepted": "Acceptée",
|
|
824
|
+
"revoked": "Révoquée"
|
|
825
|
+
}
|
|
826
|
+
},
|
|
827
|
+
"email": {
|
|
828
|
+
"title": "Expéditeur des e-mails",
|
|
829
|
+
"notEnabled": "L'envoi d'e-mails n'est pas activé sur ce déploiement. Les invitations produisent quand même un lien d'acceptation partageable.",
|
|
830
|
+
"connectedAs": "Connecté via {provider} en tant que {from}",
|
|
831
|
+
"disconnect": "Déconnecter",
|
|
832
|
+
"connect": "Connecter l'expéditeur des e-mails",
|
|
833
|
+
"connected": "Expéditeur des e-mails connecté",
|
|
834
|
+
"fromPlaceholder": "Adresse de l'expéditeur",
|
|
835
|
+
"apiKeyPlaceholder": "Clé d'API du fournisseur",
|
|
836
|
+
"providers": {
|
|
837
|
+
"resend": "Resend",
|
|
838
|
+
"sendgrid": "SendGrid"
|
|
839
|
+
}
|
|
840
|
+
},
|
|
841
|
+
"apiKeys": {
|
|
842
|
+
"title": "Clés d'API du compte"
|
|
843
|
+
},
|
|
844
|
+
"errors": {
|
|
845
|
+
"updateRoles": "Impossible de mettre à jour les rôles",
|
|
846
|
+
"loadSettings": "Impossible de charger les paramètres de l'équipe",
|
|
847
|
+
"createOrg": "Impossible de créer l'organisation",
|
|
848
|
+
"sendInvite": "Impossible d'envoyer l'invitation",
|
|
849
|
+
"revokeInvite": "Impossible de révoquer l'invitation",
|
|
850
|
+
"connectEmail": "Impossible de connecter l'expéditeur des e-mails",
|
|
851
|
+
"disconnectEmail": "Impossible de déconnecter l'expéditeur des e-mails"
|
|
852
|
+
}
|
|
853
|
+
},
|
|
854
|
+
"boardSwitcher": {
|
|
855
|
+
"accountFallback": "Compte",
|
|
856
|
+
"boardFallback": "Tableau",
|
|
857
|
+
"providers": {
|
|
858
|
+
"docker": "Docker (local)",
|
|
859
|
+
"custom": "Personnalisé"
|
|
860
|
+
},
|
|
861
|
+
"account": {
|
|
862
|
+
"newOrg": "Nouvelle organisation…",
|
|
863
|
+
"settings": "Paramètres du compte…",
|
|
864
|
+
"defaultProvider": "Fournisseur cloud par défaut"
|
|
865
|
+
},
|
|
866
|
+
"board": {
|
|
867
|
+
"new": "Nouveau tableau…",
|
|
868
|
+
"rename": "Renommer le tableau…",
|
|
869
|
+
"delete": "Supprimer le tableau"
|
|
870
|
+
},
|
|
871
|
+
"prompt": {
|
|
872
|
+
"create": "Créer",
|
|
873
|
+
"nameLabel": "Nom",
|
|
874
|
+
"descriptionLabel": "Description",
|
|
875
|
+
"descriptionHint": "Facultatif",
|
|
876
|
+
"descriptionPlaceholder": "À quoi sert ce tableau ?",
|
|
877
|
+
"account": {
|
|
878
|
+
"title": "Nouvelle organisation",
|
|
879
|
+
"placeholder": "Acme Inc."
|
|
880
|
+
},
|
|
881
|
+
"board": {
|
|
882
|
+
"title": "Nouveau tableau",
|
|
883
|
+
"placeholder": "Tableau sans titre"
|
|
884
|
+
},
|
|
885
|
+
"rename": {
|
|
886
|
+
"title": "Paramètres du tableau",
|
|
887
|
+
"placeholder": "Nom du tableau"
|
|
888
|
+
}
|
|
889
|
+
},
|
|
890
|
+
"toast": {
|
|
891
|
+
"updateProviderFailed": "Impossible de mettre à jour le fournisseur par défaut",
|
|
892
|
+
"switchAccountFailed": "Impossible de changer de compte",
|
|
893
|
+
"openBoardFailed": "Impossible d'ouvrir le tableau",
|
|
894
|
+
"boardDeleted": "Tableau supprimé",
|
|
895
|
+
"deleteBoardFailed": "Impossible de supprimer le tableau"
|
|
896
|
+
}
|
|
897
|
+
},
|
|
898
|
+
"notifications": {
|
|
899
|
+
"heading": "Nécessite votre attention",
|
|
900
|
+
"overdue": "En retard",
|
|
901
|
+
"openPr": "Ouvrir la PR",
|
|
902
|
+
"dismiss": "Ignorer",
|
|
903
|
+
"action": {
|
|
904
|
+
"merge_review": "Fusionner",
|
|
905
|
+
"pipeline_complete": "Confirmer et fusionner",
|
|
906
|
+
"ci_failed": "Relancer l'exécution",
|
|
907
|
+
"test_failed": "Relancer l'exécution",
|
|
908
|
+
"requirement_review": "Marquer comme lu",
|
|
909
|
+
"clarity_review": "Marquer comme lu",
|
|
910
|
+
"release_regression": "Accuser réception",
|
|
911
|
+
"decision_required": "Marquer comme lu",
|
|
912
|
+
"human_test_ready": "Marquer comme lu",
|
|
913
|
+
"visual_confirmation_ready": "Marquer comme lu",
|
|
914
|
+
"human_review": "Marquer comme lu",
|
|
915
|
+
"followup_pending": "Marquer comme lu",
|
|
916
|
+
"markRead": "Marquer comme lu"
|
|
917
|
+
}
|
|
918
|
+
},
|
|
919
|
+
"aiProvidersBanner": {
|
|
920
|
+
"setup": {
|
|
921
|
+
"title": "Aucun modèle d'IA configuré",
|
|
922
|
+
"body": "Les agents ont besoin d'un modèle pour s'exécuter. L'IA fonctionne immédiatement uniquement sur un déploiement Cloudflare avec Workers AI activé. Sinon, connectez une clé de fournisseur, un abonnement, un proxy ou un exécuteur local pour continuer.",
|
|
923
|
+
"action": "Configurer l'IA"
|
|
924
|
+
},
|
|
925
|
+
"preset": {
|
|
926
|
+
"title": "Le préréglage de modèle par défaut utilise des modèles indisponibles",
|
|
927
|
+
"body": "Les tâches utilisant le préréglage par défaut échoueraient. Modifiez le préréglage ou configurez le fournisseur manquant.",
|
|
928
|
+
"action": "Vérifier le préréglage"
|
|
929
|
+
}
|
|
930
|
+
},
|
|
931
|
+
"githubPatBanner": {
|
|
932
|
+
"title": "PAT GitHub non configuré",
|
|
933
|
+
"body": "Le mode local accède à GitHub avec un jeton d'accès personnel. Sans lui, les étapes d'agent qui clonent, poussent, ouvrent des PR, contrôlent la CI ou fusionnent échoueront.",
|
|
934
|
+
"createToken": "Créer un jeton GitHub (portées présélectionnées)",
|
|
935
|
+
"thenSet": "Définissez ensuite {envVar} et redémarrez."
|
|
936
|
+
},
|
|
937
|
+
"providerConfigBanner": {
|
|
938
|
+
"titleMany": "Les fournisseurs nécessitent une configuration",
|
|
939
|
+
"titleOne": {
|
|
940
|
+
"environment": "Le fournisseur d'environnement nécessite une configuration",
|
|
941
|
+
"runner-pool": "Le pool d'exécuteurs nécessite une configuration"
|
|
942
|
+
},
|
|
943
|
+
"body": "Un fournisseur est connecté pour cette instance mais il manque des réglages obligatoires, il ne peut donc pas encore s'exécuter. Ajoutez les champs obligatoires pour terminer sa connexion.",
|
|
944
|
+
"action": {
|
|
945
|
+
"environment": "Configurer le fournisseur d'environnement",
|
|
946
|
+
"runner-pool": "Configurer le pool d'exécuteurs"
|
|
947
|
+
}
|
|
948
|
+
},
|
|
949
|
+
"spendWarningBanner": {
|
|
950
|
+
"title": "Limite de dépense atteinte, exécution des agents en pause",
|
|
951
|
+
"body": "La dépense en jetons de ce mois a atteint le budget configuré, les pipelines en cours ont donc été mis en pause pour éviter des coûts supplémentaires. L'exécution reprend automatiquement au renouvellement du budget le mois prochain, ou dès que la limite est relevée.",
|
|
952
|
+
"spent": "Dépensé",
|
|
953
|
+
"budget": "Budget",
|
|
954
|
+
"tokens": "Jetons",
|
|
955
|
+
"resume": "Reprendre quand même",
|
|
956
|
+
"resumeHint": "Reprendre continue à générer des dépenses ; cela se mettra de nouveau en pause si vous dépassez encore le budget."
|
|
957
|
+
},
|
|
958
|
+
"personalSetup": {
|
|
959
|
+
"title": "Ma configuration",
|
|
960
|
+
"intro": "Vos connexions personnelles, utilisées pour les exécutions que vous lancez et visibles uniquement par vous.",
|
|
961
|
+
"connected": "Connecté",
|
|
962
|
+
"notConnected": "Non connecté",
|
|
963
|
+
"connectedCount": "aucun connecté | {count} connecté | {count} connectés",
|
|
964
|
+
"sourceControl": {
|
|
965
|
+
"title": "Gestion de versions"
|
|
966
|
+
},
|
|
967
|
+
"githubToken": {
|
|
968
|
+
"label": "Mon jeton GitHub",
|
|
969
|
+
"description": "Un jeton d'accès personnel utilisé pour les exécutions que vous lancez (push, PR, CI, fusion)."
|
|
970
|
+
},
|
|
971
|
+
"models": {
|
|
972
|
+
"title": "Modèles"
|
|
973
|
+
},
|
|
974
|
+
"localRunners": {
|
|
975
|
+
"label": "Mes exécuteurs locaux",
|
|
976
|
+
"description": "Vos exécuteurs de modèles sur votre propre machine (Ollama, LM Studio, vLLM)."
|
|
977
|
+
},
|
|
978
|
+
"subscriptions": {
|
|
979
|
+
"label": "Mes abonnements",
|
|
980
|
+
"description": "Plans à usage individuel que vous déverrouillez avec un mot de passe personnel (Claude, GLM, Codex)."
|
|
981
|
+
}
|
|
982
|
+
},
|
|
983
|
+
"integrationBack": {
|
|
984
|
+
"backToMySetup": "Retour à Ma configuration",
|
|
985
|
+
"backToIntegrations": "Retour aux Intégrations"
|
|
986
|
+
},
|
|
987
|
+
"commandBar": {
|
|
988
|
+
"searchPlaceholder": "Rechercher ou exécuter une commande…",
|
|
989
|
+
"noMatches": "Aucune commande correspondante.",
|
|
990
|
+
"groups": {
|
|
991
|
+
"create": "Créer",
|
|
992
|
+
"repositories": "Dépôts",
|
|
993
|
+
"integrations": "Intégrations",
|
|
994
|
+
"workspace": "Espace de travail",
|
|
995
|
+
"account": "Compte"
|
|
996
|
+
},
|
|
997
|
+
"cmd": {
|
|
998
|
+
"newPipeline": "Créer un pipeline",
|
|
999
|
+
"addFromRepo": "Ajouter un service depuis un dépôt existant",
|
|
1000
|
+
"bootstrapRepo": "Initialiser un nouveau dépôt",
|
|
1001
|
+
"githubManage": "Gérer la connexion GitHub",
|
|
1002
|
+
"githubConnect": "Connecter GitHub",
|
|
1003
|
+
"slackManage": "Gérer les notifications Slack",
|
|
1004
|
+
"slackConnect": "Connecter Slack",
|
|
1005
|
+
"sourceManage": "Gérer {source}",
|
|
1006
|
+
"sourceConnect": "Connecter {source}",
|
|
1007
|
+
"documentImport": "Importer et générer depuis des documents",
|
|
1008
|
+
"taskImport": "Importer des tickets",
|
|
1009
|
+
"fragments": "Bibliothèque de fragments de contexte",
|
|
1010
|
+
"mergeThresholds": "Seuils de fusion",
|
|
1011
|
+
"workspaceSettings": "Paramètres de l'espace de travail",
|
|
1012
|
+
"modelConfiguration": "Configuration des modèles",
|
|
1013
|
+
"serviceFragmentDefaults": "Bonnes pratiques de service par défaut",
|
|
1014
|
+
"accountSettings": "Paramètres du compte",
|
|
1015
|
+
"localModels": "Mes exécuteurs locaux",
|
|
1016
|
+
"sandbox": "Ouvrir le bac à sable"
|
|
1017
|
+
},
|
|
1018
|
+
"keywords": {
|
|
1019
|
+
"newPipeline": "pipeline agents chaîne",
|
|
1020
|
+
"addFromRepo": "github importer existant",
|
|
1021
|
+
"bootstrapRepo": "échafaudage créer architecture de référence",
|
|
1022
|
+
"github": "git dépôts pull requests tickets",
|
|
1023
|
+
"slack": "slack notifications canal mentions",
|
|
1024
|
+
"documentSource": "document source prd rfc",
|
|
1025
|
+
"documentImport": "document importer générer",
|
|
1026
|
+
"taskSource": "tâche source suivi tickets",
|
|
1027
|
+
"taskImport": "tâche importer tickets",
|
|
1028
|
+
"fragments": "prompt fragments bonnes pratiques directives contexte",
|
|
1029
|
+
"mergeThresholds": "fusion politique préréglage fusion automatique ci",
|
|
1030
|
+
"workspaceSettings": "limite tâches en cours par service attente escalade retard notification délai",
|
|
1031
|
+
"modelConfiguration": "modèle llm routage type d'agent préréglage par défaut configuration",
|
|
1032
|
+
"serviceFragmentDefaults": "fragment bonnes pratiques directive service par défaut sensible au code",
|
|
1033
|
+
"accountSettings": "compte équipe membres rôles invitations e-mail clés api fragment bonnes pratiques bibliothèque contexte organisation personnel",
|
|
1034
|
+
"localModels": "modèle local exécuteur ollama lm studio llamacpp vllm endpoint",
|
|
1035
|
+
"sandbox": "bac à sable prompt modèle test expérience juge fixture benchmark évaluer"
|
|
1036
|
+
}
|
|
1037
|
+
},
|
|
1038
|
+
"integrationsHub": {
|
|
1039
|
+
"title": "Intégrations",
|
|
1040
|
+
"intro": "Connectez et gérez les systèmes externes que cet espace de travail peut relier.",
|
|
1041
|
+
"searchPlaceholder": "Rechercher des intégrations…",
|
|
1042
|
+
"noMatches": "Aucune intégration ne correspond à \"{query}\".",
|
|
1043
|
+
"getStarted": {
|
|
1044
|
+
"title": "Pour commencer",
|
|
1045
|
+
"body": "Connectez une source de code et un fournisseur de modèles pour exécuter votre premier pipeline."
|
|
1046
|
+
},
|
|
1047
|
+
"status": {
|
|
1048
|
+
"connected": "Connecté",
|
|
1049
|
+
"keyConnected": "Clé connectée",
|
|
1050
|
+
"notConnected": "Non connecté",
|
|
1051
|
+
"needsAttention": "Nécessite une intervention",
|
|
1052
|
+
"disabled": "Désactivé",
|
|
1053
|
+
"recommended": "Recommandé"
|
|
1054
|
+
},
|
|
1055
|
+
"groups": {
|
|
1056
|
+
"models": "Modèles et fournisseurs",
|
|
1057
|
+
"sourceControl": "Gestion de code source",
|
|
1058
|
+
"communication": "Communication",
|
|
1059
|
+
"documents": "Documents",
|
|
1060
|
+
"taskTrackers": "Outils de suivi des tâches",
|
|
1061
|
+
"observability": "Observabilité",
|
|
1062
|
+
"infrastructure": "Infrastructure",
|
|
1063
|
+
"personal": "Personnel (vous uniquement)"
|
|
1064
|
+
},
|
|
1065
|
+
"items": {
|
|
1066
|
+
"openrouter": {
|
|
1067
|
+
"description": "Une seule passerelle vers plus de 300 modèles. Ajoutez votre clé et activez des modèles au même endroit."
|
|
1068
|
+
},
|
|
1069
|
+
"vendors": {
|
|
1070
|
+
"label": "Fournisseurs et clés",
|
|
1071
|
+
"description": "Abonnements LLM de l'espace de travail et clés API des fournisseurs."
|
|
1072
|
+
},
|
|
1073
|
+
"github": {
|
|
1074
|
+
"description": "Connectez la GitHub App de l'espace de travail, parcourez dépôts, PR et tickets."
|
|
1075
|
+
},
|
|
1076
|
+
"slack": {
|
|
1077
|
+
"description": "Acheminez les notifications vers l'espace Slack de votre équipe."
|
|
1078
|
+
},
|
|
1079
|
+
"documentSource": {
|
|
1080
|
+
"description": "Reliez {source} comme source de documents pour le contexte des exigences."
|
|
1081
|
+
},
|
|
1082
|
+
"documentImport": {
|
|
1083
|
+
"label": "Importer et générer",
|
|
1084
|
+
"description": "Récupérez des documents depuis une source connectée et générez la structure."
|
|
1085
|
+
},
|
|
1086
|
+
"taskSource": {
|
|
1087
|
+
"description": "Reliez {source} pour importer et référencer les tickets du suivi."
|
|
1088
|
+
},
|
|
1089
|
+
"taskImport": {
|
|
1090
|
+
"label": "Importer des tickets",
|
|
1091
|
+
"description": "Récupérez les tickets d'un outil de suivi connecté sur le tableau."
|
|
1092
|
+
},
|
|
1093
|
+
"trackerSettings": {
|
|
1094
|
+
"label": "Paramètres de l'outil de suivi"
|
|
1095
|
+
},
|
|
1096
|
+
"observability": {
|
|
1097
|
+
"label": "Santé après publication",
|
|
1098
|
+
"description": "Surveillez les moniteurs et les SLO après la publication d'une version (Datadog)."
|
|
1099
|
+
},
|
|
1100
|
+
"environment": {
|
|
1101
|
+
"label": "Environnements éphémères",
|
|
1102
|
+
"description": "Là où l'agent Tester s'exécute contre un environnement d'aperçu en direct."
|
|
1103
|
+
},
|
|
1104
|
+
"runnerPool": {
|
|
1105
|
+
"label": "Pool d'exécuteurs auto-hébergé",
|
|
1106
|
+
"description": "Là où les agents de code s'exécutent quand les Cloudflare Containers ne sont pas utilisés."
|
|
1107
|
+
},
|
|
1108
|
+
"localMode": {
|
|
1109
|
+
"label": "Mode local",
|
|
1110
|
+
"description": "Pool de conteneurs à chaud et réutilisation du checkout par dépôt pour l'exécuteur local."
|
|
1111
|
+
},
|
|
1112
|
+
"githubPat": {
|
|
1113
|
+
"label": "Mon jeton GitHub",
|
|
1114
|
+
"description": "Un jeton d'accès personnel utilisé pour les exécutions que vous lancez (pushes, PR, CI, fusion)."
|
|
1115
|
+
},
|
|
1116
|
+
"localRunners": {
|
|
1117
|
+
"label": "Mes exécuteurs locaux",
|
|
1118
|
+
"description": "Vos exécuteurs de modèles sur votre propre machine (Ollama, LM Studio, vLLM…)."
|
|
1119
|
+
}
|
|
1120
|
+
}
|
|
1121
|
+
}
|
|
311
1122
|
}
|
|
312
1123
|
}
|