feat: pivot to social media workflow app
This commit is contained in:
@@ -33,9 +33,437 @@
|
||||
"x": "X (Twitter)",
|
||||
"youtube": "YouTube",
|
||||
"website": "Website",
|
||||
"common": {
|
||||
"cancel": "Cancel",
|
||||
"creating": "Creating..."
|
||||
},
|
||||
"workspaceSelector": {
|
||||
"createAction": "Add workspace"
|
||||
},
|
||||
"workspaceCreate": {
|
||||
"eyebrow": "Workspace",
|
||||
"title": "Create a new workspace",
|
||||
"description": "Set up a new workspace with its own slug, timezone, members, workflow, and connectors.",
|
||||
"previewTitle": "Workspace URL",
|
||||
"previewDescription": "The slug becomes the stable identifier used for the workspace.",
|
||||
"formTitle": "Workspace details",
|
||||
"formDescription": "Start with the core fields now. Members, workflow, and connectors can be configured right after creation.",
|
||||
"createAction": "Create workspace",
|
||||
"slugHint": "Workspace slug preview: {slug}",
|
||||
"fields": {
|
||||
"name": "Workspace name",
|
||||
"namePlaceholder": "Northwind Studio",
|
||||
"slug": "Workspace slug",
|
||||
"slugPlaceholder": "northwind-studio",
|
||||
"timeZone": "Time zone"
|
||||
},
|
||||
"errors": {
|
||||
"required": "All workspace fields are required.",
|
||||
"createFailed": "The workspace could not be created."
|
||||
}
|
||||
},
|
||||
"nav": {
|
||||
"brandCaption": "Approval workflow",
|
||||
"workspace": "Workspace",
|
||||
"notifications": "Notifications",
|
||||
"dashboard": "Dashboard",
|
||||
"overview": "Overview",
|
||||
"workspacePlan": "Content",
|
||||
"mediaLibrary": "Media Library",
|
||||
"channels": "Channels",
|
||||
"projects": "Campaigns",
|
||||
"reviewQueue": "Review Queue",
|
||||
"content": "Content",
|
||||
"profile": "Profile",
|
||||
"signIn": "Sign in",
|
||||
"settings": "Settings",
|
||||
"language": "Language",
|
||||
"signOut": "Sign out",
|
||||
"noWorkspace": "No workspace"
|
||||
},
|
||||
"notifications": {
|
||||
"title": "Notifications",
|
||||
"unread": "unread",
|
||||
"loading": "Loading notifications...",
|
||||
"empty": "No workflow notifications yet.",
|
||||
"events": {
|
||||
"approvalRequested": "Approval requested",
|
||||
"approvalDecisionRecorded": "Approval decision recorded",
|
||||
"commentCreated": "Comment added",
|
||||
"commentResolved": "Comment resolved",
|
||||
"contentCreated": "Content item created",
|
||||
"revisionCreated": "Revision created",
|
||||
"statusUpdated": "Status updated",
|
||||
"assetLinked": "Asset linked",
|
||||
"assetRevisionCreated": "Asset revision created"
|
||||
}
|
||||
},
|
||||
"sidebar": {
|
||||
"allClients": "All clients",
|
||||
"allChannels": "All channels",
|
||||
"allProjects": "All campaigns",
|
||||
"allReviewItems": "Full review queue",
|
||||
"noClients": "No clients yet.",
|
||||
"noChannels": "No channels yet.",
|
||||
"noProjects": "No campaigns yet.",
|
||||
"noReviewItems": "No review items right now."
|
||||
},
|
||||
"settings": {
|
||||
"eyebrow": "Settings",
|
||||
"title": "Account settings",
|
||||
"userInformation": "User information",
|
||||
"workspaces": "Workspaces",
|
||||
"integrations": "Integrations"
|
||||
},
|
||||
"dashboard": {
|
||||
"eyebrow": "Workspace schedule",
|
||||
"title": "Schedule",
|
||||
"description": "See what is scheduled for a given day and review the posting agenda in order.",
|
||||
"workspaceLabel": "Active workspace",
|
||||
"loading": "Loading workspace data...",
|
||||
"calendarKicker": "Daily agenda",
|
||||
"executionKicker": "Next up",
|
||||
"riskKicker": "Delivery risk",
|
||||
"reviewKicker": "Review pulse",
|
||||
"upcomingContent": "Upcoming content",
|
||||
"deliveryRisks": "What can slip",
|
||||
"overdueItems": "Overdue items",
|
||||
"approvalBlockers": "Awaiting approval or revisions",
|
||||
"unscheduledProjects": "Campaigns without scheduled content",
|
||||
"reviewQueueSnapshot": "Review queue snapshot",
|
||||
"emptyUpcoming": "No upcoming scheduled content.",
|
||||
"emptyOverdue": "Nothing overdue right now.",
|
||||
"emptyApproval": "No approval blockers at the moment.",
|
||||
"emptyProjects": "Every campaign has at least one scheduled content item.",
|
||||
"emptyReviewQueue": "No active review queue items.",
|
||||
"previousDay": "Previous day",
|
||||
"nextDay": "Next day",
|
||||
"today": "Today",
|
||||
"month": "Month",
|
||||
"week": "Week",
|
||||
"campaignDeadline": "Campaign deadline",
|
||||
"emptyPeriod": "No scheduled items.",
|
||||
"daySummary": "{content} content items · {projects} campaign deadlines",
|
||||
"moreItems": "+{count} more",
|
||||
"emptyDayAgenda": "No content is scheduled for this day.",
|
||||
"projectProgress": "{scheduled} scheduled · {approved} approved",
|
||||
"missingSchedule": "Needs content scheduled",
|
||||
"noDueDate": "No due date",
|
||||
"labels": {
|
||||
"unassignedProject": "Unassigned campaign"
|
||||
},
|
||||
"readiness": {
|
||||
"building": "In production",
|
||||
"approval": "Awaiting approval",
|
||||
"rework": "Needs revision",
|
||||
"ready": "Ready to publish",
|
||||
"published": "Published",
|
||||
"blocked": "Blocked",
|
||||
"archived": "Archived",
|
||||
"scheduled": "Scheduled",
|
||||
"missing": "No content scheduled"
|
||||
},
|
||||
"stats": {
|
||||
"scheduledThisDay": "Scheduled this day",
|
||||
"overdue": "Overdue",
|
||||
"awaitingApproval": "Awaiting approval",
|
||||
"readyToShip": "Ready to ship"
|
||||
}
|
||||
},
|
||||
"overview": {
|
||||
"eyebrow": "Portfolio overview",
|
||||
"title": "Cross-workspace timeline",
|
||||
"description": "See upcoming deliveries, risks, and activity across every workspace you can access.",
|
||||
"loading": "Loading overview data...",
|
||||
"workspacesKicker": "Access scope",
|
||||
"workspaceRollup": "Workspace rollup",
|
||||
"timelineKicker": "Upcoming",
|
||||
"upcomingTitle": "Scheduled across workspaces",
|
||||
"riskKicker": "Watch list",
|
||||
"risksTitle": "Items already at risk",
|
||||
"activityKicker": "Recent activity",
|
||||
"activityTitle": "Latest workflow events",
|
||||
"emptyUpcoming": "No upcoming scheduled items across your workspaces.",
|
||||
"emptyRisks": "No cross-workspace delivery risks right now.",
|
||||
"emptyActivity": "No recent workflow activity yet.",
|
||||
"labels": {
|
||||
"projects": "campaigns",
|
||||
"upcoming": "upcoming",
|
||||
"blocked": "blocked"
|
||||
},
|
||||
"stats": {
|
||||
"workspaces": "Workspaces",
|
||||
"projects": "Campaigns",
|
||||
"upcoming": "Upcoming items",
|
||||
"blockers": "At-risk items"
|
||||
}
|
||||
},
|
||||
"clients": {
|
||||
"eyebrow": "Client management",
|
||||
"title": "Clients",
|
||||
"description": "Client accounts, brand identity, and primary approval contacts.",
|
||||
"newClient": "New client",
|
||||
"createTitle": "Create client",
|
||||
"loading": "Loading clients...",
|
||||
"empty": "No clients are available for the active workspace.",
|
||||
"noPrimaryContact": "No primary contact set",
|
||||
"noPrimaryContactEmail": "No primary contact email set",
|
||||
"errors": {
|
||||
"nameRequired": "Client name is required.",
|
||||
"createFailed": "The client could not be created."
|
||||
},
|
||||
"fields": {
|
||||
"name": "Client name",
|
||||
"portraitUrl": "Client logo or portrait URL",
|
||||
"primaryContactName": "Primary contact name",
|
||||
"primaryContactEmail": "Primary contact email",
|
||||
"primaryContactPortraitUrl": "Primary contact portrait URL"
|
||||
}
|
||||
},
|
||||
"projects": {
|
||||
"eyebrow": "Campaign planning",
|
||||
"title": "Campaigns",
|
||||
"description": "Campaigns grouped inside the active workspace by status, date range, and planning notes.",
|
||||
"newProject": "New campaign",
|
||||
"createTitle": "Create campaign",
|
||||
"loading": "Loading campaigns...",
|
||||
"empty": "No campaigns are available for the active workspace.",
|
||||
"unknownClient": "Unknown client",
|
||||
"noDateRange": "No date range",
|
||||
"errors": {
|
||||
"required": "Campaign name and date range are required.",
|
||||
"invalidDateRange": "The end date must be on or after the start date.",
|
||||
"workspaceAccountRequired": "This workspace needs an operational account before campaigns can be created.",
|
||||
"createFailed": "The campaign could not be created."
|
||||
},
|
||||
"fields": {
|
||||
"client": "Client",
|
||||
"selectClient": "Select a client",
|
||||
"startDate": "Start date",
|
||||
"endDate": "End date",
|
||||
"name": "Campaign name",
|
||||
"description": "Description",
|
||||
"notes": "Notes"
|
||||
}
|
||||
},
|
||||
"channels": {
|
||||
"title": "Channels",
|
||||
"description": "Add channels to the workspace.",
|
||||
"createTitle": "Create channel",
|
||||
"empty": "No channels are available for the active workspace yet.",
|
||||
"emptyAction": "Add a channel for {network}",
|
||||
"nextDue": "Next due",
|
||||
"noScheduled": "Nothing scheduled",
|
||||
"fields": {
|
||||
"name": "Channel name",
|
||||
"network": "Network"
|
||||
},
|
||||
"metrics": {
|
||||
"scheduled": "Scheduled",
|
||||
"ready": "Ready",
|
||||
"blocked": "Blocked"
|
||||
},
|
||||
"errors": {
|
||||
"createFailed": "The channel could not be created."
|
||||
}
|
||||
},
|
||||
"reviewQueue": {
|
||||
"eyebrow": "Review workflow",
|
||||
"title": "Review queue",
|
||||
"description": "Pending approvals, revisions, and change requests for the active workspace.",
|
||||
"empty": "No review items are available for the active workspace."
|
||||
},
|
||||
"contentItems": {
|
||||
"eyebrow": "Content workflow",
|
||||
"title": "Content items",
|
||||
"description": "Reviewable units with assets, copy, and approval status inside the active workspace.",
|
||||
"newItem": "New content item",
|
||||
"createTitle": "Create content item",
|
||||
"loading": "Loading content items...",
|
||||
"empty": "No content items are available for the active workspace.",
|
||||
"noDueDate": "No due date",
|
||||
"assetsHelper": "Google Drive assets are now linked from the content item detail page after creation.",
|
||||
"errors": {
|
||||
"required": "Title, campaign, message, and targets are required.",
|
||||
"workspaceAccountRequired": "This workspace needs an operational account before content can be created.",
|
||||
"createFailed": "The content item could not be created."
|
||||
},
|
||||
"fields": {
|
||||
"title": "Title",
|
||||
"client": "Client",
|
||||
"selectClient": "Select a client",
|
||||
"project": "Campaign",
|
||||
"selectProject": "Select a campaign",
|
||||
"dueDate": "Due date",
|
||||
"publicationTargets": "Publication targets",
|
||||
"publicationTargetsPlaceholder": "Instagram Reel, TikTok",
|
||||
"publicationMessage": "Publication message",
|
||||
"hashtags": "Hashtags",
|
||||
"hashtagsPlaceholder": "#launch #brand #campaign",
|
||||
"assets": "Assets"
|
||||
}
|
||||
},
|
||||
"userSettings": {
|
||||
"eyebrow": "User information",
|
||||
"title": "Profile and identity",
|
||||
"description": "Manage the portrait and account details shown inside the workspace.",
|
||||
"updatePortrait": "Update portrait",
|
||||
"accountDetails": "Account details",
|
||||
"accountDetailsDescription": "Additional account editing fields can be added here next.",
|
||||
"alias": "Alias",
|
||||
"fullName": "Full name",
|
||||
"email": "Email",
|
||||
"noEmail": "No email set",
|
||||
"cropperTitle": "Update user portrait",
|
||||
"savePortrait": "Save portrait",
|
||||
"choosePortrait": "Choose portrait"
|
||||
},
|
||||
"workspaceSettings": {
|
||||
"eyebrow": "Settings",
|
||||
"title": "Workspace settings",
|
||||
"description": "Configure the current workspace across general details, members, workflow, and connectors.",
|
||||
"currentWorkspace": "Current workspace",
|
||||
"noWorkspaceSelected": "No workspace selected",
|
||||
"activeWorkspace": "Active workspace",
|
||||
"contextNote": "These settings apply to the current workspace only.",
|
||||
"inviteTitle": "Invite workspace members",
|
||||
"inviteDescription": "Invite clients, subcontractors, or teammates into the active workspace.",
|
||||
"inviteEmpty": "No pending invites for this workspace yet.",
|
||||
"sendInvite": "Send invite",
|
||||
"reset": "Reset",
|
||||
"errors": {
|
||||
"required": "All workspace fields are required.",
|
||||
"createFailed": "The workspace could not be created.",
|
||||
"inviteRequired": "Email and role are required to invite a member.",
|
||||
"inviteFailed": "The workspace invite could not be created."
|
||||
},
|
||||
"fields": {
|
||||
"name": "Workspace name",
|
||||
"slug": "Workspace slug",
|
||||
"timeZone": "Time zone",
|
||||
"memberEmail": "Member email",
|
||||
"memberRole": "Role"
|
||||
},
|
||||
"roles": {
|
||||
"administrator": "Administrator",
|
||||
"manager": "Manager",
|
||||
"client": "Client reviewer",
|
||||
"provider": "Subcontractor",
|
||||
"workspaceMember": "Workspace member"
|
||||
},
|
||||
"summary": {
|
||||
"name": "Name",
|
||||
"slug": "Slug",
|
||||
"timeZone": "Time zone",
|
||||
"created": "Created"
|
||||
},
|
||||
"tabs": {
|
||||
"general": "General",
|
||||
"members": "Members",
|
||||
"workflow": "Workflow",
|
||||
"connectors": "Connectors"
|
||||
},
|
||||
"members": {
|
||||
"inviteTitle": "Invite",
|
||||
"activeTitle": "Members",
|
||||
"activeDescription": "See everyone who currently belongs to the active workspace.",
|
||||
"activeEmpty": "No members found for this workspace.",
|
||||
"pendingTitle": "Pending invitations",
|
||||
"pendingDescription": "Track who has been invited into the active workspace."
|
||||
},
|
||||
"connectors": {
|
||||
"title": "Connectors",
|
||||
"description": "Manage workspace-level connectors that feed operational features like the media library.",
|
||||
"openMediaLibrary": "Open media library",
|
||||
"googleDrive": {
|
||||
"title": "Google Drive",
|
||||
"description": "This connector should power the workspace media sync for images, videos, and other shared files.",
|
||||
"status": "Pending setup"
|
||||
}
|
||||
},
|
||||
"general": {
|
||||
"summaryTitle": "Workspace summary",
|
||||
"summaryDescription": "Reference details for the workspace currently in context."
|
||||
},
|
||||
"approvals": {
|
||||
"flowTitle": "Approval flow",
|
||||
"flowDescription": "Personalize how content moves through internal review, client review, and publishing for this workspace.",
|
||||
"previewTitle": "Flow preview",
|
||||
"previewDescription": "This is the sequence the workspace will use based on the current configuration.",
|
||||
"saved": "Approval flow saved for this workspace in this browser.",
|
||||
"fields": {
|
||||
"requireInternalReview": "Require internal review",
|
||||
"internalApproversRequired": "Internal approvers required",
|
||||
"requireClientReview": "Require client review",
|
||||
"clientApproversRequired": "Client approvers required",
|
||||
"defaultReviewerRole": "Default reviewer role",
|
||||
"publishBehaviour": "After final approval"
|
||||
},
|
||||
"fieldHelp": {
|
||||
"requireInternalReview": "Content must be approved internally before client review can begin.",
|
||||
"requireClientReview": "Content must still pass through client approval before publication."
|
||||
},
|
||||
"publishBehaviour": {
|
||||
"manual": "Mark ready to publish",
|
||||
"auto": "Auto-advance to ready"
|
||||
},
|
||||
"steps": {
|
||||
"internal": "Internal review",
|
||||
"client": "Client review",
|
||||
"publish": "Publishing handoff"
|
||||
},
|
||||
"stepDetail": {
|
||||
"approverCount": "{count} approver(s) required",
|
||||
"autoPublish": "Content moves to ready automatically after the final approval.",
|
||||
"manualPublish": "Content stays in a manual ready-to-publish handoff after the final approval."
|
||||
}
|
||||
}
|
||||
},
|
||||
"integrations": {
|
||||
"eyebrow": "Integrations",
|
||||
"title": "Google Drive and API keys",
|
||||
"description": "This is where workspace-level integrations and credential configuration should live.",
|
||||
"statusLabel": "Status",
|
||||
"pendingTitle": "Configuration UI pending",
|
||||
"googleDrive": {
|
||||
"title": "Google Drive",
|
||||
"description": "Configure the workspace connection used for asset linking and revision intake.",
|
||||
"nextStep": "Next step: add stored workspace integration settings and connect them to the asset-link flow."
|
||||
},
|
||||
"apiKeys": {
|
||||
"title": "API keys",
|
||||
"description": "Workspace-scoped secrets and external service credentials should be managed here.",
|
||||
"nextStep": "Next step: add secure backend persistence and masked key management."
|
||||
}
|
||||
},
|
||||
"mediaLibrary": {
|
||||
"eyebrow": "Media library",
|
||||
"title": "Workspace media",
|
||||
"description": "Manage the shared image and video library that should sync with Google Drive for this workspace.",
|
||||
"syncCard": {
|
||||
"title": "Google Drive sync",
|
||||
"description": "Use this area to connect the workspace drive, pull approved media in, and keep the library aligned with external folders."
|
||||
},
|
||||
"mediaTypesTitle": "Supported media",
|
||||
"mediaTypesDescription": "The library should become the single place to browse visual assets before they are linked into content work.",
|
||||
"mediaTypes": {
|
||||
"images": "Images, graphics, and brand visuals",
|
||||
"videos": "Videos, reels, and motion exports"
|
||||
},
|
||||
"workflowTitle": "Planned workflow",
|
||||
"workflowDescription": "This page is the intended home for the Google Drive sync flow we discussed.",
|
||||
"workflow": {
|
||||
"connectDrive": "Connect the workspace Google Drive source.",
|
||||
"syncAssets": "Sync image and video assets into the internal library.",
|
||||
"organizeLibrary": "Review, tag, and reuse media from one workspace-level place."
|
||||
},
|
||||
"statusLabel": "Status",
|
||||
"pendingTitle": "Management UI pending",
|
||||
"pendingDescription": "The navigation and page entry point are in place. Next step is wiring actual Drive sync, listing, filters, and asset actions."
|
||||
},
|
||||
"errors": {
|
||||
"unexpected": "An unexpected error occurred",
|
||||
"imageLoad": "Error loading image",
|
||||
"imageUpload": "Error uploading image"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,9 +33,437 @@
|
||||
"x": "X (Twitter)",
|
||||
"youtube": "YouTube",
|
||||
"website": "Site web",
|
||||
"common": {
|
||||
"cancel": "Annuler",
|
||||
"creating": "Création..."
|
||||
},
|
||||
"workspaceSelector": {
|
||||
"createAction": "Ajouter un espace"
|
||||
},
|
||||
"workspaceCreate": {
|
||||
"eyebrow": "Espace",
|
||||
"title": "Creer un nouvel espace",
|
||||
"description": "Configurez un nouvel espace avec son slug, son fuseau horaire, ses membres, son workflow et ses connecteurs.",
|
||||
"previewTitle": "URL de l'espace",
|
||||
"previewDescription": "Le slug devient l'identifiant stable utilise pour l'espace.",
|
||||
"formTitle": "Details de l'espace",
|
||||
"formDescription": "Commencez par les champs essentiels. Les membres, le workflow et les connecteurs peuvent etre configures juste apres la creation.",
|
||||
"createAction": "Creer l'espace",
|
||||
"slugHint": "Apercu du slug : {slug}",
|
||||
"fields": {
|
||||
"name": "Nom de l'espace",
|
||||
"namePlaceholder": "Northwind Studio",
|
||||
"slug": "Slug de l'espace",
|
||||
"slugPlaceholder": "northwind-studio",
|
||||
"timeZone": "Fuseau horaire"
|
||||
},
|
||||
"errors": {
|
||||
"required": "Tous les champs de l'espace sont requis.",
|
||||
"createFailed": "L'espace n'a pas pu etre cree."
|
||||
}
|
||||
},
|
||||
"nav": {
|
||||
"brandCaption": "Flux d'approbation",
|
||||
"workspace": "Espace de travail",
|
||||
"notifications": "Notifications",
|
||||
"dashboard": "Tableau de bord",
|
||||
"overview": "Vue globale",
|
||||
"workspacePlan": "Contenu",
|
||||
"mediaLibrary": "Bibliotheque media",
|
||||
"channels": "Canaux",
|
||||
"projects": "Campagnes",
|
||||
"reviewQueue": "File de révision",
|
||||
"content": "Contenu",
|
||||
"profile": "Profil",
|
||||
"signIn": "Se connecter",
|
||||
"settings": "Paramètres",
|
||||
"language": "Langue",
|
||||
"signOut": "Se déconnecter",
|
||||
"noWorkspace": "Aucun espace"
|
||||
},
|
||||
"notifications": {
|
||||
"title": "Notifications",
|
||||
"unread": "non lues",
|
||||
"loading": "Chargement des notifications...",
|
||||
"empty": "Aucune notification de workflow pour le moment.",
|
||||
"events": {
|
||||
"approvalRequested": "Approbation demandée",
|
||||
"approvalDecisionRecorded": "Décision d'approbation enregistrée",
|
||||
"commentCreated": "Commentaire ajouté",
|
||||
"commentResolved": "Commentaire résolu",
|
||||
"contentCreated": "Élément de contenu créé",
|
||||
"revisionCreated": "Révision créée",
|
||||
"statusUpdated": "Statut mis à jour",
|
||||
"assetLinked": "Ressource liée",
|
||||
"assetRevisionCreated": "Révision de ressource créée"
|
||||
}
|
||||
},
|
||||
"sidebar": {
|
||||
"allClients": "Tous les clients",
|
||||
"allChannels": "Tous les canaux",
|
||||
"allProjects": "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.",
|
||||
"noReviewItems": "Aucun élément à réviser pour le moment."
|
||||
},
|
||||
"settings": {
|
||||
"eyebrow": "Paramètres",
|
||||
"title": "Paramètres du compte",
|
||||
"userInformation": "Informations utilisateur",
|
||||
"workspaces": "Espaces de travail",
|
||||
"integrations": "Intégrations"
|
||||
},
|
||||
"dashboard": {
|
||||
"eyebrow": "Calendrier de l'espace",
|
||||
"title": "Calendrier",
|
||||
"description": "Voyez ce qui est prévu pour une journée donnée et consultez l'agenda des publications dans l'ordre.",
|
||||
"workspaceLabel": "Espace actif",
|
||||
"loading": "Chargement des données de l'espace...",
|
||||
"calendarKicker": "Agenda du jour",
|
||||
"executionKicker": "À venir",
|
||||
"riskKicker": "Risque de livraison",
|
||||
"reviewKicker": "État des révisions",
|
||||
"upcomingContent": "Contenu à venir",
|
||||
"deliveryRisks": "Ce qui peut glisser",
|
||||
"overdueItems": "Éléments en retard",
|
||||
"approvalBlockers": "En attente d'approbation ou de révision",
|
||||
"unscheduledProjects": "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é.",
|
||||
"emptyReviewQueue": "Aucun élément actif dans la file de révision.",
|
||||
"previousDay": "Jour précédent",
|
||||
"nextDay": "Jour suivant",
|
||||
"today": "Aujourd'hui",
|
||||
"month": "Mois",
|
||||
"week": "Semaine",
|
||||
"campaignDeadline": "Échéance de campagne",
|
||||
"emptyPeriod": "Aucun élément planifié.",
|
||||
"daySummary": "{content} contenus · {projects} échéances de campagne",
|
||||
"moreItems": "+{count} autres",
|
||||
"emptyDayAgenda": "Aucun contenu n'est planifié pour cette journée.",
|
||||
"projectProgress": "{scheduled} planifiés · {approved} approuvés",
|
||||
"missingSchedule": "Contenu à planifier",
|
||||
"noDueDate": "Aucune échéance",
|
||||
"labels": {
|
||||
"unassignedProject": "Campagne non attribuée"
|
||||
},
|
||||
"readiness": {
|
||||
"building": "En production",
|
||||
"approval": "En attente d'approbation",
|
||||
"rework": "Révision requise",
|
||||
"ready": "Prêt à publier",
|
||||
"published": "Publié",
|
||||
"blocked": "Bloqué",
|
||||
"archived": "Archivé",
|
||||
"scheduled": "Planifié",
|
||||
"missing": "Aucun contenu planifié"
|
||||
},
|
||||
"stats": {
|
||||
"scheduledThisDay": "Planifiés ce jour",
|
||||
"overdue": "En retard",
|
||||
"awaitingApproval": "En attente d'approbation",
|
||||
"readyToShip": "Prêts à livrer"
|
||||
}
|
||||
},
|
||||
"overview": {
|
||||
"eyebrow": "Vue portefeuille",
|
||||
"title": "Chronologie multi-espaces",
|
||||
"description": "Suivez les livraisons à venir, les risques et l'activité sur tous les espaces auxquels vous avez accès.",
|
||||
"loading": "Chargement des données globales...",
|
||||
"workspacesKicker": "Périmètre d'accès",
|
||||
"workspaceRollup": "Synthèse des espaces",
|
||||
"timelineKicker": "À venir",
|
||||
"upcomingTitle": "Planifié sur tous les espaces",
|
||||
"riskKicker": "À surveiller",
|
||||
"risksTitle": "Éléments déjà à risque",
|
||||
"activityKicker": "Activité récente",
|
||||
"activityTitle": "Derniers événements du workflow",
|
||||
"emptyUpcoming": "Aucun élément planifié à venir sur vos espaces.",
|
||||
"emptyRisks": "Aucun risque de livraison multi-espace pour le moment.",
|
||||
"emptyActivity": "Aucune activité récente du workflow.",
|
||||
"labels": {
|
||||
"projects": "campagnes",
|
||||
"upcoming": "à venir",
|
||||
"blocked": "bloqués"
|
||||
},
|
||||
"stats": {
|
||||
"workspaces": "Espaces",
|
||||
"projects": "Campagnes",
|
||||
"upcoming": "Éléments à venir",
|
||||
"blockers": "Éléments à risque"
|
||||
}
|
||||
},
|
||||
"clients": {
|
||||
"eyebrow": "Gestion client",
|
||||
"title": "Clients",
|
||||
"description": "Comptes clients, identité de marque et contacts principaux d'approbation.",
|
||||
"newClient": "Nouveau client",
|
||||
"createTitle": "Créer un client",
|
||||
"loading": "Chargement des clients...",
|
||||
"empty": "Aucun client n'est disponible pour l'espace actif.",
|
||||
"noPrimaryContact": "Aucun contact principal défini",
|
||||
"noPrimaryContactEmail": "Aucun email de contact principal défini",
|
||||
"errors": {
|
||||
"nameRequired": "Le nom du client est requis.",
|
||||
"createFailed": "Le client n'a pas pu être créé."
|
||||
},
|
||||
"fields": {
|
||||
"name": "Nom du client",
|
||||
"portraitUrl": "URL du logo ou portrait du client",
|
||||
"primaryContactName": "Nom du contact principal",
|
||||
"primaryContactEmail": "Email du contact principal",
|
||||
"primaryContactPortraitUrl": "URL du portrait du contact principal"
|
||||
}
|
||||
},
|
||||
"projects": {
|
||||
"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",
|
||||
"createTitle": "Créer une campagne",
|
||||
"loading": "Chargement des campagnes...",
|
||||
"empty": "Aucune campagne n'est disponible pour l'espace actif.",
|
||||
"unknownClient": "Client inconnu",
|
||||
"noDateRange": "Aucune plage de dates",
|
||||
"errors": {
|
||||
"required": "Le nom de la campagne et la plage de dates sont requis.",
|
||||
"invalidDateRange": "La date de fin doit être postérieure ou égale à la date de début.",
|
||||
"workspaceAccountRequired": "Cet espace a besoin d'un compte opérationnel avant de créer des campagnes.",
|
||||
"createFailed": "La campagne n'a pas pu être créée."
|
||||
},
|
||||
"fields": {
|
||||
"client": "Client",
|
||||
"selectClient": "Sélectionner un client",
|
||||
"startDate": "Date de début",
|
||||
"endDate": "Date de fin",
|
||||
"name": "Nom de la campagne",
|
||||
"description": "Description",
|
||||
"notes": "Notes"
|
||||
}
|
||||
},
|
||||
"channels": {
|
||||
"title": "Canaux",
|
||||
"description": "Ajoutez des canaux à l'espace.",
|
||||
"createTitle": "Créer un canal",
|
||||
"empty": "Aucun canal n'est disponible pour l'espace actif pour le moment.",
|
||||
"emptyAction": "Ajouter un canal pour {network}",
|
||||
"nextDue": "Prochaine échéance",
|
||||
"noScheduled": "Rien de planifié",
|
||||
"fields": {
|
||||
"name": "Nom du canal",
|
||||
"network": "Réseau"
|
||||
},
|
||||
"metrics": {
|
||||
"scheduled": "Planifié",
|
||||
"ready": "Prêt",
|
||||
"blocked": "Bloqué"
|
||||
},
|
||||
"errors": {
|
||||
"createFailed": "Le canal n'a pas pu être créé."
|
||||
}
|
||||
},
|
||||
"reviewQueue": {
|
||||
"eyebrow": "Flux de révision",
|
||||
"title": "File de révision",
|
||||
"description": "Approbations, révisions et demandes de changement en attente pour l'espace actif.",
|
||||
"empty": "Aucun élément de révision n'est disponible pour l'espace actif."
|
||||
},
|
||||
"contentItems": {
|
||||
"eyebrow": "Flux de contenu",
|
||||
"title": "Éléments de contenu",
|
||||
"description": "Unités révisables avec ressources, texte et statut d'approbation dans l'espace actif.",
|
||||
"newItem": "Nouvel élément de contenu",
|
||||
"createTitle": "Créer un élément de contenu",
|
||||
"loading": "Chargement des éléments de contenu...",
|
||||
"empty": "Aucun élément de contenu n'est disponible pour l'espace actif.",
|
||||
"noDueDate": "Aucune échéance",
|
||||
"assetsHelper": "Les ressources Google Drive sont maintenant liées depuis la page de détail de l'élément après sa création.",
|
||||
"errors": {
|
||||
"required": "Le titre, la campagne, le message et les cibles sont requis.",
|
||||
"workspaceAccountRequired": "Cet espace a besoin d'un compte opérationnel avant de créer du contenu.",
|
||||
"createFailed": "L'élément de contenu n'a pas pu être créé."
|
||||
},
|
||||
"fields": {
|
||||
"title": "Titre",
|
||||
"client": "Client",
|
||||
"selectClient": "Sélectionner un client",
|
||||
"project": "Campagne",
|
||||
"selectProject": "Sélectionner une campagne",
|
||||
"dueDate": "Date d'échéance",
|
||||
"publicationTargets": "Cibles de publication",
|
||||
"publicationTargetsPlaceholder": "Instagram Reel, TikTok",
|
||||
"publicationMessage": "Message de publication",
|
||||
"hashtags": "Hashtags",
|
||||
"hashtagsPlaceholder": "#lancement #marque #campagne",
|
||||
"assets": "Ressources"
|
||||
}
|
||||
},
|
||||
"userSettings": {
|
||||
"eyebrow": "Informations utilisateur",
|
||||
"title": "Profil et identité",
|
||||
"description": "Gérez le portrait et les informations du compte affichés dans l'espace.",
|
||||
"updatePortrait": "Mettre à jour le portrait",
|
||||
"accountDetails": "Détails du compte",
|
||||
"accountDetailsDescription": "Des champs supplémentaires d'édition du compte peuvent être ajoutés ici ensuite.",
|
||||
"alias": "Alias",
|
||||
"fullName": "Nom complet",
|
||||
"email": "Email",
|
||||
"noEmail": "Aucun email défini",
|
||||
"cropperTitle": "Mettre à jour le portrait utilisateur",
|
||||
"savePortrait": "Enregistrer le portrait",
|
||||
"choosePortrait": "Choisir un portrait"
|
||||
},
|
||||
"workspaceSettings": {
|
||||
"eyebrow": "Paramètres",
|
||||
"title": "Paramètres de l'espace",
|
||||
"description": "Configurez l'espace courant avec les sections general, membres, workflow et connecteurs.",
|
||||
"currentWorkspace": "Espace actuel",
|
||||
"noWorkspaceSelected": "Aucun espace sélectionné",
|
||||
"activeWorkspace": "Espace actif",
|
||||
"contextNote": "Ces paramètres s'appliquent uniquement à l'espace courant.",
|
||||
"inviteTitle": "Inviter des membres",
|
||||
"inviteDescription": "Invitez des clients, sous-traitants ou collègues dans l'espace actif.",
|
||||
"inviteEmpty": "Aucune invitation en attente pour cet espace.",
|
||||
"sendInvite": "Envoyer l'invitation",
|
||||
"reset": "Réinitialiser",
|
||||
"errors": {
|
||||
"required": "Tous les champs de l'espace sont requis.",
|
||||
"createFailed": "L'espace n'a pas pu être créé.",
|
||||
"inviteRequired": "L'email et le rôle sont requis pour inviter un membre.",
|
||||
"inviteFailed": "L'invitation de l'espace n'a pas pu être créée."
|
||||
},
|
||||
"fields": {
|
||||
"name": "Nom de l'espace",
|
||||
"slug": "Slug de l'espace",
|
||||
"timeZone": "Fuseau horaire",
|
||||
"memberEmail": "Email du membre",
|
||||
"memberRole": "Rôle"
|
||||
},
|
||||
"roles": {
|
||||
"administrator": "Administrateur",
|
||||
"manager": "Gestionnaire",
|
||||
"client": "Réviseur client",
|
||||
"provider": "Sous-traitant",
|
||||
"workspaceMember": "Membre de l'espace"
|
||||
},
|
||||
"summary": {
|
||||
"name": "Nom",
|
||||
"slug": "Slug",
|
||||
"timeZone": "Fuseau horaire",
|
||||
"created": "Créé"
|
||||
},
|
||||
"tabs": {
|
||||
"general": "Général",
|
||||
"members": "Membres",
|
||||
"workflow": "Workflow",
|
||||
"connectors": "Connecteurs"
|
||||
},
|
||||
"members": {
|
||||
"inviteTitle": "Inviter",
|
||||
"activeTitle": "Membres",
|
||||
"activeDescription": "Voyez toutes les personnes qui appartiennent actuellement à l'espace actif.",
|
||||
"activeEmpty": "Aucun membre trouvé pour cet espace.",
|
||||
"pendingTitle": "Invitations en attente",
|
||||
"pendingDescription": "Suivez les personnes invitées dans l'espace actif."
|
||||
},
|
||||
"connectors": {
|
||||
"title": "Connecteurs",
|
||||
"description": "Gerez les connecteurs au niveau de l'espace qui alimentent des fonctions comme la bibliotheque media.",
|
||||
"openMediaLibrary": "Ouvrir la bibliotheque media",
|
||||
"googleDrive": {
|
||||
"title": "Google Drive",
|
||||
"description": "Ce connecteur doit alimenter la synchronisation media de l'espace pour les images, videos et autres fichiers partages.",
|
||||
"status": "Configuration en attente"
|
||||
}
|
||||
},
|
||||
"general": {
|
||||
"summaryTitle": "Résumé de l'espace",
|
||||
"summaryDescription": "Détails de référence pour l'espace actuellement en contexte."
|
||||
},
|
||||
"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.",
|
||||
"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.",
|
||||
"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"
|
||||
},
|
||||
"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."
|
||||
},
|
||||
"publishBehaviour": {
|
||||
"manual": "Marquer prêt à publier",
|
||||
"auto": "Passer automatiquement à prêt"
|
||||
},
|
||||
"steps": {
|
||||
"internal": "Révision interne",
|
||||
"client": "Révision client",
|
||||
"publish": "Passage à la publication"
|
||||
},
|
||||
"stepDetail": {
|
||||
"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."
|
||||
}
|
||||
}
|
||||
},
|
||||
"integrations": {
|
||||
"eyebrow": "Intégrations",
|
||||
"title": "Google Drive et clés API",
|
||||
"description": "C'est ici que doivent vivre les intégrations au niveau de l'espace et la configuration des identifiants.",
|
||||
"statusLabel": "Statut",
|
||||
"pendingTitle": "Interface de configuration en attente",
|
||||
"googleDrive": {
|
||||
"title": "Google Drive",
|
||||
"description": "Configurez la connexion de l'espace utilisée pour la liaison des ressources et l'entrée des révisions.",
|
||||
"nextStep": "Prochaine étape : ajouter des paramètres d'intégration stockés pour l'espace et les connecter au flux de liaison des ressources."
|
||||
},
|
||||
"apiKeys": {
|
||||
"title": "Clés API",
|
||||
"description": "Les secrets de l'espace et identifiants de services externes doivent être gérés ici.",
|
||||
"nextStep": "Prochaine étape : ajouter une persistance backend sécurisée et une gestion masquée des clés."
|
||||
}
|
||||
},
|
||||
"mediaLibrary": {
|
||||
"eyebrow": "Bibliotheque media",
|
||||
"title": "Medias de l'espace",
|
||||
"description": "Gerez la bibliotheque partagee d'images et de videos qui devrait se synchroniser avec Google Drive pour cet espace.",
|
||||
"syncCard": {
|
||||
"title": "Synchronisation Google Drive",
|
||||
"description": "Cette zone servira a connecter le Drive de l'espace, importer les medias approuves et garder la bibliotheque alignee sur les dossiers externes."
|
||||
},
|
||||
"mediaTypesTitle": "Medias pris en charge",
|
||||
"mediaTypesDescription": "La bibliotheque doit devenir l'endroit unique pour parcourir les ressources visuelles avant de les lier au contenu.",
|
||||
"mediaTypes": {
|
||||
"images": "Images, visuels graphiques et elements de marque",
|
||||
"videos": "Videos, reels et exports en mouvement"
|
||||
},
|
||||
"workflowTitle": "Flux prevu",
|
||||
"workflowDescription": "Cette page est le point d'entree prevu pour le flux de synchronisation Google Drive dont on a parle.",
|
||||
"workflow": {
|
||||
"connectDrive": "Connecter la source Google Drive de l'espace.",
|
||||
"syncAssets": "Synchroniser les images et videos dans la bibliotheque interne.",
|
||||
"organizeLibrary": "Reviser, etiqueter et reutiliser les medias depuis un seul endroit au niveau de l'espace."
|
||||
},
|
||||
"statusLabel": "Statut",
|
||||
"pendingTitle": "Interface de gestion en attente",
|
||||
"pendingDescription": "L'entree de navigation et la page sont en place. La prochaine etape est de brancher la vraie synchro Drive, le listing, les filtres et les actions sur les ressources."
|
||||
},
|
||||
"errors": {
|
||||
"unexpected": "Une erreur inattendue s'est produite",
|
||||
"imageLoad": "Erreur lors du chargement de l'image",
|
||||
"imageUpload": "Erreur lors du téléchargement de l'image"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user