752 lines
28 KiB
JSON
752 lines
28 KiB
JSON
{
|
|
"save": "Save",
|
|
"cancel": "Cancel",
|
|
"edit": "Edit",
|
|
"delete": "Delete",
|
|
"create": "Create",
|
|
"apply": "Apply",
|
|
"preview": "Preview",
|
|
"label": "Label",
|
|
"confirm": "Confirm",
|
|
"close": "Close",
|
|
"accept": "Accept",
|
|
"loading": "Loading...",
|
|
"error": "Error",
|
|
"success": "Success",
|
|
"changesSaved": "Changes saved successfully",
|
|
"errorOccurred": "An error occurred",
|
|
"name": "Name",
|
|
"email": "Email",
|
|
"password": "Password",
|
|
"description": "Description",
|
|
"title": "Title",
|
|
"image": "Image",
|
|
"file": "File",
|
|
"required": "This field is required",
|
|
"invalidEmail": "Invalid email address",
|
|
"invalidPassword": "Invalid password",
|
|
"facebook": "Facebook",
|
|
"instagram": "Instagram",
|
|
"linkedin": "LinkedIn",
|
|
"reddit": "Reddit",
|
|
"tiktok": "TikTok",
|
|
"x": "X (Twitter)",
|
|
"youtube": "YouTube",
|
|
"website": "Website",
|
|
"common": {
|
|
"cancel": "Cancel",
|
|
"creating": "Creating...",
|
|
"saving": "Saving..."
|
|
},
|
|
"workspaceSelector": {
|
|
"createAction": "Add workspace",
|
|
"organizationLabel": "Organization",
|
|
"organizationSettings": "Organization settings",
|
|
"noOrganization": "No organization"
|
|
},
|
|
"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",
|
|
"organization": "Organization",
|
|
"slug": "Workspace slug",
|
|
"slugPlaceholder": "northwind-studio",
|
|
"timeZone": "Time zone"
|
|
},
|
|
"errors": {
|
|
"required": "All workspace fields are required.",
|
|
"createFailed": "The workspace could not be created."
|
|
}
|
|
},
|
|
"organizationSettings": {
|
|
"eyebrow": "Organization",
|
|
"title": "Organization settings",
|
|
"description": "Manage the SaaS account boundary for members, billing access, connections, and owned workspaces.",
|
|
"loading": "Loading organization settings...",
|
|
"fields": {
|
|
"name": "Name",
|
|
"createdAt": "Created"
|
|
},
|
|
"sections": {
|
|
"profile": {
|
|
"title": "Profile",
|
|
"description": "The account identity used across organization-owned workspaces."
|
|
},
|
|
"members": {
|
|
"title": "Members",
|
|
"description": "Organization-level users and their inherited account permissions.",
|
|
"empty": "No organization members found."
|
|
},
|
|
"billing": {
|
|
"title": "Billing",
|
|
"description": "Subscription and billing access for this organization.",
|
|
"placeholderTitle": "Billing provider is not connected yet",
|
|
"placeholderText": "Plan, payment, and invoice management will live here after billing integration is added."
|
|
},
|
|
"connections": {
|
|
"title": "Connections",
|
|
"description": "Organization-level connectors and data mappings.",
|
|
"placeholderTitle": "No organization connections configured",
|
|
"placeholderText": "Connector authorization flows are intentionally out of scope for this UI shell."
|
|
},
|
|
"workspaces": {
|
|
"title": "Workspaces",
|
|
"description": "Brand and client workspaces owned by this organization.",
|
|
"empty": "No workspaces belong to this organization yet."
|
|
}
|
|
},
|
|
"roles": {
|
|
"Owner": "Owner",
|
|
"Admin": "Admin",
|
|
"BillingManager": "Billing manager",
|
|
"ConnectorManager": "Connector manager",
|
|
"Member": "Member"
|
|
},
|
|
"permissions": {
|
|
"title": "Your permissions",
|
|
"description": "Current organization permissions returned by the API.",
|
|
"items": {
|
|
"ManageOrganizationSettings": "Manage settings",
|
|
"ManageOrganizationMembers": "Manage members",
|
|
"CreateWorkspaces": "Create workspaces",
|
|
"ManageWorkspaces": "Manage workspaces",
|
|
"ManageBilling": "Manage billing",
|
|
"ManageConnectors": "Manage connectors",
|
|
"AccessOwnedWorkspaces": "Access owned workspaces"
|
|
}
|
|
}
|
|
},
|
|
"nav": {
|
|
"brandCaption": "Approval workflow",
|
|
"workspace": "Workspace",
|
|
"notifications": "Notifications",
|
|
"dashboard": "Dashboard",
|
|
"overview": "Overview",
|
|
"workspacePlan": "Content",
|
|
"mediaLibrary": "Media Library",
|
|
"myFeedback": "My Feedback",
|
|
"feedbackReview": "Feedback Review",
|
|
"channels": "Channels",
|
|
"campaigns": "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",
|
|
"feedbackReportCreated": "New feedback report",
|
|
"feedbackDeveloperCommented": "Developer commented",
|
|
"feedbackStatusChanged": "Feedback status changed",
|
|
"feedbackReporterCommented": "Reporter replied"
|
|
}
|
|
},
|
|
"feedback": {
|
|
"button": "Feedback",
|
|
"open": "Send product feedback",
|
|
"eyebrow": "Product feedback",
|
|
"title": "Send feedback",
|
|
"capture": "Capture screen",
|
|
"removeCapture": "Remove capture",
|
|
"noCapture": "Capture the current app viewport if a screenshot would help.",
|
|
"captureFailed": "The screenshot could not be captured. You can still submit feedback without it.",
|
|
"submit": "Submit feedback",
|
|
"submitted": "Feedback submitted.",
|
|
"submitFailed": "Feedback could not be submitted.",
|
|
"discardConfirm": "Discard this unsent feedback?",
|
|
"textPrompt": "Text label",
|
|
"types": {
|
|
"bug": "Bug",
|
|
"suggestion": "Suggestion",
|
|
"request": "Request"
|
|
},
|
|
"fields": {
|
|
"type": "Type",
|
|
"description": "Description",
|
|
"descriptionPlaceholder": "Describe what happened, what you expected, or what would improve the workflow."
|
|
},
|
|
"tools": {
|
|
"crop": "Crop",
|
|
"arrow": "Arrow",
|
|
"ellipse": "Circle",
|
|
"line": "Line",
|
|
"freehand": "Freehand",
|
|
"text": "Text label",
|
|
"undo": "Undo",
|
|
"clear": "Clear and reset"
|
|
},
|
|
"review": {
|
|
"eyebrow": "Developer review",
|
|
"title": "Product feedback",
|
|
"description": "Review submitted bugs, suggestions, and requests across all workspaces.",
|
|
"refresh": "Refresh feedback",
|
|
"loading": "Loading feedback...",
|
|
"empty": "No feedback matches the current filters.",
|
|
"emptyValue": "Not captured",
|
|
"noContext": "No workspace context",
|
|
"lastActivity": "Last activity",
|
|
"metrics": {
|
|
"total": "Total reports",
|
|
"visible": "Visible",
|
|
"new": "New",
|
|
"planned": "Planned"
|
|
},
|
|
"filters": {
|
|
"search": "Search feedback",
|
|
"type": "Type",
|
|
"status": "Status",
|
|
"tag": "Tag",
|
|
"reporter": "Reporter",
|
|
"workspace": "Workspace",
|
|
"fromDate": "From date",
|
|
"toDate": "To date",
|
|
"sort": "Sort",
|
|
"clear": "Clear filters"
|
|
},
|
|
"sort": {
|
|
"lastActivity": "Last activity",
|
|
"newest": "Newest",
|
|
"oldest": "Oldest"
|
|
},
|
|
"errors": {
|
|
"loadFailed": "Feedback could not be loaded.",
|
|
"detailFailed": "The feedback report could not be loaded."
|
|
},
|
|
"detail": {
|
|
"back": "Back to feedback",
|
|
"eyebrow": "Feedback detail",
|
|
"report": "Report",
|
|
"screenshot": "Screenshot",
|
|
"download": "Download original",
|
|
"openOriginal": "Open original",
|
|
"screenshotAlt": "Feedback screenshot",
|
|
"noScreenshot": "No screenshot was attached.",
|
|
"timeline": "Comments and activity",
|
|
"noTimeline": "No comments or activity yet.",
|
|
"commentLabel": "Developer comment",
|
|
"addComment": "Add comment",
|
|
"commenting": "Adding comment...",
|
|
"commentAdded": "Comment added.",
|
|
"commentFailed": "Comment could not be added.",
|
|
"reviewControls": "Review controls",
|
|
"saved": "Feedback updated.",
|
|
"saveFailed": "Feedback could not be updated.",
|
|
"reporter": "Reporter",
|
|
"activityLabel": "Activity",
|
|
"metadata": {
|
|
"title": "Captured metadata",
|
|
"path": "Submitted path",
|
|
"userAgent": "Browser",
|
|
"viewport": "Viewport",
|
|
"appVersion": "App version",
|
|
"created": "Created",
|
|
"lastActivity": "Last activity"
|
|
},
|
|
"context": {
|
|
"title": "Context",
|
|
"workspace": "Workspace",
|
|
"client": "Client",
|
|
"campaign": "Campaign",
|
|
"contentItem": "Content item"
|
|
},
|
|
"activity": {
|
|
"updated": "Updated feedback.",
|
|
"statusChanged": "Changed status from {from} to {to}.",
|
|
"typeChanged": "Changed type from {from} to {to}.",
|
|
"tagsChanged": "Changed tags from {from} to {to}."
|
|
}
|
|
}
|
|
},
|
|
"mine": {
|
|
"eyebrow": "My feedback",
|
|
"title": "My Feedback",
|
|
"description": "Track the product feedback you have submitted across workspaces.",
|
|
"refresh": "Refresh my feedback",
|
|
"empty": "No feedback matches the current filters.",
|
|
"unread": "Unread feedback activity",
|
|
"metrics": {
|
|
"active": "Active reports",
|
|
"unread": "Unread",
|
|
"visible": "Visible"
|
|
},
|
|
"errors": {
|
|
"loadFailed": "Your feedback could not be loaded.",
|
|
"detailFailed": "This feedback report could not be loaded."
|
|
},
|
|
"detail": {
|
|
"back": "Back to my feedback",
|
|
"eyebrow": "My feedback detail",
|
|
"commentLabel": "Follow-up comment",
|
|
"commentAdded": "Comment added.",
|
|
"commentFailed": "Comment could not be added.",
|
|
"cancel": "Cancel report",
|
|
"cancelPrompt": "Optional cancellation reason",
|
|
"cancelled": "Feedback cancelled.",
|
|
"cancelFailed": "Feedback could not be cancelled."
|
|
}
|
|
}
|
|
},
|
|
"sidebar": {
|
|
"allClients": "All clients",
|
|
"allChannels": "All channels",
|
|
"allCampaigns": "All campaigns",
|
|
"allReviewItems": "Full review queue",
|
|
"noClients": "No clients yet.",
|
|
"noChannels": "No channels yet.",
|
|
"noCampaigns": "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",
|
|
"unscheduledCampaigns": "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.",
|
|
"emptyCampaigns": "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 · {campaigns} campaign deadlines",
|
|
"moreItems": "+{count} more",
|
|
"emptyDayAgenda": "No content is scheduled for this day.",
|
|
"campaignProgress": "{scheduled} scheduled · {approved} approved",
|
|
"missingSchedule": "Needs content scheduled",
|
|
"noDueDate": "No due date",
|
|
"labels": {
|
|
"unassignedCampaign": "Unassigned campaign"
|
|
},
|
|
"readiness": {
|
|
"building": "In production",
|
|
"approval": "Awaiting approval",
|
|
"rework": "Needs revision",
|
|
"ready": "Approved",
|
|
"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": {
|
|
"campaigns": "campaigns",
|
|
"upcoming": "upcoming",
|
|
"blocked": "blocked"
|
|
},
|
|
"stats": {
|
|
"workspaces": "Workspaces",
|
|
"campaigns": "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"
|
|
}
|
|
},
|
|
"campaigns": {
|
|
"eyebrow": "Campaign planning",
|
|
"title": "Campaigns",
|
|
"description": "Campaigns grouped inside the active workspace by status, date range, and planning notes.",
|
|
"newCampaign": "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",
|
|
"campaign": "Campaign",
|
|
"selectCampaign": "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": "Edit the profile details other workspace members see.",
|
|
"saveDetails": "Save details",
|
|
"saved": "Profile details saved",
|
|
"portraitSaved": "Portrait saved",
|
|
"alias": "Alias",
|
|
"firstname": "First name",
|
|
"lastname": "Last name",
|
|
"fullName": "Full name",
|
|
"email": "Email",
|
|
"noEmail": "No email set",
|
|
"cropperTitle": "Update user portrait",
|
|
"savePortrait": "Save portrait",
|
|
"choosePortrait": "Choose portrait",
|
|
"errors": {
|
|
"emailRequired": "Email is required.",
|
|
"saveFailed": "Profile details could not be saved.",
|
|
"portraitFailed": "Portrait could not be saved."
|
|
}
|
|
},
|
|
"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.",
|
|
"updateFailed": "The workspace settings could not be saved.",
|
|
"logoUploadFailed": "The workspace logo could not be saved.",
|
|
"inviteRequired": "Email and role are required to invite a member.",
|
|
"inviteFailed": "The workspace invite could not be created."
|
|
},
|
|
"fields": {
|
|
"name": "Workspace name",
|
|
"timeZone": "Time zone",
|
|
"memberEmail": "Member email",
|
|
"memberRole": "Role"
|
|
},
|
|
"roles": {
|
|
"administrator": "Administrator",
|
|
"manager": "Manager",
|
|
"client": "Client reviewer",
|
|
"provider": "Subcontractor",
|
|
"workspace-member": "Workspace member"
|
|
},
|
|
"summary": {
|
|
"name": "Name",
|
|
"timeZone": "Time zone"
|
|
},
|
|
"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": {
|
|
"detailsTitle": "Workspace details",
|
|
"detailsDescription": "Update the workspace name and default time zone used across schedules and workspace views.",
|
|
"saveAction": "Save workspace",
|
|
"saved": "Workspace settings saved."
|
|
},
|
|
"logo": {
|
|
"title": "Workspace logo",
|
|
"description": "Use a local file or remote image, then crop it for the workspace.",
|
|
"changeAction": "Change image",
|
|
"cropperTitle": "Update workspace logo",
|
|
"saveAction": "Save logo",
|
|
"chooseAction": "Choose logo",
|
|
"saved": "Workspace logo saved."
|
|
},
|
|
"approvals": {
|
|
"flowTitle": "Approval flow",
|
|
"flowDescription": "Configure how content approval works across this workspace.",
|
|
"previewTitle": "Flow preview",
|
|
"previewDescription": "This is the sequence the workspace will use based on the current configuration.",
|
|
"saved": "Approval flow saved.",
|
|
"saveAction": "Save approval flow",
|
|
"fields": {
|
|
"approvalMode": "Approval mode",
|
|
"schedulePostsAutomaticallyOnApproval": "Schedule posts automatically on approval",
|
|
"lockContentAfterApproval": "Lock content after approval",
|
|
"sendAutomaticApprovalReminders": "Send automatic approval reminders"
|
|
},
|
|
"fieldHelp": {
|
|
"schedulePostsAutomaticallyOnApproval": "Final approval moves content to Scheduled when it already has a planned publish date.",
|
|
"lockContentAfterApproval": "Approval-controlled content becomes locked after final approval. Scheduling fields remain editable.",
|
|
"sendAutomaticApprovalReminders": "Current approvers receive daily reminders while an approval step is pending."
|
|
},
|
|
"modes": {
|
|
"none": "None",
|
|
"optional": "Optional",
|
|
"required": "Required",
|
|
"multiLevel": "Multi-level"
|
|
},
|
|
"modeHelp": {
|
|
"none": "Content skips approval workflow and can become Approved without approval actions.",
|
|
"optional": "A one-step approval workflow is available but does not block publication workflow.",
|
|
"required": "At least one approval is required before content can become Approved or Scheduled.",
|
|
"multiLevel": "Approval uses ordered steps with targeted approvers for each step."
|
|
},
|
|
"editor": {
|
|
"title": "Multi-level steps",
|
|
"description": "Define who approves each ordered step before content reaches final approval.",
|
|
"addStep": "Add step",
|
|
"empty": "Add at least one approval step before saving multi-level approval.",
|
|
"unnamedStep": "Unnamed step",
|
|
"moveUp": "Move step up",
|
|
"moveDown": "Move step down",
|
|
"removeStep": "Remove step",
|
|
"selectMember": "Select a member",
|
|
"selectMembers": "Select one or more members. Hold Ctrl or Command to select multiple.",
|
|
"defaultStepName": "Approval step {number}",
|
|
"stepNumber": "Step {number}",
|
|
"fields": {
|
|
"name": "Display name",
|
|
"targetType": "Target type",
|
|
"targetValue": "Target",
|
|
"requiredApproverCount": "Required approvers"
|
|
},
|
|
"targetTypes": {
|
|
"role": "Role",
|
|
"membership": "Membership",
|
|
"member": "Member"
|
|
},
|
|
"memberships": {
|
|
"team": "Team",
|
|
"client": "Client"
|
|
},
|
|
"errors": {
|
|
"atLeastOneStep": "Multi-level approval requires at least one step.",
|
|
"fixInvalidSteps": "Fix the highlighted approval steps before saving.",
|
|
"nameRequired": "Enter a step name.",
|
|
"targetRequired": "Choose who can approve this step.",
|
|
"notEnoughMembers": "Select at least as many members as required approvers.",
|
|
"requiredApproverCount": "Enter at least 1 required approver."
|
|
}
|
|
},
|
|
"steps": {
|
|
"none": "Approval skipped",
|
|
"approval": "Approval",
|
|
"publish": "Publishing handoff"
|
|
},
|
|
"stepDetail": {
|
|
"none": "No approval workflow is created for content in this workspace.",
|
|
"optional": "Approval can be collected, but it is not required before publication workflow.",
|
|
"approverCount": "{count} approver(s) required",
|
|
"multiLevelTarget": "{count} approver(s) from {target}",
|
|
"autoSchedule": "Approved content with a planned publish date moves to Scheduled.",
|
|
"manualSchedule": "Approved content remains Approved until scheduling is handled."
|
|
}
|
|
}
|
|
},
|
|
"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"
|
|
}
|
|
}
|