{ "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", "public": { "nav": { "product": "Product", "pricing": "Pricing", "resources": "Resources", "blogs": "Blogs", "guides": "Guides", "ariaLabel": "Public site navigation", "language": "Language", "openApp": "Open app", "login": "Login" }, "landing": { "meta": { "title": "Socialize | Try a faster social media approval workflow", "description": "Try Socialize to centralize social media content review, revisions, client approvals, and publication handoff in one workflow." }, "hero": { "eyebrow": "Client approvals without the chase", "title": "Get social content approved before another deadline slips.", "description": "Stop hunting through Drive links, email threads, chat comments, and spreadsheets. Socialize gives agencies and content teams one focused workflow for review, revisions, approvals, and publishing handoff.", "primaryAction": "Try the app", "secondaryAction": "Try the app", "ctaNote": "Start with your next client review. No publishing migration required." }, "proof": { "reviews": { "value": "1 place", "label": "for every review" }, "handoff": { "value": "0 guesswork", "label": "at publishing handoff" }, "traceability": { "value": "Full context", "label": "for every approval" } }, "mockup": { "title": "Review queue", "badge": "Live workflow", "reel": { "title": "May launch reel", "meta": "Instagram · Client review", "status": "Needs approval" }, "launch": { "title": "Product announcement", "meta": "LinkedIn · Internal review", "status": "Changes logged" }, "newsletter": { "title": "June newsletter", "meta": "Email · Ready for handoff", "status": "Approved" }, "approvalLabel": "Latest decision", "approvalValue": "Approved version is clear, traceable, and ready to schedule." }, "pillars": { "singleSource": { "eyebrow": "End the status meeting", "title": "Every comment, revision, decision, and due date stays attached to the content item." }, "collaboration": { "eyebrow": "Collaboration that closes loops", "title": "Give agency teams, providers, and client approvers one obvious place to review and approve." }, "ownership": { "eyebrow": "Keep ownership of your data", "title": "Keep client files where they belong while Socialize organizes the workflow around them." } }, "focus": { "eyebrow": "Why teams try it", "title": "The fastest way to feel the difference is to run one real approval through Socialize.", "clients": { "label": "Clients", "description": "Keep each brand or business in a clean review workspace" }, "campaigns": { "label": "Campaigns", "description": "Group related work around timelines, approvals, and delivery goals" }, "contentItems": { "label": "Content items", "description": "Make every post, asset, and approval easy to find again" } }, "finalCta": { "eyebrow": "Try it on your next approval", "title": "You already have content waiting for feedback. Put the next one in Socialize.", "description": "Bring one client review into a workspace and see how much easier it is when feedback, versions, and approvals stay together." } }, "product": { "meta": { "title": "Product | Socialize", "description": "Socialize keeps content items, assets, revisions, comments, approval decisions, and publishing handoff details in one workspace." }, "eyebrow": "Product", "title": "Social media content approval, organized around the work itself.", "description": "Socialize keeps content items, assets, revisions, comments, approval decisions, and publishing handoff details in one workspace so teams do not have to coordinate review across scattered tools.", "featureEyebrow": "Features", "featureTitle": "Follow the work from request to approval." }, "features": { "content-planning": { "title": "Content planning", "description": "Shape upcoming work around clients, campaigns, channels, owners, and due dates.", "detailTitle": "Plan social content before review starts.", "detailDescription": "Create content items with the context reviewers need: copy, channels, timing, campaign relationships, and production notes.", "bullets": [ "Organize work by workspace, client, and campaign.", "Track planned dates, channels, and review readiness.", "Keep the request, brief, and reviewable content together." ] }, "asset-revisions": { "title": "Asset revisions", "description": "Keep files and versions traceable without forcing teams to abandon their storage.", "detailTitle": "Make the latest asset version obvious.", "detailDescription": "Link creative assets, preserve revision history, and keep feedback connected to the version being reviewed.", "bullets": [ "Attach images, videos, documents, and file references.", "Preserve earlier revisions instead of overwriting context.", "Help reviewers understand which version is current." ] }, "comment-threads": { "title": "Comment threads", "description": "Keep feedback attached to the content instead of scattered across chat and email.", "detailTitle": "Put review conversations where the work lives.", "detailDescription": "Centralize feedback, questions, internal notes, and client comments around the content item.", "bullets": [ "Keep discussion tied to the relevant item or revision.", "Separate workflow comments from formal approval decisions.", "Reduce follow-up by keeping context visible to the team." ] }, "approval-workflows": { "title": "Approval workflows", "description": "Record clear approval decisions before content moves to publishing handoff.", "detailTitle": "Turn review into a clear decision.", "detailDescription": "Support required, optional, and multi-step approval patterns so teams know when content is actually approved.", "bullets": [ "Track who approved and when.", "Support internal review before client approval.", "Keep approval state separate from informal feedback." ] }, "client-review": { "title": "Client review", "description": "Give external approvers a focused way to review content without full workspace access.", "detailTitle": "Make client review easier to complete.", "detailDescription": "Share focused review access so clients can comment and approve the content they are responsible for.", "bullets": [ "Keep clients focused on the content they need to review.", "Avoid exposing internal workspace details.", "Reduce back-and-forth with a clear approval surface." ] }, "review-queues": { "title": "Review queues", "description": "Show teams what needs attention, what is blocked, and what can move forward.", "detailTitle": "Know what needs review next.", "detailDescription": "Surface pending approvals, overdue work, and items waiting for feedback so teams can act quickly.", "bullets": [ "Track items waiting on internal or client review.", "Spot blockers before deadlines slip.", "Keep approval work visible across the workspace." ] }, "audit-trail": { "title": "Audit trail", "description": "Preserve the history of uploads, comments, status changes, and approvals.", "detailTitle": "Keep a record teams can trust.", "detailDescription": "Socialize keeps workflow history attached to the content item so decisions and revisions remain traceable.", "bullets": [ "See status changes and approval history.", "Preserve revision context after content changes.", "Make handoff decisions easier to verify." ] }, "workspace-access": { "title": "Workspace access", "description": "Separate organization members, workspace collaborators, clients, and approvers.", "detailTitle": "Give the right people the right scope.", "detailDescription": "Use workspaces as the brand or client boundary while keeping organization access, collaborators, and external reviewers distinct.", "bullets": [ "Keep each client or brand in its own workspace.", "Invite external collaborators without making them organization members.", "Preserve workspace-level scoping for review data." ] }, "team-collaboration": { "title": "Team collaboration", "description": "Coordinate agencies, producers, providers, and client approvers in one workflow.", "detailTitle": "Bring every reviewer into one workflow.", "detailDescription": "Help internal teams, production partners, and clients work from the same review state without losing ownership of their part of the process.", "bullets": [ "Coordinate internal and external contributors.", "Keep team review and client review connected.", "Make ownership and next steps easier to see." ] } }, "pricing": { "meta": { "title": "Pricing | Socialize", "description": "Socialize pricing for freelancers, agencies, and teams managing social media content approvals with clients." }, "eyebrow": "Pricing", "title": "Start free. Upgrade when approvals become client work.", "description": "Choose the plan that matches your review volume. Every tier keeps content, feedback, revisions, and approvals in one workflow.", "bestValue": "Best value", "includedLabel": "Included", "limitsLabel": "Limits", "tiers": { "free": { "name": "Free", "description": "For trying Socialize on one real approval workflow.", "price": "$0", "priceNote": "forever", "action": "Try the app", "features": [ "Content items with copy and asset links", "Basic comments and review history", "One approval workflow", "Client-ready review view", "Email-ready handoff notes" ], "limits": [ "1 workspace", "3 active content items", "2 team members", "1 external reviewer" ] }, "freelance": { "name": "Freelance", "description": "For solo operators managing recurring client reviews.", "price": "$19", "priceNote": "per month", "action": "Start Freelance", "features": [ "Everything in Free", "Revision tracking for assets and copy", "Reusable client approval workflow", "Review queue for active work", "Activity history for approvals" ], "limits": [ "3 workspaces", "25 active content items", "5 team members", "10 external reviewers" ] }, "agency": { "name": "Agency", "description": "For agencies that need repeatable client approval operations.", "price": "$79", "priceNote": "per month", "action": "Start Agency", "features": [ "Everything in Freelance", "Multi-client workspace management", "Internal review before client approval", "Multi-step approval workflows", "Priority review queues and audit trail" ], "limits": [ "15 workspaces", "250 active content items", "25 team members", "Unlimited external reviewers" ] }, "enterprise": { "name": "Enterprise", "description": "For larger organizations with governance and access needs.", "price": "Custom", "priceNote": "tailored plan", "action": "Start Enterprise", "features": [ "Everything in Agency", "Organization-level access controls", "Advanced approval configuration", "Dedicated onboarding support", "Custom usage and workspace limits" ], "limits": [ "Unlimited workspaces", "Unlimited active content items", "Custom member limits", "Custom reviewer limits" ] } } }, "blogs": { "meta": { "title": "Blogs | Socialize", "description": "Practical articles on content review workflows, client approval, revision tracking, and publication handoff." }, "eyebrow": "Blogs", "title": "Practical notes on content review workflows.", "description": "Articles are coming soon. This area will cover approval operations, client review habits, revision tracking, and publication handoff." }, "guides": { "meta": { "title": "Guides | Socialize", "description": "Reusable guides for content intake, review rounds, approval decisions, and delivery readiness." }, "eyebrow": "Guides", "title": "Reusable guides for managing review and approval work.", "description": "Guides are coming soon. This area will collect repeatable playbooks for content intake, review rounds, approval decisions, and delivery readiness." } }, "common": { "cancel": "Cancel", "creating": "Creating...", "saving": "Saving..." }, "workspaceSelector": { "allWorkspaces": "All Workspaces", "allWorkspacesDescription": "Show every workspace", "createAction": "Add workspace", "hideWorkspace": "Hide workspace", "multipleWorkspaces": "Multiple Workspaces", "organizationLabel": "Organization", "organizationSettings": "Organization settings", "noOrganization": "No organization", "showWorkspace": "Show workspace", "workspaceSettings": "Workspace settings" }, "workspaceCreate": { "eyebrow": "Workspace", "title": "Create a new workspace", "description": "Set up a new workspace with its own timezone, members, workflow, and connectors.", "formTitle": "Workspace details", "formDescription": "Start with the core fields now. Members, workflow, and connectors can be configured right after creation.", "createAction": "Create workspace", "fields": { "name": "Workspace name", "namePlaceholder": "Northwind Studio", "organization": "Organization", "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": { "brandStage": "Alpha Preview", "brandStageLabel": "Product stage: Alpha Preview", "brandCaption": "Approval workflow", "workspace": "Workspace", "notifications": "Notifications", "dashboard": "Dashboard", "overview": "Overview", "workspacePlan": "Calendar", "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": { "title": "Content items", "newItem": "New content item", "createTitle": "Create content item", "upcoming": "Upcoming", "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", "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" } }