ce4d6025d7
Post Workflow: - PostDetail full page (/posts/:id) replaces slide panel approach - Post = 1 Caption Copy + 1 Body Copy + 1 Design + 0-1 Video - copy_type field on Translations (caption/body) - Composition endpoint returns rich data (content preview, languages, thumbnails) - Stage auto-advances on translation/artefact changes (both link and unlink) - "Translations" renamed to "Copy" in navigation - GET /api/posts/:id, /api/translations/:id, /api/artefacts/:id routes added - PostProduction: "New Post" creates → navigates to full page - CampaignDetail: click post → navigates to full page - Inline link picker (no modals) with search + rich item display - PostComposition sub-components for caption, copy, designs, video, formats, readiness Budget Allocation: - Single source of truth: BudgetEntries (Campaign.budget deprecated) - Budget mutex for race conditions - Validation at all levels (main → campaign → track, expenses) - CEO approval workflow: BudgetRequests table, public approval page - Finance page: request budget UI, budget requests section - Settings: CEO email field - All emails branded with "Rawaj —" prefix Brand Identity: - Name: Rawaj (رواج) — trending/virality - Deep teal palette (#0d9488), forest-tinted dark mode - DM Sans font, custom SVG logo - Consistent across login, sidebar, emails, public pages Approval Workflow: - Single reviewer per artefact (not multi-select) - Reviewer redirect on public review page - Server blocks submit-review without reviewer - Review URLs use APP_URL (not server URL) UI/UX: - Scroll clipping fix: Modal, TabbedModal, SlidePanel restructured to avoid overflow-y-auto clipping native select dropdowns - section-card overflow-hidden → overflow-clip - All page titles via Header.jsx (removed duplicate h1s) - CampaignDetail redesigned: prominent budget card, compact team Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1185 lines
52 KiB
JSON
1185 lines
52 KiB
JSON
{
|
|
"app.name": "Rawaj",
|
|
"app.subtitle": "Marketing Hub",
|
|
"nav.dashboard": "Dashboard",
|
|
"nav.campaigns": "Campaigns",
|
|
"nav.finance": "Finance & ROI",
|
|
"nav.financeDashboard": "Dashboard",
|
|
"nav.budgets": "Budgets",
|
|
"nav.posts": "Post Production",
|
|
"nav.calendar": "Content Calendar",
|
|
"nav.artefacts": "Artefacts",
|
|
"nav.assets": "Assets",
|
|
"nav.projects": "Projects",
|
|
"nav.tasks": "Tasks",
|
|
"nav.issues": "Issues",
|
|
"nav.team": "Teams",
|
|
"nav.settings": "Settings",
|
|
"nav.users": "Users",
|
|
"nav.logout": "Logout",
|
|
"nav.brands": "Brands",
|
|
"nav.collapse": "Collapse",
|
|
"common.save": "Save",
|
|
"common.cancel": "Cancel",
|
|
"common.delete": "Delete",
|
|
"common.edit": "Edit",
|
|
"common.create": "Create",
|
|
"common.search": "Search...",
|
|
"common.filter": "Filter",
|
|
"common.all": "All",
|
|
"common.noResults": "No results",
|
|
"common.loading": "Loading...",
|
|
"common.unassigned": "Unassigned",
|
|
"common.close": "Close",
|
|
"common.required": "Required",
|
|
"common.saveFailed": "Failed to save. Please try again.",
|
|
"common.updateFailed": "Failed to update. Please try again.",
|
|
"common.deleteFailed": "Failed to delete. Please try again.",
|
|
"common.clearFilters": "Clear Filters",
|
|
"auth.login": "Sign In",
|
|
"auth.email": "Email",
|
|
"auth.password": "Password",
|
|
"auth.loginBtn": "Sign In",
|
|
"auth.signingIn": "Signing in...",
|
|
"dashboard.title": "Dashboard",
|
|
"dashboard.welcomeBack": "Welcome back",
|
|
"dashboard.happeningToday": "Here's what's happening with your marketing today.",
|
|
"dashboard.totalPosts": "Total Posts",
|
|
"dashboard.published": "published",
|
|
"dashboard.activeCampaigns": "Active Campaigns",
|
|
"dashboard.total": "total",
|
|
"dashboard.budgetSpent": "Budget Spent",
|
|
"dashboard.budgetRemaining": "Budget Remaining",
|
|
"dashboard.of": "of",
|
|
"dashboard.noBudget": "No budget yet",
|
|
"dashboard.overdueTasks": "Overdue Tasks",
|
|
"dashboard.needsAttention": "Needs attention",
|
|
"dashboard.allOnTrack": "All on track",
|
|
"dashboard.budgetOverview": "Budget Overview",
|
|
"dashboard.details": "Details",
|
|
"dashboard.noBudgetRecorded": "No budget recorded yet.",
|
|
"dashboard.addBudget": "Add budget",
|
|
"dashboard.spent": "spent",
|
|
"dashboard.received": "received",
|
|
"dashboard.remaining": "Remaining",
|
|
"dashboard.revenue": "Revenue",
|
|
"dashboard.roi": "ROI",
|
|
"dashboard.recentPosts": "Recent Posts",
|
|
"dashboard.viewAll": "View all",
|
|
"dashboard.sar": "SAR",
|
|
"dashboard.noPostsYet": "No posts yet. Create your first post!",
|
|
"dashboard.upcomingDeadlines": "Upcoming Deadlines",
|
|
"dashboard.noUpcomingDeadlines": "No upcoming deadlines this week. 🎉",
|
|
"dashboard.loadingHub": "Loading Rawaj...",
|
|
"posts.title": "Post Production",
|
|
"posts.newPost": "New Post",
|
|
"posts.editPost": "Edit Post",
|
|
"posts.createPost": "Create Post",
|
|
"posts.saveChanges": "Save Changes",
|
|
"posts.postTitle": "Title",
|
|
"posts.description": "Description",
|
|
"post.caption": "Caption",
|
|
"post.captionPlaceholder": "Write your social media caption...",
|
|
"post.copy": "Copy (In-Design Text)",
|
|
"post.designs": "Designs",
|
|
"post.video": "Video",
|
|
"post.formatChecklist": "Format Checklist",
|
|
"post.formatsNeeded": "Formats needed based on selected platforms",
|
|
"post.selectPlatforms": "Select platforms to see required formats",
|
|
"post.readiness": "Readiness",
|
|
"post.allPiecesReady": "All pieces ready — awaiting sign-off",
|
|
"post.waitingOn": "Waiting on",
|
|
"post.signOff": "Approve & Schedule",
|
|
"post.signOffConfirm": "Mark this post as approved and ready for scheduling?",
|
|
"common.confirm": "Confirm",
|
|
"post.linkExisting": "Link existing",
|
|
"post.createNew": "Create new",
|
|
"post.addDesign": "Add Design",
|
|
"post.addVideo": "Add Video",
|
|
"post.linkTranslation": "Link Translation",
|
|
"post.selectLanguage": "Language...",
|
|
"post.noCopyLinked": "No copy linked yet",
|
|
"post.noDesignsLinked": "No designs linked yet",
|
|
"post.noVideoLinked": "No video linked yet",
|
|
"posts.brand": "Brand",
|
|
"posts.platforms": "Platforms",
|
|
"posts.status": "Status",
|
|
"posts.assignTo": "Assign To",
|
|
"posts.scheduledDate": "Scheduled Date",
|
|
"posts.notes": "Notes",
|
|
"posts.campaign": "Campaign",
|
|
"posts.noCampaign": "No campaign",
|
|
"posts.publicationLinks": "Publication Links",
|
|
"posts.attachments": "Attachments",
|
|
"posts.uploadFiles": "Click or drag files to upload",
|
|
"posts.dropFiles": "Drop files here",
|
|
"posts.maxSize": "Max 50MB per file",
|
|
"posts.allBrands": "All Brands",
|
|
"posts.allPlatforms": "All Platforms",
|
|
"posts.allPeople": "All People",
|
|
"posts.searchPosts": "Search posts...",
|
|
"posts.deletePost": "Delete Post?",
|
|
"posts.deleteConfirm": "Are you sure you want to delete this post? This action cannot be undone.",
|
|
"posts.publishMissing": "Cannot publish: missing publication links for:",
|
|
"posts.publishRequired": "All publication links are required to publish",
|
|
"posts.noPostsFound": "No posts found",
|
|
"posts.selectBrand": "Select brand",
|
|
"posts.additionalNotes": "Additional notes",
|
|
"posts.uploading": "Uploading...",
|
|
"posts.deleteAttachment": "Delete attachment",
|
|
"posts.whatNeedsDone": "What needs to be done?",
|
|
"posts.optionalDetails": "Optional details...",
|
|
"posts.postTitlePlaceholder": "Post title",
|
|
"posts.postDescPlaceholder": "Post description...",
|
|
"posts.dropHere": "Drop here",
|
|
"posts.noPosts": "No posts",
|
|
"posts.sendToReview": "Send to Review",
|
|
"posts.approve": "Approve",
|
|
"posts.schedule": "Schedule",
|
|
"posts.publish": "Publish",
|
|
"posts.attachFromAssets": "Attach from Assets",
|
|
"posts.selectAssets": "Select an asset to attach",
|
|
"posts.noAssetsFound": "No assets found",
|
|
"posts.created": "Post created successfully!",
|
|
"posts.updated": "Post updated successfully!",
|
|
"posts.deleted": "Post deleted successfully!",
|
|
"posts.statusUpdated": "Post status updated!",
|
|
"posts.attachmentDeleted": "Attachment deleted!",
|
|
"posts.createFirstPost": "Create your first post to get started with content production.",
|
|
"posts.periodFrom": "From",
|
|
"posts.periodTo": "To",
|
|
"posts.tryDifferentFilter": "Try adjusting your filters to see more posts.",
|
|
"posts.status.draft": "Draft",
|
|
"posts.status.in_review": "In Review",
|
|
"posts.status.approved": "Approved",
|
|
"posts.status.scheduled": "Scheduled",
|
|
"posts.status.published": "Published",
|
|
"posts.status.rejected": "Rejected",
|
|
"tasks.title": "Tasks",
|
|
"tasks.newTask": "New Task",
|
|
"tasks.editTask": "Edit Task",
|
|
"tasks.createTask": "Create Task",
|
|
"tasks.saveChanges": "Save Changes",
|
|
"tasks.taskTitle": "Title",
|
|
"tasks.description": "Description",
|
|
"tasks.priority": "Priority",
|
|
"tasks.dueDate": "Due Date",
|
|
"tasks.assignTo": "Assign to",
|
|
"tasks.allTasks": "All Tasks",
|
|
"tasks.assignedToMe": "Assigned to Me",
|
|
"tasks.createdByMe": "Created by Me",
|
|
"tasks.byTeamMember": "By Team Member",
|
|
"tasks.noTasks": "No tasks yet",
|
|
"tasks.noMatch": "No tasks match this filter",
|
|
"tasks.createFirst": "Create a task to get started",
|
|
"tasks.tryFilter": "Try a different filter",
|
|
"tasks.deleteTask": "Delete Task?",
|
|
"tasks.deleteConfirm": "Are you sure you want to delete this task? This action cannot be undone.",
|
|
"tasks.todo": "To Do",
|
|
"tasks.in_progress": "In Progress",
|
|
"tasks.done": "Done",
|
|
"tasks.start": "Start",
|
|
"tasks.complete": "Complete",
|
|
"tasks.from": "From:",
|
|
"tasks.assignedTo": "Assigned to:",
|
|
"tasks.task": "task",
|
|
"tasks.tasks": "tasks",
|
|
"tasks.of": "of",
|
|
"tasks.priority.low": "Low",
|
|
"tasks.priority.medium": "Medium",
|
|
"tasks.priority.high": "High",
|
|
"tasks.priority.urgent": "Urgent",
|
|
"tasks.created": "Task created successfully!",
|
|
"tasks.updated": "Task updated successfully!",
|
|
"tasks.deleted": "Task deleted successfully!",
|
|
"tasks.statusUpdated": "Task status updated!",
|
|
"tasks.canOnlyEditOwn": "You can only edit your own tasks.",
|
|
"tasks.search": "Search tasks...",
|
|
"tasks.board": "Board",
|
|
"tasks.list": "List",
|
|
"tasks.calendar": "Calendar",
|
|
"tasks.filters": "Filters",
|
|
"tasks.allProjects": "All Projects",
|
|
"tasks.allBrands": "All Brands",
|
|
"tasks.allPriorities": "All Priorities",
|
|
"tasks.allStatuses": "All Statuses",
|
|
"tasks.allAssignees": "All Assignees",
|
|
"tasks.allCreators": "All Creators",
|
|
"tasks.overdue": "Overdue",
|
|
"tasks.clearFilters": "Clear Filters",
|
|
"tasks.details": "Details",
|
|
"tasks.discussion": "Discussion",
|
|
"tasks.unscheduled": "Unscheduled",
|
|
"tasks.today": "Today",
|
|
"tasks.project": "Project",
|
|
"tasks.brand": "Brand",
|
|
"tasks.status": "Status",
|
|
"tasks.creator": "Creator",
|
|
"tasks.assignee": "Assignee",
|
|
"tasks.commentCount": "{n} comments",
|
|
"tasks.dueDateRange": "Due Date",
|
|
"tasks.noProject": "No project",
|
|
"tasks.createdBy": "Created by",
|
|
"tasks.startDate": "Start Date",
|
|
"tasks.attachments": "Attachments",
|
|
"tasks.uploadFile": "Upload file",
|
|
"tasks.setAsThumbnail": "Set as thumbnail",
|
|
"tasks.removeThumbnail": "Remove thumbnail",
|
|
"tasks.thumbnail": "Thumbnail",
|
|
"tasks.dropOrClick": "Drop file or click to upload",
|
|
"projects.thumbnail": "Thumbnail",
|
|
"projects.uploadThumbnail": "Upload Thumbnail",
|
|
"projects.changeThumbnail": "Change Thumbnail",
|
|
"projects.removeThumbnail": "Remove Thumbnail",
|
|
"team.title": "Team",
|
|
"team.members": "Team Members",
|
|
"team.addMember": "Add Member",
|
|
"team.memberAdded": "Member added successfully",
|
|
"team.newMember": "New Team Member",
|
|
"team.editMember": "Edit Team Member",
|
|
"team.myProfile": "My Profile",
|
|
"team.editProfile": "Edit My Profile",
|
|
"team.name": "Name",
|
|
"team.email": "Email",
|
|
"team.password": "Password",
|
|
"team.teamRole": "Team Role",
|
|
"team.phone": "Phone",
|
|
"team.brands": "Brands",
|
|
"team.brandsHelp": "Comma-separated brand names",
|
|
"team.removeMember": "Remove Team Member?",
|
|
"team.removeConfirm": "Are you sure you want to remove {name}? This action cannot be undone.",
|
|
"team.noMembers": "No team members",
|
|
"team.backToTeam": "Back to Team",
|
|
"team.totalTasks": "Total Tasks",
|
|
"team.saveProfile": "Save Profile",
|
|
"team.saveChanges": "Save Changes",
|
|
"team.member": "team member",
|
|
"team.membersPlural": "team members",
|
|
"team.fullName": "Full name",
|
|
"team.defaultPassword": "Default: changeme123",
|
|
"team.confirmPassword": "Confirm Password",
|
|
"team.passwordsDoNotMatch": "Passwords do not match",
|
|
"team.adminActions": "Admin Actions",
|
|
"team.newPassword": "New password (min 6 characters)",
|
|
"team.changePassword": "Change Password",
|
|
"team.passwordChanged": "Password changed successfully",
|
|
"team.optional": "(optional)",
|
|
"team.fixedRole": "Fixed role for managers",
|
|
"team.remove": "Remove",
|
|
"team.noTasks": "No tasks",
|
|
"team.toDo": "To Do",
|
|
"team.inProgress": "In Progress",
|
|
"campaigns.title": "Campaigns",
|
|
"campaigns.newCampaign": "New Campaign",
|
|
"campaigns.noCampaigns": "No campaigns",
|
|
"assets.title": "Assets",
|
|
"assets.upload": "Upload",
|
|
"assets.noAssets": "No assets",
|
|
"brands.title": "Brands",
|
|
"brands.addBrand": "Add Brand",
|
|
"brands.editBrand": "Edit Brand",
|
|
"brands.deleteBrand": "Delete Brand?",
|
|
"brands.deleteBrandConfirm": "Are you sure you want to delete this brand? Posts and campaigns linked to it will lose their brand association.",
|
|
"brands.noBrands": "No brands yet",
|
|
"brands.brandName": "Name (English)",
|
|
"brands.brandNameAr": "Name (Arabic)",
|
|
"brands.brandPriority": "Priority",
|
|
"brands.brandIcon": "Icon",
|
|
"brands.logo": "Logo",
|
|
"brands.uploadLogo": "Upload Logo",
|
|
"brands.changeLogo": "Change Logo",
|
|
"brands.manageBrands": "Manage your organization's brands",
|
|
"settings.title": "Settings",
|
|
"settings.language": "Language",
|
|
"settings.english": "English",
|
|
"settings.arabic": "Arabic",
|
|
"settings.restartTutorial": "Restart Tutorial",
|
|
"settings.tutorialDesc": "Need a refresher? Restart the interactive tutorial to learn about all the features of Rawaj.",
|
|
"settings.general": "General",
|
|
"settings.onboardingTutorial": "Onboarding Tutorial",
|
|
"settings.tutorialRestarted": "Tutorial Restarted!",
|
|
"settings.restarting": "Restarting...",
|
|
"settings.reloadingPage": "Reloading page to start tutorial...",
|
|
"settings.brands": "Brands",
|
|
"settings.manageBrands": "Manage your brands and their display names",
|
|
"settings.addBrand": "Add Brand",
|
|
"settings.editBrand": "Edit Brand",
|
|
"settings.brandName": "Name (English)",
|
|
"settings.brandNameAr": "Name (Arabic)",
|
|
"settings.brandPriority": "Priority",
|
|
"settings.brandIcon": "Icon",
|
|
"settings.deleteBrand": "Delete Brand?",
|
|
"settings.deleteBrandConfirm": "Are you sure you want to delete this brand? Posts and campaigns linked to it will lose their brand association.",
|
|
"settings.noBrands": "No brands yet. Add your first brand.",
|
|
"settings.moreComingSoon": "More Settings Coming Soon",
|
|
"settings.additionalSettings": "Additional settings for notifications, display preferences, and more will be added here.",
|
|
"settings.currency": "Currency",
|
|
"settings.currencyHint": "This currency will be used across all financial pages.",
|
|
"settings.preferences": "Manage your preferences and app settings",
|
|
"tutorial.skip": "Skip Tutorial",
|
|
"tutorial.next": "Next",
|
|
"tutorial.prev": "Back",
|
|
"tutorial.finish": "Finish",
|
|
"tutorial.of": "of",
|
|
"tutorial.step": "Step",
|
|
"tutorial.dashboard.title": "Dashboard",
|
|
"tutorial.dashboard.desc": "Your command center. See campaign performance, task progress, and team activity at a glance.",
|
|
"tutorial.campaigns.title": "Campaigns",
|
|
"tutorial.campaigns.desc": "Plan and manage marketing campaigns across all brands and platforms.",
|
|
"tutorial.posts.title": "Post Production",
|
|
"tutorial.posts.desc": "Create, review, and publish content. Drag posts through your workflow pipeline.",
|
|
"tutorial.tasks.title": "Tasks",
|
|
"tutorial.tasks.desc": "Assign and track tasks. Filter by who assigned them or who they're assigned to.",
|
|
"tutorial.team.title": "Team",
|
|
"tutorial.team.desc": "Your team directory. Complete your profile and see who you're working with.",
|
|
"tutorial.assets.title": "Assets",
|
|
"tutorial.assets.desc": "Upload and manage creative assets — images, videos, and documents.",
|
|
"tutorial.newPost.title": "Create Content",
|
|
"tutorial.newPost.desc": "Start creating content here. Pick your brand, platforms, and assign it to a team member.",
|
|
"tutorial.filters.title": "Filter & Focus",
|
|
"tutorial.filters.desc": "Use filters to focus on specific brands, platforms, or team members.",
|
|
"login.title": "Rawaj",
|
|
"login.subtitle": "Sign in to continue",
|
|
"login.forgotPassword": "Forgot password?",
|
|
"login.defaultCreds": "Default credentials:",
|
|
"forgotPassword.title": "Forgot Password",
|
|
"forgotPassword.subtitle": "Enter your email to receive a reset link",
|
|
"forgotPassword.emailPlaceholder": "your@email.com",
|
|
"forgotPassword.submit": "Send Reset Link",
|
|
"forgotPassword.sending": "Sending...",
|
|
"forgotPassword.success": "If an account with that email exists, a reset link has been sent.",
|
|
"forgotPassword.backToLogin": "Back to Login",
|
|
"forgotPassword.error": "Something went wrong. Please try again.",
|
|
"resetPassword.title": "Reset Password",
|
|
"resetPassword.subtitle": "Enter your new password",
|
|
"resetPassword.newPassword": "New Password",
|
|
"resetPassword.confirmPassword": "Confirm Password",
|
|
"resetPassword.submit": "Reset Password",
|
|
"resetPassword.resetting": "Resetting...",
|
|
"resetPassword.success": "Password has been reset. You can now log in.",
|
|
"resetPassword.invalidToken": "Invalid or expired reset link.",
|
|
"resetPassword.goToLogin": "Go to Login",
|
|
"resetPassword.passwordMismatch": "Passwords do not match",
|
|
"resetPassword.error": "Failed to reset password. The link may have expired.",
|
|
"comments.title": "Discussion",
|
|
"comments.noComments": "No comments yet. Start the conversation.",
|
|
"comments.placeholder": "Write a comment...",
|
|
"comments.justNow": "Just now",
|
|
"comments.minutesAgo": "{n}m ago",
|
|
"comments.hoursAgo": "{n}h ago",
|
|
"comments.daysAgo": "{n}d ago",
|
|
"profile.completeYourProfile": "Complete Your Profile",
|
|
"profile.completeDesc": "Please complete your profile to access all features and help your team find you.",
|
|
"profile.completeProfileBtn": "Complete Profile",
|
|
"profile.later": "Later",
|
|
"timeline.title": "Timeline",
|
|
"timeline.day": "Day",
|
|
"timeline.week": "Week",
|
|
"timeline.today": "Today",
|
|
"timeline.startDate": "Start",
|
|
"timeline.endDate": "End",
|
|
"timeline.assignee": "Assignee",
|
|
"timeline.status": "Status",
|
|
"timeline.dragToMove": "Drag to move",
|
|
"timeline.dragToResize": "Drag edges to resize",
|
|
"timeline.noItems": "No items to display",
|
|
"timeline.addItems": "Add items with dates to see the timeline",
|
|
"timeline.tracks": "Tracks",
|
|
"timeline.timeline": "Timeline",
|
|
"timeline.item": "Item",
|
|
"timeline.month": "Month",
|
|
"timeline.compact": "Compact",
|
|
"timeline.expand": "Expand",
|
|
"timeline.resetColor": "Reset to default",
|
|
"timeline.changeColor": "Change color",
|
|
"timeline.compactBars": "Compact bars",
|
|
"timeline.expandedBars": "Expanded bars",
|
|
"posts.details": "Details",
|
|
"posts.platformsLinks": "Platforms & Links",
|
|
"posts.discussion": "Discussion",
|
|
"campaigns.details": "Details",
|
|
"campaigns.performance": "Performance",
|
|
"campaigns.discussion": "Discussion",
|
|
"campaigns.name": "Name",
|
|
"campaigns.description": "Description",
|
|
"campaigns.brand": "Brand",
|
|
"campaigns.status": "Status",
|
|
"campaigns.platforms": "Platforms",
|
|
"campaigns.startDate": "Start Date",
|
|
"campaigns.endDate": "End Date",
|
|
"campaigns.budget": "Budget",
|
|
"campaigns.goals": "Goals",
|
|
"campaigns.notes": "Notes",
|
|
"campaigns.budgetSpent": "Budget Spent",
|
|
"campaigns.revenue": "Revenue",
|
|
"campaigns.impressions": "Impressions",
|
|
"campaigns.clicks": "Clicks",
|
|
"campaigns.conversions": "Conversions",
|
|
"campaigns.createCampaign": "Create Campaign",
|
|
"campaigns.editCampaign": "Edit Campaign",
|
|
"campaigns.deleteCampaign": "Delete Campaign?",
|
|
"campaigns.deleteConfirm": "Are you sure you want to delete this campaign? All associated data will be removed. This action cannot be undone.",
|
|
"campaigns.tracks": "Tracks",
|
|
"campaigns.addTrack": "Add Track",
|
|
"campaigns.noTracks": "No tracks yet. Add organic, paid, or SEO tracks to organize this campaign.",
|
|
"campaigns.postsLinked": "posts linked",
|
|
"campaigns.team": "Team",
|
|
"campaigns.assignMembers": "Assign Members",
|
|
"campaigns.linkedPosts": "Linked Posts",
|
|
"campaigns.notFound": "Campaign not found.",
|
|
"common.goBack": "Go back",
|
|
"finance.allocated": "allocated",
|
|
"tracks.details": "Details",
|
|
"tracks.metrics": "Metrics",
|
|
"tracks.trackName": "Track Name",
|
|
"tracks.type": "Type",
|
|
"tracks.platform": "Platform",
|
|
"tracks.budgetAllocated": "Budget Allocated",
|
|
"tracks.status": "Status",
|
|
"tracks.notes": "Notes",
|
|
"tracks.budgetSpent": "Budget Spent",
|
|
"tracks.revenue": "Revenue",
|
|
"tracks.addTrack": "Add Track",
|
|
"tracks.editTrack": "Edit Track",
|
|
"tracks.deleteTrack": "Delete Track?",
|
|
"tracks.deleteConfirm": "Are you sure you want to delete this track? This action cannot be undone.",
|
|
"projects.details": "Details",
|
|
"projects.discussion": "Discussion",
|
|
"projects.name": "Name",
|
|
"projects.description": "Description",
|
|
"projects.brand": "Brand",
|
|
"projects.owner": "Owner",
|
|
"projects.status": "Status",
|
|
"projects.startDate": "Start Date",
|
|
"projects.dueDate": "Due Date",
|
|
"projects.editProject": "Edit Project",
|
|
"projects.deleteProject": "Delete Project?",
|
|
"projects.deleteConfirm": "Are you sure you want to delete this project? This action cannot be undone.",
|
|
"team.details": "Details",
|
|
"team.workload": "Workload",
|
|
"team.recentTasks": "Recent Tasks",
|
|
"team.recentPosts": "Recent Posts",
|
|
"team.modules": "Modules",
|
|
"team.selectBrands": "Select brands...",
|
|
"team.gridView": "Grid View",
|
|
"team.teamsView": "Teams View",
|
|
"team.unassigned": "Unassigned",
|
|
"modules.marketing": "Marketing",
|
|
"modules.projects": "Projects",
|
|
"modules.finance": "Finance",
|
|
"modules.issues": "Issues",
|
|
"teams.title": "Teams",
|
|
"teams.teams": "Teams",
|
|
"teams.createTeam": "Create Team",
|
|
"teams.editTeam": "Edit Team",
|
|
"teams.deleteTeam": "Delete Team?",
|
|
"teams.deleteConfirm": "Are you sure you want to delete this team? This action cannot be undone.",
|
|
"teams.name": "Team Name",
|
|
"teams.description": "Description",
|
|
"teams.members": "members",
|
|
"teams.details": "Details",
|
|
"teams.noTeams": "No teams yet",
|
|
"teams.selectMembers": "Search members...",
|
|
"dates.today": "Today",
|
|
"dates.yesterday": "Yesterday",
|
|
"dates.thisWeek": "This Week",
|
|
"dates.lastWeek": "Last Week",
|
|
"dates.thisMonth": "This Month",
|
|
"dates.lastMonth": "Last Month",
|
|
"dates.thisQuarter": "This Quarter",
|
|
"dates.thisYear": "This Year",
|
|
"dates.customRange": "Custom Range",
|
|
"dates.clearDates": "Clear Dates",
|
|
"dashboard.myTasks": "My Tasks",
|
|
"dashboard.projectProgress": "Project Progress",
|
|
"dashboard.noProjectsYet": "No projects yet",
|
|
"finance.project": "Project",
|
|
"finance.projectBudget": "Project Budget",
|
|
"finance.projectBreakdown": "Project Breakdown",
|
|
"finance.budgetFor": "Budget for",
|
|
"budgets.title": "Budgets",
|
|
"budgets.subtitle": "Add and manage budget entries — track source, destination, and allocation",
|
|
"budgets.addEntry": "Add Entry",
|
|
"budgets.editEntry": "Edit Entry",
|
|
"budgets.deleteEntry": "Delete Entry?",
|
|
"budgets.deleteConfirm": "Are you sure you want to delete this budget entry? This action cannot be undone.",
|
|
"budgets.searchEntries": "Search entries...",
|
|
"budgets.allCategories": "All Categories",
|
|
"budgets.allDestinations": "All Destinations",
|
|
"budgets.noEntries": "No budget entries yet. Add your first entry.",
|
|
"budgets.noMatch": "No entries match your filters.",
|
|
"budgets.label": "Label",
|
|
"budgets.labelPlaceholder": "e.g., Q1 Marketing Budget, Equipment Purchase...",
|
|
"budgets.amount": "Amount",
|
|
"budgets.dateReceived": "Date Received",
|
|
"budgets.source": "Source",
|
|
"budgets.sourcePlaceholder": "e.g., CEO Approval, Annual Budget...",
|
|
"budgets.destination": "Destination",
|
|
"budgets.selectDestination": "Select destination...",
|
|
"budgets.companyCard": "Company Card",
|
|
"budgets.personalAccount": "Personal Account",
|
|
"budgets.corporateAccount": "Corporate Account",
|
|
"budgets.otherDest": "Other",
|
|
"budgets.category": "Category",
|
|
"budgets.linkedTo": "Linked To",
|
|
"budgets.noCampaign": "No campaign",
|
|
"budgets.noProject": "No project",
|
|
"budgets.general": "General",
|
|
"budgets.notes": "Notes",
|
|
"budgets.notesPlaceholder": "Any details about this budget entry...",
|
|
"budgets.date": "Date",
|
|
"budgets.type": "Type",
|
|
"budgets.income": "Income",
|
|
"budgets.expense": "Expense",
|
|
"budgets.allTypes": "All Types",
|
|
"budgets.net": "Net",
|
|
"budgets.dateExpensed": "Date",
|
|
"dashboard.expenses": "Expenses",
|
|
"finance.expenses": "Total Expenses",
|
|
"finance.totalReceived": "Total Received",
|
|
"finance.totalSpent": "Total Spent",
|
|
"finance.remaining": "Remaining",
|
|
"finance.revenue": "Revenue",
|
|
"finance.globalROI": "Global ROI",
|
|
"finance.budgetAllocation": "Budget Allocation",
|
|
"finance.manageBudgets": "Manage Budgets",
|
|
"finance.campaigns": "Campaigns",
|
|
"finance.projects": "Projects",
|
|
"finance.unallocated": "Unallocated",
|
|
"finance.budgetUtilization": "Budget Utilization",
|
|
"finance.globalPerformance": "Global Performance",
|
|
"finance.impressions": "Impressions",
|
|
"finance.clicks": "Clicks",
|
|
"finance.conversions": "Conversions",
|
|
"finance.campaignBreakdown": "Campaign Breakdown",
|
|
"finance.allocatedFunds": "Allocated Funds",
|
|
"finance.requestBudget": "Request Budget",
|
|
"finance.budgetRequests": "Budget Requests",
|
|
"finance.pendingApproval": "pending CEO approval",
|
|
"finance.justification": "Justification",
|
|
"finance.earmarkFor": "Earmark for",
|
|
"finance.submitRequest": "Submit Request",
|
|
"finance.cancelRequest": "Cancel Request",
|
|
"finance.approved": "Approved",
|
|
"finance.rejected": "Rejected",
|
|
"finance.cancelled": "Cancelled",
|
|
"finance.pending": "Pending",
|
|
"finance.ceoNote": "CEO Note",
|
|
"finance.requestPending": "budget request(s) pending CEO approval",
|
|
"finance.insufficientBudget": "Insufficient budget",
|
|
"finance.availableBudget": "Available",
|
|
"finance.requestMore": "Request more funds",
|
|
"finance.noCeoEmail": "CEO email not configured. Go to Settings.",
|
|
"finance.amount": "Amount",
|
|
"finance.justificationPlaceholder": "Why is this budget needed?",
|
|
"finance.optional": "Optional",
|
|
"settings.budgetApproval": "Budget Approval",
|
|
"settings.ceoEmail": "CEO / Budget Approver Email",
|
|
"settings.ceoEmailHint": "Email address that receives budget approval requests",
|
|
"budgetApproval.title": "Budget Approval",
|
|
"budgetApproval.amount": "Requested Amount",
|
|
"budgetApproval.requestedBy": "Requested by",
|
|
"budgetApproval.justification": "Justification",
|
|
"budgetApproval.earmarkedFor": "Earmarked for",
|
|
"budgetApproval.approve": "Approve",
|
|
"budgetApproval.reject": "Reject",
|
|
"budgetApproval.addNote": "Add a note (optional)",
|
|
"budgetApproval.approved": "This request has been approved.",
|
|
"budgetApproval.rejected": "This request has been rejected.",
|
|
"budgetApproval.expired": "This request has expired.",
|
|
"budgetApproval.alreadyHandled": "This request has already been processed.",
|
|
"finance.ofBudget": "of budget",
|
|
"settings.uploads": "Uploads",
|
|
"settings.maxFileSize": "Maximum File Size",
|
|
"settings.maxFileSizeHint": "Maximum allowed file size for attachments (1-500 MB)",
|
|
"settings.mb": "MB",
|
|
"settings.saved": "Settings saved!",
|
|
"tasks.maxFileSize": "Max file size: {size} MB",
|
|
"tasks.fileTooLarge": "File \"{name}\" is too large ({size} MB). Maximum allowed: {max} MB.",
|
|
"issues.details": "Details",
|
|
"issues.actions": "Actions",
|
|
"issues.updates": "Updates",
|
|
"issues.board": "Board",
|
|
"issues.list": "List",
|
|
"issues.statusUpdated": "Issue status updated!",
|
|
"issues.dropHere": "Drop here",
|
|
"issues.noIssuesInColumn": "No issues",
|
|
"artefacts.details": "Details",
|
|
"artefacts.review": "Review",
|
|
"artefacts.grid": "Grid",
|
|
"artefacts.list": "List",
|
|
"artefacts.allCreators": "All Creators",
|
|
"artefacts.allProjects": "All Projects",
|
|
"artefacts.allCampaigns": "All Campaigns",
|
|
"artefacts.project": "Project",
|
|
"artefacts.campaign": "Campaign",
|
|
"artefacts.sortRecentlyUpdated": "Recently Updated",
|
|
"artefacts.sortNewest": "Newest First",
|
|
"artefacts.sortOldest": "Oldest First",
|
|
"artefacts.sortTitleAZ": "Title A-Z",
|
|
|
|
"login.initialSetup": "Initial Setup",
|
|
"login.initialSetupDesc": "Create your admin account to get started",
|
|
"login.createAccount": "Create Account",
|
|
"login.signIn": "Sign In",
|
|
"login.fullName": "Full Name",
|
|
"login.fullNamePlaceholder": "Your name",
|
|
"login.email": "Email",
|
|
"login.password": "Password",
|
|
"login.passwordPlaceholder": "Choose a strong password",
|
|
"login.confirmPassword": "Confirm Password",
|
|
"login.confirmPasswordPlaceholder": "Re-enter your password",
|
|
"login.passwordMismatch": "Passwords do not match",
|
|
"login.setupFailed": "Setup failed",
|
|
"login.accountCreated": "Account created. You can now log in.",
|
|
"login.welcomeBack": "Welcome Back",
|
|
"login.signInDesc": "Sign in to continue",
|
|
"login.invalidCredentials": "Invalid email or password",
|
|
"login.creatingAccount": "Creating account...",
|
|
|
|
"users.title": "User Management",
|
|
"users.addUser": "Add User",
|
|
"users.addNewUser": "Add New User",
|
|
"users.editUser": "Edit User",
|
|
"users.deleteUser": "Delete User",
|
|
"users.deleteUserConfirmTitle": "Delete User?",
|
|
"users.deleteConfirm": "Are you sure you want to delete this user? This action cannot be undone.",
|
|
"users.userSingular": "user",
|
|
"users.usersPlural": "users",
|
|
"users.noUsers": "No users found",
|
|
"users.you": "You",
|
|
"users.name": "Name",
|
|
"users.fullNamePlaceholder": "Full name",
|
|
"users.email": "Email",
|
|
"users.password": "Password",
|
|
"users.confirmPassword": "Confirm Password",
|
|
"users.role": "Role",
|
|
"users.created": "Created",
|
|
"users.actions": "Actions",
|
|
"users.leaveBlankToKeep": "leave blank to keep current",
|
|
"users.saveChanges": "Save Changes",
|
|
"users.passwordMismatch": "Passwords do not match",
|
|
"users.passwordRequired": "Password is required for new users",
|
|
"users.saveFailed": "Failed to save user",
|
|
"users.preferredLanguage": "Preferred Language",
|
|
"users.deleteFailed": "Failed to delete user",
|
|
|
|
"settings.saveFailed": "Failed to save",
|
|
"settings.restartTutorialFailed": "Failed to restart tutorial",
|
|
|
|
"artefacts.title": "Artefacts",
|
|
"artefacts.subtitle": "Content approval workflow with versioning",
|
|
"artefacts.newArtefact": "New Artefact",
|
|
"artefacts.createArtefact": "Create Artefact",
|
|
"artefacts.searchArtefacts": "Search artefacts...",
|
|
"artefacts.allBrands": "All Brands",
|
|
"artefacts.allStatuses": "All Statuses",
|
|
"artefacts.allTypes": "All Types",
|
|
"artefacts.noArtefacts": "No artefacts found",
|
|
"artefacts.titleLabel": "Title",
|
|
"artefacts.titlePlaceholder": "Artefact title",
|
|
"artefacts.type": "Type",
|
|
"artefacts.status": "Status",
|
|
"artefacts.brand": "Brand",
|
|
"artefacts.creator": "Creator",
|
|
"artefacts.approvers": "Approvers",
|
|
"artefacts.version": "Version",
|
|
"artefacts.updated": "Updated",
|
|
"artefacts.description": "Description",
|
|
"artefacts.descriptionPlaceholder": "Brief description",
|
|
"artefacts.titleRequired": "Title is required",
|
|
"artefacts.created": "Artefact created",
|
|
"artefacts.createFailed": "Failed to create artefact",
|
|
"artefacts.deleted": "Artefact deleted",
|
|
"artefacts.deleteFailed": "Failed to delete artefact",
|
|
"artefacts.loadFailed": "Failed to load artefacts",
|
|
"artefacts.creating": "Creating...",
|
|
"artefacts.status.draft": "Draft",
|
|
"artefacts.status.pendingReview": "Pending Review",
|
|
"artefacts.status.approved": "Approved",
|
|
"artefacts.status.rejected": "Rejected",
|
|
"artefacts.status.revisionRequested": "Revision Requested",
|
|
|
|
"review.contentReview": "Content Review",
|
|
"review.yourReview": "Your Review",
|
|
"review.approve": "Approve",
|
|
"review.reject": "Reject",
|
|
"review.requestRevision": "Request Revision",
|
|
"review.reviewer": "Reviewer",
|
|
"review.selectYourName": "Select your name...",
|
|
"review.enterYourName": "Enter your name",
|
|
"review.feedbackOptional": "Feedback (optional)",
|
|
"review.feedbackPlaceholder": "Share your thoughts, suggestions, or required changes...",
|
|
"review.thankYou": "Thank You!",
|
|
"review.notAvailable": "Review Not Available",
|
|
"review.alreadyReviewed": "This artefact has already been reviewed.",
|
|
"review.statusLabel": "Status",
|
|
"review.reviewedBy": "Reviewed by",
|
|
"review.poweredBy": "Powered by Rawaj",
|
|
"review.loadFailed": "Failed to load artefact",
|
|
"review.actionFailed": "Action failed",
|
|
"review.actionCompleted": "Action completed successfully",
|
|
"review.enterName": "Please select or enter your name",
|
|
"review.confirmApprove": "Approve this artefact?",
|
|
"review.confirmReject": "Reject this artefact?",
|
|
"review.feedbackRequired": "Please provide feedback for revision request",
|
|
"review.contentLanguages": "Content Languages",
|
|
"review.redirectReview": "Not the right reviewer? Redirect to someone else",
|
|
"review.redirectDesc": "Select a team member to redirect this review to:",
|
|
"review.selectNewReviewer": "Select new reviewer...",
|
|
"review.redirect": "Redirect",
|
|
"review.redirected": "Review redirected successfully",
|
|
"review.content": "Content",
|
|
"review.designFiles": "Design Files",
|
|
"review.videos": "Videos",
|
|
"review.googleDriveVideo": "Google Drive Video",
|
|
"review.attachments": "Attachments",
|
|
"review.previousComments": "Previous Comments",
|
|
"review.version": "Version",
|
|
|
|
"common.failedToSave": "Failed to save",
|
|
"common.copiedToClipboard": "Copied to clipboard!",
|
|
"team.failedToSaveTeam": "Failed to save team",
|
|
"posts.canOnlyEditOwn": "You can only edit your own posts",
|
|
"assets.uploadFailed": "Upload failed",
|
|
"assets.failedToDelete": "Failed to delete asset",
|
|
"issues.failedToAddComment": "Failed to add comment",
|
|
"issues.failedToUploadFile": "Failed to upload file",
|
|
"issues.failedToSubmit": "Failed to submit issue. Please try again.",
|
|
"issues.failedToUpdateStatus": "Failed to update status",
|
|
"issues.failedToResolve": "Failed to resolve issue",
|
|
"issues.failedToDecline": "Failed to decline issue",
|
|
"issues.failedToUpdateAssignment": "Failed to update assignment",
|
|
"issues.failedToSaveNotes": "Failed to save notes",
|
|
"issues.failedToAddUpdate": "Failed to add update",
|
|
"issues.failedToDeleteAttachment": "Failed to delete attachment",
|
|
"issues.trackingLinkCopied": "Tracking link copied to clipboard!",
|
|
"issues.deleteAttachment": "Delete attachment?",
|
|
"issues.deleteAttachmentDesc": "This action cannot be undone.",
|
|
"artefacts.deleteLanguage": "Delete this language?",
|
|
"artefacts.deleteLanguageDesc": "The content for this language will be removed.",
|
|
"artefacts.deleteAttachment": "Delete this attachment?",
|
|
"artefacts.deleteAttachmentDesc": "This action cannot be undone.",
|
|
"artefacts.deleteArtefact": "Delete this artefact?",
|
|
"artefacts.deleteArtefactDesc": "This action cannot be undone.",
|
|
"review.confirmApproveDesc": "Are you sure you want to approve this artefact?",
|
|
"review.confirmRejectDesc": "Are you sure you want to reject this artefact?",
|
|
|
|
"common.selected": "selected",
|
|
"common.deleteSelected": "Delete Selected",
|
|
"common.clearSelection": "Clear selection",
|
|
"common.bulkDeleteConfirm": "Delete {count} items?",
|
|
"common.bulkDeleteDesc": "This action cannot be undone.",
|
|
"common.selectAll": "Select all",
|
|
|
|
"issues.team": "Team",
|
|
"issues.allTeams": "All Teams",
|
|
"issues.copyPublicLink": "Copy Public Link",
|
|
"issues.linkCopied": "Link copied!",
|
|
"issues.selectTeam": "Select a team",
|
|
"issues.publicSubmitTeam": "Which team should handle your issue?",
|
|
"team.copyIssueLink": "Copy Issue Link",
|
|
"team.copyGenericIssueLink": "Copy Public Issue Link",
|
|
"team.permissionLevel": "Permission Level",
|
|
"team.role": "Role",
|
|
"team.selectRole": "Select role...",
|
|
"common.team": "Team",
|
|
"common.noTeam": "No team",
|
|
"common.none": "None",
|
|
"common.success": "Success",
|
|
"common.error": "An error occurred",
|
|
"settings.roles": "Roles",
|
|
"settings.rolesDesc": "Define job roles like Designer, Strategist, etc. These are assigned to team members separately from permission levels.",
|
|
"settings.addRole": "Add Role",
|
|
"settings.roleName": "Role name",
|
|
"settings.roleColor": "Color",
|
|
"settings.deleteRoleConfirm": "Are you sure you want to delete this role?",
|
|
"settings.noRoles": "No roles defined yet. Add your first role.",
|
|
|
|
"header.dashboard": "Dashboard",
|
|
"header.posts": "Post Production",
|
|
"header.assets": "Assets",
|
|
"header.campaigns": "Campaigns",
|
|
"header.finance": "Finance",
|
|
"header.projects": "Projects",
|
|
"header.tasks": "My Tasks",
|
|
"header.team": "Team",
|
|
"header.calendar": "Post Calendar",
|
|
"header.artefacts": "Artefacts",
|
|
"header.brands": "Brands",
|
|
"header.budgets": "Budgets",
|
|
"header.issues": "Issues",
|
|
"header.settings": "Settings",
|
|
"header.translations": "Translations",
|
|
"header.copy": "Copy",
|
|
"header.postDetails": "Post Details",
|
|
"calendar.unscheduledPosts": "Unscheduled Posts",
|
|
"calendar.statusLegend": "Status Legend",
|
|
"header.users": "User Management",
|
|
"header.projectDetails": "Project Details",
|
|
"header.campaignDetails": "Campaign Details",
|
|
"header.page": "Page",
|
|
"header.superadmin": "Superadmin",
|
|
"header.manager": "Manager",
|
|
"header.contributor": "Contributor",
|
|
"header.passwordMismatch": "New passwords do not match",
|
|
"header.passwordMinLength": "New password must be at least 6 characters",
|
|
"header.passwordUpdateSuccess": "Password updated successfully",
|
|
"header.passwordUpdateFailed": "Failed to change password",
|
|
"header.userManagement": "User Management",
|
|
"header.changePassword": "Change Password",
|
|
"header.signOut": "Sign Out",
|
|
"header.currentPassword": "Current Password",
|
|
"header.newPassword": "New Password",
|
|
"header.confirmNewPassword": "Confirm New Password",
|
|
"header.updatePassword": "Update Password",
|
|
"header.saving": "Saving...",
|
|
|
|
"issues.title": "Issues",
|
|
"issues.subtitle": "Track and manage issue submissions",
|
|
"issues.searchPlaceholder": "Search issues...",
|
|
"issues.allStatuses": "All Statuses",
|
|
"issues.allCategories": "All Categories",
|
|
"issues.allTypes": "All Types",
|
|
"issues.allBrands": "All Brands",
|
|
"issues.allPriorities": "All Priorities",
|
|
"issues.clearAll": "Clear All",
|
|
"issues.noIssuesFound": "No issues found",
|
|
"issues.tryAdjustingFilters": "Try adjusting your filters",
|
|
"issues.noIssuesSubmitted": "No issues have been submitted yet",
|
|
"issues.issuesDeleted": "Issues deleted",
|
|
"issues.tableTitle": "Title",
|
|
"issues.tableSubmitter": "Submitter",
|
|
"issues.tableBrand": "Brand",
|
|
"issues.tableCategory": "Category",
|
|
"issues.tableType": "Type",
|
|
"issues.tablePriority": "Priority",
|
|
"issues.tableStatus": "Status",
|
|
"issues.tableAssignedTo": "Assigned To",
|
|
"issues.tableCreated": "Created",
|
|
|
|
"issues.typeRequest": "Request",
|
|
"issues.typeCorrection": "Correction",
|
|
"issues.typeComplaint": "Complaint",
|
|
"issues.typeSuggestion": "Suggestion",
|
|
"issues.typeOther": "Other",
|
|
|
|
"issues.priorityLow": "Low",
|
|
"issues.priorityMedium": "Medium",
|
|
"issues.priorityHigh": "High",
|
|
"issues.priorityUrgent": "Urgent",
|
|
|
|
"issues.submitterInfo": "Submitter Information",
|
|
"issues.nameLabel": "Name:",
|
|
"issues.emailLabel": "Email:",
|
|
"issues.phoneLabel": "Phone:",
|
|
"issues.submittedLabel": "Submitted:",
|
|
"issues.description": "Description",
|
|
"issues.noDescription": "No description provided",
|
|
"issues.assignedTo": "Assigned To",
|
|
"issues.unassigned": "Unassigned",
|
|
"issues.brandLabel": "Brand",
|
|
"issues.noBrand": "No brand",
|
|
"issues.internalNotes": "Internal Notes (Staff Only)",
|
|
"issues.internalNotesPlaceholder": "Internal notes not visible to submitter...",
|
|
"issues.resolutionSummary": "Resolution Summary (Public)",
|
|
"issues.resolvedOn": "Resolved on",
|
|
"issues.acknowledge": "Acknowledge",
|
|
"issues.startWork": "Start Work",
|
|
"issues.resolve": "Resolve",
|
|
"issues.decline": "Decline",
|
|
"issues.publicTrackingLink": "Public Tracking Link",
|
|
"issues.updatesTimeline": "Updates Timeline",
|
|
"issues.addUpdatePlaceholder": "Add an update...",
|
|
"issues.makePublic": "Make public (visible to submitter)",
|
|
"issues.addUpdate": "Add Update",
|
|
"issues.noUpdates": "No updates yet",
|
|
"issues.attachments": "Attachments",
|
|
"issues.clickToUpload": "Click to upload file",
|
|
"issues.uploading": "Uploading...",
|
|
"issues.download": "Download",
|
|
"issues.noAttachments": "No attachments",
|
|
"issues.resolveIssue": "Resolve Issue",
|
|
"issues.resolveSummaryHint": "Provide a resolution summary that will be visible to the submitter.",
|
|
"issues.resolutionPlaceholder": "Explain how this issue was resolved...",
|
|
"issues.markAsResolved": "Mark as Resolved",
|
|
"issues.resolving": "Resolving...",
|
|
"issues.declineIssue": "Decline Issue",
|
|
"issues.declineReasonHint": "Provide a reason for declining this issue. This will be visible to the submitter.",
|
|
"issues.declinePlaceholder": "Explain why this issue cannot be addressed...",
|
|
"issues.declining": "Declining...",
|
|
|
|
"artefacts.descriptionLabel": "Description",
|
|
"artefacts.descriptionFieldPlaceholder": "Add a description...",
|
|
"artefacts.approversLabel": "Approvers",
|
|
"artefacts.reviewer": "Reviewer",
|
|
"artefacts.selectReviewer": "Select a reviewer...",
|
|
"artefacts.versions": "Versions",
|
|
"artefacts.newVersion": "New Version",
|
|
"artefacts.languages": "Languages",
|
|
"artefacts.addLanguage": "Add Language",
|
|
"artefacts.noLanguages": "No languages added yet",
|
|
"artefacts.imagesLabel": "Images",
|
|
"artefacts.uploadImage": "Upload Image",
|
|
"artefacts.uploading": "Uploading...",
|
|
"artefacts.noImages": "No images uploaded yet",
|
|
"artefacts.videosLabel": "Videos",
|
|
"artefacts.addVideoBtn": "Add Video",
|
|
"artefacts.noVideos": "No videos added yet",
|
|
"artefacts.comments": "Comments",
|
|
"artefacts.sendComment": "Send",
|
|
"artefacts.addCommentPlaceholder": "Add a comment...",
|
|
"artefacts.submitForReview": "Submit for Review",
|
|
"artefacts.submitting": "Submitting...",
|
|
"artefacts.reviewLinkTitle": "Review Link (expires in 7 days)",
|
|
"artefacts.feedbackTitle": "Feedback",
|
|
"artefacts.approvedByLabel": "Approved by",
|
|
"artefacts.saveDraft": "Save",
|
|
"artefacts.savingDraft": "Saving...",
|
|
"artefacts.versionNotes": "Version Notes",
|
|
"artefacts.whatChanged": "What changed in this version?",
|
|
"artefacts.copyLanguages": "Copy languages from previous version",
|
|
"artefacts.createVersion": "Create Version",
|
|
"artefacts.creatingVersion": "Creating...",
|
|
"artefacts.languageLabel": "Language",
|
|
"artefacts.contentLabel": "Content",
|
|
"artefacts.selectLanguage": "Select a language...",
|
|
"artefacts.enterContent": "Enter the content in this language...",
|
|
"artefacts.addVideoTitle": "Add Video",
|
|
"artefacts.uploadFile": "Upload File",
|
|
"artefacts.chooseVideoFile": "Choose video file",
|
|
"artefacts.videoFormats": "MP4, MOV, AVI, etc.",
|
|
"artefacts.dropOrClickVideo": "Drop a video here or click to browse",
|
|
"artefacts.googleDriveLink": "Google Drive Link",
|
|
"artefacts.googleDriveUrl": "Google Drive URL",
|
|
"artefacts.driveUrlPlaceholder": "https://drive.google.com/file/d/...",
|
|
"artefacts.publiclyAccessible": "Paste a Google Drive share link. Make sure the file is publicly accessible.",
|
|
"artefacts.addLink": "Add Link",
|
|
"artefacts.adding": "Adding...",
|
|
"artefacts.googleDriveVideo": "Google Drive Video",
|
|
"artefacts.deleteArtefactTooltip": "Delete artefact",
|
|
"artefacts.saveDraftTooltip": "Save draft",
|
|
"artefacts.createNewVersion": "Create New Version",
|
|
"artefacts.failedLoadVersions": "Failed to load versions",
|
|
"artefacts.failedLoadVersionData": "Failed to load version data",
|
|
"artefacts.versionCreated": "New version created",
|
|
"artefacts.failedCreateVersion": "Failed to create version",
|
|
"artefacts.languageAdded": "Language added",
|
|
"artefacts.allFieldsRequired": "All fields are required",
|
|
"artefacts.failedAddLanguage": "Failed to add language",
|
|
"artefacts.languageDeleted": "Language deleted",
|
|
"artefacts.failedDeleteLanguage": "Failed to delete language",
|
|
"artefacts.fileUploaded": "File uploaded",
|
|
"artefacts.uploadFailed": "Upload failed",
|
|
"artefacts.videoLinkAdded": "Video link added",
|
|
"artefacts.failedAddVideoLink": "Failed to add video link",
|
|
"artefacts.enterDriveUrl": "Please enter a Google Drive URL",
|
|
"artefacts.attachmentDeleted": "Attachment deleted",
|
|
"artefacts.failedDeleteAttachment": "Failed to delete attachment",
|
|
"artefacts.submittedForReview": "Submitted for review!",
|
|
"artefacts.failedSubmitReview": "Failed to submit for review",
|
|
"artefacts.linkCopied": "Link copied to clipboard",
|
|
"artefacts.commentAdded": "Comment added",
|
|
"artefacts.failedAddComment": "Failed to add comment",
|
|
"artefacts.updated": "Updated",
|
|
"artefacts.failedUpdate": "Failed to update",
|
|
"artefacts.draftSaved": "Draft saved",
|
|
"artefacts.failedSaveDraft": "Failed to save draft",
|
|
"artefacts.titleRequired": "Title is required",
|
|
"artefacts.failedDelete": "Failed to delete",
|
|
|
|
"posts.images": "Images",
|
|
"posts.audio": "Audio",
|
|
"posts.videos": "Videos",
|
|
"posts.otherFiles": "Other Files",
|
|
"posts.addImage": "Add Image",
|
|
"posts.addAudio": "Add Audio",
|
|
"posts.addVideo": "Add Video",
|
|
"posts.dragToUpload": "Drag files here to upload",
|
|
"posts.assignedTo": "Assigned To",
|
|
"posts.approval": "Approval",
|
|
"posts.approvers": "Approvers",
|
|
"posts.selectApprovers": "Select approvers...",
|
|
"posts.scheduling": "Scheduling & Assignment",
|
|
"posts.content": "Content",
|
|
"posts.reject": "Reject",
|
|
"posts.submittedForReview": "Post submitted for review",
|
|
"posts.failedSubmitReview": "Failed to submit for review",
|
|
"posts.reviewLinkCopied": "Review link copied!",
|
|
"posts.reviewLinkTitle": "Review Link",
|
|
"posts.awaitingReview": "Awaiting Review",
|
|
"posts.awaitingReviewDesc": "This post is waiting for external approval.",
|
|
"posts.approvedBy": "Approved by",
|
|
"posts.rejectedBy": "Rejected by",
|
|
"posts.submitting": "Submitting...",
|
|
"posts.submitForReview": "Submit for Review",
|
|
"posts.schedulePost": "Schedule Post",
|
|
"review.postReview": "Post Review",
|
|
"review.createdBy": "Created by",
|
|
"review.confirmApprovePost": "Approve this post?",
|
|
"review.confirmRejectPost": "Reject this post?",
|
|
"review.confirmApprovePostDesc": "Are you sure you want to approve this post?",
|
|
"review.confirmRejectPostDesc": "Are you sure you want to reject this post? Please provide feedback explaining why.",
|
|
"review.feedbackRequired": "Feedback (required)",
|
|
"review.feedbackRequiredError": "Please provide feedback when rejecting",
|
|
"review.loadFailed": "Failed to load review",
|
|
"review.errorTitle": "Error",
|
|
"review.thankYou": "Thank you for your review!",
|
|
"review.approveSuccess": "Translation approved successfully!",
|
|
"review.rejectSuccess": "Translation has been rejected.",
|
|
"review.revisionSuccess": "Revision requested successfully.",
|
|
"review.nameRequired": "Please provide your name",
|
|
"review.yourReview": "Your Review",
|
|
"review.selectYourName": "Select your name",
|
|
"review.selectApprover": "Select approver...",
|
|
"review.yourName": "Your Name",
|
|
"review.enterYourName": "Enter your name...",
|
|
"review.feedback": "Feedback",
|
|
"review.feedbackPlaceholder": "Share your thoughts or feedback...",
|
|
"review.approve": "Approve",
|
|
"review.approved": "Approved",
|
|
"review.rejected": "Rejected",
|
|
"review.requestRevision": "Request Revision",
|
|
"review.reject": "Reject",
|
|
"review.statusLabel": "Status",
|
|
"review.reviewedBy": "Reviewed by",
|
|
"review.confirmReject": "Confirm Rejection",
|
|
"review.rejectConfirmDesc": "Are you sure you want to reject this translation? Please make sure you have provided feedback.",
|
|
"review.feedbackRequiredForReject": "Please provide feedback before rejecting.",
|
|
"posts.versions": "Versions",
|
|
"posts.newVersion": "New Version",
|
|
"posts.createNewVersion": "Create New Version",
|
|
"posts.createVersion": "Create Version",
|
|
"posts.creatingVersion": "Creating...",
|
|
"posts.whatChanged": "What changed in this version?",
|
|
"posts.copyLanguages": "Copy languages from previous version",
|
|
"posts.languages": "Languages",
|
|
"posts.addLanguage": "Add Language",
|
|
"posts.selectLanguage": "Select a language...",
|
|
"posts.enterContent": "Enter the content in this language...",
|
|
"posts.noLanguages": "No languages added yet",
|
|
"posts.noVersions": "No versions yet. Create one to start managing multilingual content and media.",
|
|
"posts.deleteLanguage": "Delete this language?",
|
|
"posts.deleteLanguageConfirm": "This will remove the language content from this version.",
|
|
"posts.media": "Media",
|
|
"posts.noMedia": "No media files uploaded",
|
|
|
|
"nav.translations": "Translations",
|
|
"translations.title": "Translations",
|
|
"translations.subtitle": "Manage content translations with approval workflow",
|
|
"translations.newTranslation": "New Translation",
|
|
"translations.createTranslation": "Create Translation",
|
|
"translations.searchTranslations": "Search translations...",
|
|
"translations.titleLabel": "Title",
|
|
"translations.titlePlaceholder": "e.g. Campaign tagline translation",
|
|
"translations.sourceLanguage": "Source Language",
|
|
"translations.sourceContent": "Source Content",
|
|
"translations.sourceContentPlaceholder": "Enter the original content to translate...",
|
|
"translations.description": "Description",
|
|
"translations.descriptionLabel": "Description",
|
|
"translations.descriptionPlaceholder": "Context or notes about this translation...",
|
|
"translations.brand": "Brand",
|
|
"translations.creator": "Creator",
|
|
"translations.approvers": "Approvers",
|
|
"translations.approversLabel": "Approvers",
|
|
"translations.status": "Status",
|
|
"translations.languagesLabel": "Languages",
|
|
"translations.languagesCount": "languages",
|
|
"translations.grid": "Grid",
|
|
"translations.list": "List",
|
|
"translations.allBrands": "All Brands",
|
|
"translations.allStatuses": "All Statuses",
|
|
"translations.allCreators": "All Creators",
|
|
"translations.status.draft": "Draft",
|
|
"translations.status.pendingReview": "Pending Review",
|
|
"translations.status.approved": "Approved",
|
|
"translations.status.rejected": "Rejected",
|
|
"translations.status.revisionRequested": "Revision Requested",
|
|
"translations.sortRecentlyUpdated": "Recently Updated",
|
|
"translations.sortNewest": "Newest First",
|
|
"translations.sortOldest": "Oldest First",
|
|
"translations.sortTitleAZ": "Title A-Z",
|
|
"translations.noTranslations": "No translations found",
|
|
"translations.loadFailed": "Failed to load translations",
|
|
"translations.titleRequired": "Title is required",
|
|
"translations.sourceContentRequired": "Source content is required",
|
|
"translations.created": "Translation created!",
|
|
"translations.createFailed": "Failed to create translation",
|
|
"translations.creating": "Creating...",
|
|
"translations.deleted": "Translation deleted!",
|
|
"translations.deleteFailed": "Failed to delete translation",
|
|
"translations.details": "Details",
|
|
"translations.translationTexts": "Translations",
|
|
"translations.review": "Review",
|
|
"translations.draftSaved": "Draft saved!",
|
|
"translations.failedSaveDraft": "Failed to save draft",
|
|
"translations.saveDraft": "Save Draft",
|
|
"translations.saveDraftTooltip": "Save changes to title and source content",
|
|
"translations.savingDraft": "Saving...",
|
|
"translations.updated": "Updated",
|
|
"translations.failedUpdate": "Failed to update",
|
|
"translations.addTranslation": "Add Translation",
|
|
"translations.translationAdded": "Translation added!",
|
|
"translations.failedAddTranslation": "Failed to add translation",
|
|
"translations.translationDeleted": "Translation deleted!",
|
|
"translations.failedDeleteTranslation": "Failed to delete translation",
|
|
"translations.noTranslationTexts": "No translations yet. Add one for each target language.",
|
|
"translations.allFieldsRequired": "Language and content are required",
|
|
"translations.languageLabel": "Language",
|
|
"translations.selectLanguage": "Select a language",
|
|
"translations.translatedContent": "Translated Content",
|
|
"translations.enterTranslatedContent": "Enter the translated content...",
|
|
"translations.deleteTranslation": "Delete Translation",
|
|
"translations.deleteTranslationDesc": "This will permanently delete this translation and all its language versions.",
|
|
"translations.deleteTranslationText": "Delete Translation Text",
|
|
"translations.deleteTranslationTextDesc": "This will remove this language translation.",
|
|
"translations.bulkDeleteDesc": "Delete selected translations?",
|
|
"translations.submitForReview": "Submit for Review",
|
|
"translations.submitting": "Submitting...",
|
|
"translations.submittedForReview": "Submitted for review!",
|
|
"translations.failedSubmitReview": "Failed to submit for review",
|
|
"translations.reviewLinkTitle": "Review Link",
|
|
"translations.linkCopied": "Link copied!",
|
|
"translations.feedbackTitle": "Reviewer Feedback",
|
|
"translations.approvedByLabel": "Approved by",
|
|
"translations.pendingReviewInfo": "This translation is currently pending review.",
|
|
"translations.noReviewInfo": "No review information available.",
|
|
"translations.failedDelete": "Failed to delete",
|
|
"translations.addOption": "Add Option",
|
|
"translations.option": "option",
|
|
"translations.options": "options",
|
|
"translations.optionLabel": "Option",
|
|
"translations.selected": "Selected",
|
|
"translations.selectThis": "Select",
|
|
"translations.optionSelected": "Option selected!",
|
|
"translations.suggestAlternative": "Suggest alternative",
|
|
"translations.suggestForLang": "Suggest a translation for",
|
|
"translations.enterSuggestion": "Enter your suggested translation...",
|
|
"translations.submitSuggestion": "Submit Suggestion",
|
|
"translations.suggestionAdded": "Suggestion added!",
|
|
"translations.existing": "existing",
|
|
"translations.copyContent": "Copy to clipboard",
|
|
"translations.copiedToClipboard": "Copied to clipboard!",
|
|
"translations.approvedReadOnly": "This translation is approved and cannot be modified.",
|
|
"translations.linkedPost": "Linked Post",
|
|
"translations.createPost": "New Post",
|
|
"translations.newPostTitle": "Post title...",
|
|
"translations.postCreated": "Post created!",
|
|
"translations.postCreateFailed": "Failed to create post",
|
|
|
|
"nav.copy": "Copy",
|
|
|
|
"postDetail.captionCopy": "Caption Copy",
|
|
"postDetail.bodyCopy": "Body Copy",
|
|
"postDetail.design": "Design",
|
|
"postDetail.video": "Video",
|
|
"postDetail.readiness": "Readiness",
|
|
"postDetail.noAssets": "No assets linked yet",
|
|
"postDetail.allPiecesApproved": "All pieces approved",
|
|
"postDetail.waitingOn": "Waiting on",
|
|
"postDetail.notLinked": "Not linked",
|
|
"postDetail.linkExisting": "Link existing",
|
|
"postDetail.createNew": "Create new",
|
|
"postDetail.open": "Open",
|
|
"postDetail.unlink": "Unlink"
|
|
} |