chore: add missing multi-level editor for approval workflow, rename projects to campaings.

This commit is contained in:
2026-05-01 14:23:37 -04:00
parent 5077f557f4
commit 884ca4b96d
148 changed files with 11567 additions and 1383 deletions

View File

@@ -74,7 +74,7 @@
"myFeedback": "Mon feedback",
"feedbackReview": "Revue feedback",
"channels": "Canaux",
"projects": "Campagnes",
"campaigns": "Campagnes",
"reviewQueue": "File de révision",
"content": "Contenu",
"profile": "Profil",
@@ -210,7 +210,7 @@
"title": "Contexte",
"workspace": "Espace",
"client": "Client",
"project": "Campagne",
"campaign": "Campagne",
"contentItem": "Élément de contenu"
},
"activity": {
@@ -253,11 +253,11 @@
"sidebar": {
"allClients": "Tous les clients",
"allChannels": "Tous les canaux",
"allProjects": "Toutes les campagnes",
"allCampaigns": "Toutes les campagnes",
"allReviewItems": "File de révision complète",
"noClients": "Aucun client pour le moment.",
"noChannels": "Aucun canal pour le moment.",
"noProjects": "Aucune campagne pour le moment.",
"noCampaigns": "Aucune campagne pour le moment.",
"noReviewItems": "Aucun élément à réviser pour le moment."
},
"settings": {
@@ -281,12 +281,12 @@
"deliveryRisks": "Ce qui peut glisser",
"overdueItems": "Éléments en retard",
"approvalBlockers": "En attente d'approbation ou de révision",
"unscheduledProjects": "Campagnes sans contenu planifié",
"unscheduledCampaigns": "Campagnes sans contenu planifié",
"reviewQueueSnapshot": "Aperçu de la file de révision",
"emptyUpcoming": "Aucun contenu planifié à venir.",
"emptyOverdue": "Rien n'est en retard pour le moment.",
"emptyApproval": "Aucun blocage d'approbation pour le moment.",
"emptyProjects": "Chaque campagne a au moins un élément de contenu planifié.",
"emptyCampaigns": "Chaque campagne a au moins un élément de contenu planifié.",
"emptyReviewQueue": "Aucun élément actif dans la file de révision.",
"previousDay": "Jour précédent",
"nextDay": "Jour suivant",
@@ -295,20 +295,20 @@
"week": "Semaine",
"campaignDeadline": "Échéance de campagne",
"emptyPeriod": "Aucun élément planifié.",
"daySummary": "{content} contenus · {projects} échéances de campagne",
"daySummary": "{content} contenus · {campaigns} échéances de campagne",
"moreItems": "+{count} autres",
"emptyDayAgenda": "Aucun contenu n'est planifié pour cette journée.",
"projectProgress": "{scheduled} planifiés · {approved} approuvés",
"campaignProgress": "{scheduled} planifiés · {approved} approuvés",
"missingSchedule": "Contenu à planifier",
"noDueDate": "Aucune échéance",
"labels": {
"unassignedProject": "Campagne non attribuée"
"unassignedCampaign": "Campagne non attribuée"
},
"readiness": {
"building": "En production",
"approval": "En attente d'approbation",
"rework": "Révision requise",
"ready": "Prêt à publier",
"ready": "Approuvé",
"published": "Publié",
"blocked": "Bloqué",
"archived": "Archivé",
@@ -339,13 +339,13 @@
"emptyRisks": "Aucun risque de livraison multi-espace pour le moment.",
"emptyActivity": "Aucune activité récente du workflow.",
"labels": {
"projects": "campagnes",
"campaigns": "campagnes",
"upcoming": "à venir",
"blocked": "bloqués"
},
"stats": {
"workspaces": "Espaces",
"projects": "Campagnes",
"campaigns": "Campagnes",
"upcoming": "Éléments à venir",
"blockers": "Éléments à risque"
}
@@ -372,11 +372,11 @@
"primaryContactPortraitUrl": "URL du portrait du contact principal"
}
},
"projects": {
"campaigns": {
"eyebrow": "Planification des campagnes",
"title": "Campagnes",
"description": "Campagnes regroupées dans l'espace actif par statut, plage de dates et notes de planification.",
"newProject": "Nouvelle campagne",
"newCampaign": "Nouvelle campagne",
"createTitle": "Créer une campagne",
"loading": "Chargement des campagnes...",
"empty": "Aucune campagne n'est disponible pour l'espace actif.",
@@ -444,8 +444,8 @@
"title": "Titre",
"client": "Client",
"selectClient": "Sélectionner un client",
"project": "Campagne",
"selectProject": "Sélectionner une campagne",
"campaign": "Campagne",
"selectCampaign": "Sélectionner une campagne",
"dueDate": "Date d'échéance",
"publicationTargets": "Cibles de publication",
"publicationTargetsPlaceholder": "Instagram Reel, TikTok",
@@ -559,35 +559,83 @@
},
"approvals": {
"flowTitle": "Flux d'approbation",
"flowDescription": "Personnalisez le passage du contenu par la révision interne, la révision client et la mise en publication pour cet espace.",
"flowDescription": "Configurez le fonctionnement de l'approbation du contenu dans cet espace.",
"previewTitle": "Aperçu du flux",
"previewDescription": "Voici la séquence que l'espace utilisera selon la configuration actuelle.",
"saved": "Le flux d'approbation a été enregistré pour cet espace dans ce navigateur.",
"saved": "Flux d'approbation enregistré.",
"saveAction": "Enregistrer le flux",
"fields": {
"requireInternalReview": "Exiger une révision interne",
"internalApproversRequired": "Approbateurs internes requis",
"requireClientReview": "Exiger une révision client",
"clientApproversRequired": "Approbateurs client requis",
"defaultReviewerRole": "Rôle du réviseur par défaut",
"publishBehaviour": "Après l'approbation finale"
"approvalMode": "Mode d'approbation",
"schedulePostsAutomaticallyOnApproval": "Planifier automatiquement après approbation",
"lockContentAfterApproval": "Verrouiller le contenu après approbation",
"sendAutomaticApprovalReminders": "Envoyer des rappels automatiques"
},
"fieldHelp": {
"requireInternalReview": "Le contenu doit être approuvé en interne avant de passer à la révision client.",
"requireClientReview": "Le contenu doit encore passer par une approbation client avant la publication."
"schedulePostsAutomaticallyOnApproval": "L'approbation finale passe le contenu à Planifié quand une date de publication est déjà prévue.",
"lockContentAfterApproval": "Le contenu contrôlé par l'approbation est verrouillé après l'approbation finale. Les champs de planification restent modifiables.",
"sendAutomaticApprovalReminders": "Les approbateurs courants reçoivent des rappels quotidiens tant qu'une étape est en attente."
},
"publishBehaviour": {
"manual": "Marquer prêt à publier",
"auto": "Passer automatiquement à prêt"
"modes": {
"none": "Aucun",
"optional": "Optionnel",
"required": "Requis",
"multiLevel": "Multi-niveaux"
},
"modeHelp": {
"none": "Le contenu saute le workflow d'approbation et peut devenir Approuvé sans action d'approbation.",
"optional": "Un workflow d'approbation en une étape est disponible, mais il ne bloque pas la publication.",
"required": "Au moins une approbation est requise avant que le contenu devienne Approuvé ou Planifié.",
"multiLevel": "L'approbation utilise des étapes ordonnées avec des approbateurs ciblés pour chaque étape."
},
"editor": {
"title": "Étapes multi-niveaux",
"description": "Définissez qui approuve chaque étape ordonnée avant l'approbation finale du contenu.",
"addStep": "Ajouter une étape",
"empty": "Ajoutez au moins une étape d'approbation avant d'enregistrer le mode multi-niveaux.",
"unnamedStep": "Étape sans nom",
"moveUp": "Monter l'étape",
"moveDown": "Descendre l'étape",
"removeStep": "Supprimer l'étape",
"selectMember": "Sélectionner un membre",
"selectMembers": "Sélectionnez un ou plusieurs membres. Maintenez Ctrl ou Commande pour une sélection multiple.",
"defaultStepName": "Étape d'approbation {number}",
"stepNumber": "Étape {number}",
"fields": {
"name": "Nom affiché",
"targetType": "Type de cible",
"targetValue": "Cible",
"requiredApproverCount": "Approbateurs requis"
},
"targetTypes": {
"role": "Rôle",
"membership": "Appartenance",
"member": "Membre"
},
"memberships": {
"team": "Équipe",
"client": "Client"
},
"errors": {
"atLeastOneStep": "L'approbation multi-niveaux requiert au moins une étape.",
"fixInvalidSteps": "Corrigez les étapes d'approbation indiquées avant d'enregistrer.",
"nameRequired": "Saisissez un nom d'étape.",
"targetRequired": "Choisissez qui peut approuver cette étape.",
"notEnoughMembers": "Sélectionnez au moins autant de membres que d'approbateurs requis.",
"requiredApproverCount": "Saisissez au moins 1 approbateur requis."
}
},
"steps": {
"internal": "Révision interne",
"client": "Révision client",
"none": "Approbation ignorée",
"approval": "Approbation",
"publish": "Passage à la publication"
},
"stepDetail": {
"none": "Aucun workflow d'approbation n'est créé pour le contenu de cet espace.",
"optional": "L'approbation peut être recueillie, mais elle n'est pas requise avant la publication.",
"approverCount": "{count} approbateur(s) requis",
"autoPublish": "Le contenu passe automatiquement à prêt après l'approbation finale.",
"manualPublish": "Le contenu reste dans une étape manuelle prêt à publier après l'approbation finale."
"multiLevelTarget": "{count} approbateur(s) de {target}",
"autoSchedule": "Le contenu approuvé avec une date de publication prévue passe à Planifié.",
"manualSchedule": "Le contenu approuvé reste Approuvé jusqu'à sa planification."
}
}
},