{
	"title": "Projects",
	"editorRoute": {
		"enterProjectName": "Please enter a project name",
		"noChangesToSave": "No changes to save",
		"failedToSaveProject": "Failed to save project",
		"projectSaved": "Project saved!",
		"unableToLoadTitle": "Unable to Load Project",
		"goToProjects": "Go to Projects",
		"saveModal": {
			"title": "Save your project?",
			"description": "You have unsaved changes. Would you like to save this project before leaving?",
			"projectNameLabel": "Project Name",
			"projectNamePlaceholder": "My Awesome Video",
			"cancel": "Cancel",
			"discard": "Discard",
			"saving": "Saving...",
			"save": "Save Project"
		},
		"aiJobModal": {
			"title": "AI is still working",
			"description": "The AI is still working on your video. If you leave now, this run will be cancelled and you'll lose its progress.",
			"descriptionDetached": "Otto is still working on your video. It will keep going in the background — come back to this project to see it finish.",
			"stay": "Stay on Page",
			"leave": "Leave Anyway"
		},
		"meta": {
			"title": "Videotto - Video Editor",
			"description": "Edit your video with AI-powered tools; trim, add captions, overlay text, and render in the Videotto editor."
		}
	},
	"projects": {
		"sourceExpiredError": "This project’s source video expired and its media is no longer available.",
		"sourceExpiredBadge": "Source expired",
		"driveUploadFailedMessage": "Drive upload: {done} of {total} uploaded, {failed} failed{reason}",
		"driveUploadStorageFullReason": " — Google Drive is out of space",
		"driveUploadedFilesMessage": "{count, plural, one {Uploaded # file to \"{name}\"} other {Uploaded # files to \"{name}\"}}",
		"noSessionsToRender": "No sessions in this folder to render",
		"exportedFolderName": "Exported - {name}",
		"createExportFolderError": "Failed to create export folder",
		"exportingFolderName": "Exporting \"{name}\"",
		"startedExportingProjects": "{count, plural, one {Started exporting # project} other {Started exporting # projects}}",
		"startMassExportError": "Failed to start mass export",
		"exportedVideosMessage": "{count, plural, one {Exported # video to \"{folderName}\"{failedSuffix}} other {Exported # videos to \"{folderName}\"{failedSuffix}}}",
		"exportedVideosFailedSuffix": " ({failed} failed)",
		"cancellingDriveUpload": "Cancelling Drive upload…",
		"cancelUploadError": "Could not cancel the upload — please try again",
		"driveUploadCancelledMessage": "Drive upload cancelled — {uploaded} of {total} uploaded to Drive",
		"captionedProjectsReadyMessage": "{count, plural, one {# captioned project ready in \"{folderName}\"} other {# captioned projects ready in \"{folderName}\"}}",
		"upgradeToSaveProjects": "Upgrade to save projects",
		"storageUnlimited": "{used} / Unlimited",
		"storageUsedOfCapacity": "{used} / {capacity} GB",
		"reconnectDriveDownloadsError": "Please reconnect Google Drive to enable downloads.",
		"downloadFailedError": "Download failed",
		"driveDownloadError": "Failed to download from Google Drive",
		"importingFromDrive": "Importing \"{name}\" from Google Drive…",
		"storageLimitReachedError": "Storage limit reached. Free up space or upgrade to import more.",
		"reconnectDriveImportsError": "Please reconnect Google Drive to enable imports.",
		"importedItemsFromDrive": "{count, plural, one {Imported # item from Google Drive} other {Imported # items from Google Drive}}",
		"importFailedError": "Import failed",
		"importFromDriveError": "Failed to import from Google Drive",
		"reconnectDriveUploadsError": "Please reconnect Google Drive to enable uploads.",
		"uploadToDriveFailedError": "Upload to Google Drive failed",
		"uploadingToDrive": "Uploading \"{folderName}\" to Google Drive…",
		"uploadToDriveConnectionError": "Upload to Google Drive failed - check your connection",
		"zippingFolder": "Zipping \"{folderName}\"…",
		"downloadReady": "Download ready",
		"downloadConnectionError": "Download failed - check your connection",
		"shareProjectError": "Failed to share project",
		"projectSharedToTeam": "Project shared to team",
		"needOrganizationToShare": "You need to be in an organization to share",
		"shareFolderError": "Failed to share folder",
		"folderSharedToTeam": "\"{folderName}\" shared to team",
		"videosFallbackName": "Videos",
		"captioningFolderName": "Captioning \"{folderName}\"",
		"createCaptionFolderError": "Failed to create caption folder",
		"submitCaptioningBatchError": "Failed to submit captioning batch",
		"createFolderError": "Failed to create folder",
		"folderCreated": "Folder created",
		"renameFolderError": "Failed to rename folder",
		"folderRenamed": "Folder renamed",
		"deleteFolderError": "Failed to delete folder",
		"deletedFolderWithProjects": "{count, plural, one {Deleted folder and # project} other {Deleted folder and # projects}}",
		"deletedFolderOnly": "Deleted folder",
		"moveProjectError": "Failed to move project",
		"moveFolderError": "Failed to move folder",
		"movedToLocation": "Moved \"{name}\" to {location}",
		"folder": "folder",
		"root": "root",
		"moveItemError": "Failed to move item",
		"moveProjectsError": "Failed to move projects",
		"movedItemsToLocation": "{count, plural, one {Moved # item to {location}} other {Moved # items to {location}}}",
		"moveItemsError": "Failed to move items",
		"deleteProjectsError": "Failed to delete projects",
		"deletedItemsCount": "{count, plural, one {Deleted # item} other {Deleted # items}}",
		"deleteItemsError": "Failed to delete items",
		"upgradeToScheduleMessage": "Upgrade to Pro to schedule and post projects.",
		"myProjects": "My Projects",
		"teams": "Teams",
		"noProjectsYet": "No projects yet",
		"createFirstProjectPrompt": "Create your first video project to get started",
		"createFirstProjectButton": "Create a project",
		"editedRelativeTime": "Edited {time}",
		"sourceVideoExpiredShort": "Source video expired",
		"sharedByName": "Shared by {name}",
		"sortMenu": {
			"nameAsc": "Name A–Z",
			"nameDesc": "Name Z–A",
			"newest": "Newest",
			"oldest": "Oldest",
			"newestFirst": "Newest first",
			"oldestFirst": "Oldest first"
		},
		"clearTombstonedShort": "Clear ({count})",
		"clearTombstonedFull": "Clear expired ({count})",
		"driveImport": {
			"importingEllipsis": "Importing…",
			"importingDots": "Importing...",
			"storageFull": "Storage full",
			"addDrive": "Add Drive",
			"addFromDrive": "Add from Drive"
		},
		"newFolderButton": "New Folder",
		"emptyFolderTitle": "This folder is empty",
		"emptyFolderDescription": "Move projects here or create a subfolder",
		"emptyTeamProjectsTitle": "No team projects yet",
		"emptyTeamProjectsDescription": "Share a personal project to make it available to your team",
		"moveToEllipsis": "Move to...",
		"shareToTeamTitle": "Share to Team",
		"shareToTeamConfirm": "Are you sure you want to share \"{name}\" with your team? This action cannot be undone, the project will become accessible to all team members and cannot be moved back to personal.",
		"cancel": "Cancel",
		"sharing": "Sharing...",
		"renameFolderTitle": "Rename Folder",
		"renameFolderDescription": "Enter a new name for the folder",
		"folderNamePlaceholder": "Folder name",
		"renaming": "Renaming...",
		"rename": "Rename",
		"exportProjectsTitle": "Export projects",
		"chooseProjectsToExport": "Choose which projects to export from \"{name}\".",
		"exportCountLabel": "{count, plural, one {Export # project} other {Export # projects}}",
		"uploadToDriveTitle": "Upload to Google Drive",
		"chooseFilesToUpload": "Choose which files to upload from \"{name}\".",
		"uploadCountLabel": "{count, plural, one {Upload # file} other {Upload # files}}",
		"deleteItemsTitle": "{count, plural, one {Delete # item?} other {Delete # items?}}",
		"deleteFoldersAndProjectsWarning": "This will delete {folders, plural, one {# folder} other {# folders}} (including all contents) and {projects, plural, one {# project} other {# projects}}.",
		"deleteFoldersOnlyWarning": "This will delete {folders, plural, one {# folder} other {# folders}} and all projects inside them.",
		"deleteProjectsOnlyWarning": "This will delete {projects, plural, one {# project} other {# projects}}.",
		"actionCannotBeUndone": "This action cannot be undone.",
		"deleting": "Deleting...",
		"captionBatchFolder": {
			"failedCount": "({count} failed)"
		},
		"deleteFolderDialog": {
			"title": "Delete Folder",
			"deleting": "Deleting...",
			"delete": "Delete",
			"confirmMessage": "{sessionCount, plural, =0 {{folderCount, plural, =0 {Are you sure you want to delete \"{folderName}\"? This action cannot be undone.} other {This will permanently delete \"{folderName}\" and all its contents ({folderCount, plural, one {# subfolder} other {# subfolders}}). This action cannot be undone.}}} other {{folderCount, plural, =0 {This will permanently delete \"{folderName}\" and all its contents ({sessionCount, plural, one {# project} other {# projects}}). This action cannot be undone.} other {This will permanently delete \"{folderName}\" and all its contents ({sessionCount, plural, one {# project} other {# projects}}, {folderCount, plural, one {# subfolder} other {# subfolders}}). This action cannot be undone.}}}}"
		},
		"folderCard": {
			"initializing": "Initializing…",
			"scanningForViruses": "Scanning for viruses…",
			"waiting": "Waiting…",
			"buildingProjectsInProgress": "Building projects…",
			"captioningInProgress": "Captioning in progress…",
			"exportingInProgress": "Exporting in progress…",
			"itemsCount": "{count, plural, one {# item} other {# items}}",
			"renderingEllipsis": "Rendering…",
			"doneFailedCount": "{done} done · {failed} failed",
			"cancelUpload": "Cancel upload",
			"cancelDriveUpload": "Cancel Drive upload",
			"progressLabel": {
				"captioning": "Captioning",
				"buildingProjects": "Building projects",
				"uploadingToDrive": "Uploading to Drive"
			}
		},
		"folderCardMenu": {
			"massCaption": "Mass Caption",
			"noSessionsInFolder": "No sessions in folder",
			"massExport": "Mass Export",
			"uploadAlreadyInProgress": "Upload already in progress…",
			"noVideosToUpload": "No videos to upload — this folder only has projects/captions",
			"uploadToGoogleDrive": "Upload to Google Drive",
			"shareToTeam": "Share to Team",
			"downloadSrts": "Download SRTs",
			"rename": "Rename",
			"moveTo": "Move to...",
			"delete": "Delete"
		},
		"itemPickerModal": {
			"deselectAll": "Deselect all",
			"selectAll": "Select all",
			"selectedOfTotal": "{selected} of {total} selected",
			"nothingToSelect": "Nothing to select.",
			"selectItem": "Select {name}"
		},
		"massCaptionModal": {
			"applyBrandToSelectedTitle": "Apply a brand preset to the selected videos",
			"applyToScopeEllipsis": "{scope, select, all {Apply to all…} other {Apply to {count} selected…}}",
			"applyToAllVideos": "Apply to all videos",
			"applyToScope": "{scope, select, all {Apply to all} other {Apply to {count} selected}}",
			"title": "Mass Caption",
			"loadingVideos": "Loading videos…",
			"videosCount": "{count, plural, one {# video} other {# videos}}",
			"selectedForBulkEdit": "{count} selected for bulk edit",
			"clearSelectionEsc": "Clear selection (Esc)",
			"language": "Language",
			"brandPreset": "Brand preset",
			"setPerVideoBrandBelow": "Set per-video brand presets in the table below.",
			"appliedToAllVideos": "Applied to all videos. Use “Customize per video” to override individual videos.",
			"defaultBrand": "Default",
			"customizingPerVideoTitle": "Customizing per video — set brand presets in the table",
			"brandAppliedToAllTitle": "Brand preset applied to all videos",
			"customizePerVideo": "Customize per video",
			"customizePerVideoDescription": "Assign SRT subtitles and brand presets to each video",
			"noVideosInFolder": "No videos in this folder yet.",
			"clearSelection": "Clear selection",
			"selectAllVideos": "Select all videos",
			"clearSelectedCount": "Clear {count} selected",
			"video": "Video",
			"pickSrtFolderTitle": "Pick an SRT folder for every video",
			"selectSrtFolder": "Select SRT folder…",
			"changeBrandForVideoTitle": "Change brand for this video",
			"pickSrtFolderAboveTitle": "Pick an SRT folder above to assign subtitles",
			"noSrtFoldersAvailableTitle": "No SRT folders available - this video will be auto-transcribed",
			"autoTranscribe": "Auto-transcribe",
			"noSrtFolder": "No SRT folder",
			"srtCount": "{count, plural, one {# srt} other {# srts}}",
			"searchSrtPlaceholder": "Search SRT…",
			"noneAutoTranscribe": "None - auto-transcribe",
			"noMatches": "No matches",
			"noBrandPresetsYet": "No brand presets yet — using the default style.",
			"defaultBadge": "default",
			"brandPresetsLoadError": "Couldn't load brand presets — refresh and try again.",
			"applyCaptions": "Apply Captions",
			"generateCaptions": "Generate Captions",
			"creditsSuffix": " ({estimate}{count, plural, one {# credit} other {# credits}})"
		},
		"materialCard": {
			"closeVideo": "Close video",
			"renderingEllipsis": "Rendering…",
			"downloadingEllipsis": "Downloading…",
			"failed": "Failed",
			"video": "Video",
			"srt": "SRT",
			"downloadingFromDrive": "Downloading from Drive…",
			"downloadFailed": "Download failed",
			"subtitle": "Subtitle"
		},
		"moveFolderDialog": {
			"moveItemTitle": "Move \"{name}\"",
			"selectDestinationFolder": "Select a destination folder",
			"exportToGoogleDrive": "Export to Google Drive",
			"moveHere": "Move Here"
		},
		"newFolderDialog": {
			"title": "New Folder",
			"description": "Enter a name for the new folder",
			"creating": "Creating...",
			"create": "Create"
		},
		"projectCardMenu": {
			"renameError": "Failed to rename project",
			"renamedSuccess": "Project renamed",
			"deleteError": "Failed to delete project",
			"deletedSuccess": "Project deleted",
			"loadError": "Failed to load project",
			"duplicateError": "Failed to duplicate project",
			"duplicatedSuccess": "Project duplicated",
			"rename": "Rename",
			"duplicate": "Duplicate",
			"goToClipsPage": "Go to Clips Page",
			"schedulePost": "Schedule Post",
			"renameProjectTitle": "Rename Project",
			"renameProjectDescription": "Enter a new name for your project",
			"projectNamePlaceholder": "Project name",
			"renaming": "Renaming...",
			"deleteProjectTitle": "Delete Project",
			"deleteProjectConfirm": "Are you sure you want to delete \"{name}\"? This action cannot be undone."
		},
		"renderBatchFolder": {
			"renderFailed": "Render failed",
			"sourceMissing": "This clip's source file is no longer available. Re-upload it, then export again.",
			"sourceStillUploading": "This clip's source file is still uploading. Try again shortly.",
			"dismiss": "Dismiss"
		},
		"saveToFolderDialog": {
			"saveToFolder": "Save to folder",
			"save": "Save"
		},
		"srtPreviewModal": {
			"downloadSrt": "Download .srt",
			"srtExtensionLabel": ".srt",
			"loadError": "Could not load this subtitle file.",
			"emptyFile": "This subtitle file is empty."
		},
		"meta": {
			"title": "Videotto - My Projects",
			"description": "View and manage all your saved video editing projects in one place. Resume editing, duplicate, or delete projects from your Videotto dashboard."
		}
	},
	"clips": {
		"title": "Clips",
		"connectAccountError": "Could not connect account, please try again.",
		"signInToCreateCopy": "Sign in to create a copy",
		"createCopyError": "Failed to create copy",
		"loadClipIntoEditorError": "Failed to load clip into editor. Please try again.",
		"upgradeToScheduleMessage": "Upgrade to Pro to schedule and post clips.",
		"onlyOwnerCanDownload": "Only the owner can download this clip",
		"upgradeToDownloadMessage": "Upgrade to Pro to download clips.",
		"signInToDownloadError": "Please sign in to download clips.",
		"rateLimitedError": "Please wait {seconds} seconds before downloading another clip.",
		"upgradeToShareFullAccessMessage": "Upgrade to Pro to share clips with full access.",
		"shareLinkCopied": "Share link copied to clipboard!",
		"shareVideoError": "Failed to share",
		"shareVideoRetryError": "Failed to share video. Please try again.",
		"unshareSuccess": "Video unshared successfully.",
		"unshareError": "Failed to unshare",
		"unshareRetryError": "Failed to unshare video. Please try again.",
		"stopSharing": "Stop Sharing",
		"close": "Close",
		"postScheduledSuccess": "Post scheduled successfully!",
		"noClipsFoundForVideo": "No clips found for this video",
		"signInToViewClipsError": "Please sign in to view these clips.",
		"videoExpiredError": "This video has expired and its clips are no longer available.",
		"noClipsFoundForVideoPeriod": "No clips found for this video.",
		"loadClipsError": "Failed to load clips. Please try again.",
		"backToVideos": "Back to Videos",
		"upgradeToEditDownloadMessage": "Upgrade to Pro to edit and download clips.",
		"loading": "Loading...",
		"showMoreClips": "Show more clips ({count} remaining)",
		"noClipsLoadedNotice": "No clips loaded. Use test buttons above or upload a video from the homepage.",
		"findKeywords": "Find Keywords",
		"clipsFoundCount": "{count, plural, one {# Clip Found} other {# Clips Found}}",
		"noneFound": "None Found",
		"previousMatch": "Previous match",
		"nextMatch": "Next match",
		"clearSearch": "Clear search",
		"closeSearchAriaLabel": "Close search",
		"testButtons": {
			"trimmed": "Test Trimmed Clips",
			"trimmedTitle": "Simulates server-side trimmed videos (low memory)",
			"speakerTracking": "Test Speaker Tracking",
			"speakerTrackingTitle": "Tests automatic speaker tracking crops (splits video into scenes)",
			"fullVideo": "Test Full Video",
			"fullVideoTitle": "Uses full source video (high memory)"
		},
		"upgradeBannerText": "Upgrade your subscription to edit and download high quality clips.",
		"upgrade": "Upgrade",
		"count": "{count, plural, one {# Clip} other {# Clips}}",
		"keywordsLabel": "Keywords: {keywords}",
		"selectedVideoRangeLabel": "Selected Video Range: {start} – {end}",
		"ofTotalDuration": " of {total}",
		"sortLabel": "Sort: {mode}",
		"virality": "Virality",
		"timeline": "Timeline",
		"timelineOrder": "Timeline Order",
		"viralityScore": "Virality Score",
		"manageSharing": "Manage sharing",
		"shareThisVideo": "Share this video",
		"sharedStatus": "Shared ({access})",
		"full": "Full",
		"viewOnly": "View-only",
		"share": "Share",
		"searchClips": "Search clips",
		"listView": "List view",
		"gridView": "Grid view",
		"videoProcessingFailed": "Video Processing Failed",
		"clipsCouldNotBeDisplayed": "{count, plural, one {All # clip could not be displayed due to processing issues.} other {All # clips could not be displayed due to processing issues.}}",
		"contactSupport": "Contact Support",
		"shareSettings": "Share Settings",
		"shareVideo": "Share Video",
		"anyoneWithLinkCan": "Anyone with the link can",
		"view": "View",
		"edit": "Edit",
		"copyShareLink": "Copy Share Link",
		"trimTimelineBar": {
			"selectedRange": "Selected Range",
			"rangeSummary": "{start} – {end} of {total}"
		},
		"youtubeSourceCard": {
			"sourceVideo": "Source video"
		},
		"meta": {
			"title": "Videotto - Generate Video Clips",
			"description": "Browse, customise, and render AI-generated clips from your long-form video. Pick the best moments and export to TikTok, YouTube Shorts, or Instagram Reels."
		}
	},
	"calendar": {
		"meta": {
			"title": "Calendar - Videotto"
		},
		"title": "Calendar",
		"timezoneSaved": "Scheduling timezone set to {timezone}",
		"timezoneSaveError": "Failed to save timezone, please try again",
		"connectedSuccess": "Successfully connected {platform}!",
		"youtubeChannelChanged": "Connected a different YouTube channel than before. Scheduled YouTube posts will now publish to this channel.",
		"disconnected": "Disconnected {platform}",
		"disconnectError": "Failed to disconnect {platform}",
		"day": {
			"rendering": "Rendering...",
			"moreCount": "+{count} more",
			"addPost": "Add a post"
		},
		"clipThumbnail": {
			"preview": "Preview"
		},
		"connectAccountModal": {
			"title": "Connect an account to unlock posting",
			"description": "Link a social account to schedule and publish your clips right from here. You can explore the calendar first and connect whenever you're ready.",
			"maybeLater": "Maybe later"
		},
		"connectAccountsPrompt": {
			"connect": "Connect"
		},
		"datePicker": {
			"selectDate": "Select date",
			"previousMonth": "Previous month",
			"nextMonth": "Next month"
		},
		"calendarView": {
			"today": "Today"
		},
		"dayDetailModal": {
			"close": "Close",
			"noPostsScheduled": "No posts scheduled for this day",
			"scheduledPostsCount": "Scheduled Posts ({count})",
			"scheduleNewPost": "Schedule New Post"
		},
		"platformSelect": {
			"platforms": "Platforms",
			"required": "(required)",
			"requiredBadge": "Required",
			"connectMoreHint": "Click a platform that isn't connected to connect it."
		},
		"scheduleForm": {
			"checkingReason": "Checking…",
			"youtubeAppCapReason": "Please select a different day",
			"youtubeDailyLimitReason": "Daily limit reached ({limit}/day)",
			"instagramDailyLimitReason": "Daily limit reached ({limit}/day)",
			"tiktokDailyLimitReason": "Limit reached ({limit}/24h window)",
			"loadSchedulesFailedWarning": "Couldn't load your existing posts - the daily limit guard will only run on submit.",
			"tooSoonError": "Schedule must be at least 5 minutes in the future",
			"selectPlatformError": "Please select at least one platform to post to.",
			"checkingYoutubeInfo": "Still checking YouTube availability, give it a second and try again.",
			"youtubeAppCapError": "YouTube scheduling is unavailable for this date right now. Pick another day.",
			"youtubeDailyLimitError": "You can schedule up to {limit} YouTube videos per day. Pick another day or remove a YouTube post for that date.",
			"checkingInstagramInfo": "Still checking your Instagram daily limit, give it a second and try again.",
			"instagramDailyLimitToast": "You can schedule up to {limit} Instagram posts per day. Pick another day or remove some Instagram posts for that date.",
			"checkingTiktokInfo": "Still checking your TikTok 24-hour limit, give it a second and try again.",
			"tiktokDailyLimitToast": "You can schedule up to {limit} TikTok posts per 24-hour window. Space your posts further apart or remove some TikTok posts near this time.",
			"tiktokPrivacyRequiredError": "Please select a privacy setting for your TikTok post.",
			"tiktokCommercialContentError": "Please indicate if your content promotes yourself, a third party, or both.",
			"tiktokConsentRequiredError": "Please confirm you want to post this content to TikTok.",
			"scheduleFor": "Schedule for",
			"dateAriaLabel": "Date",
			"timeAriaLabel": "Time",
			"titleLabel": "Title",
			"titlePlaceholder": "Enter a title for your post",
			"connectToScheduleClip": "Connect a social account to schedule this clip.",
			"captionLabel": "Caption",
			"captionPlaceholder": "Write a caption for your post",
			"captionUsedForAllPlatforms": "Used for every selected platform",
			"requiredBadge": "Required",
			"tiktokConsentText": "I confirm that I want to post this content to my TikTok account and understand it will be publicly visible based on the privacy setting selected above.",
			"tiktokProcessingNotice": "After your video is published to TikTok, it may take a few minutes for it to finish processing and become visible on your profile."
		},
		"scheduleModal": {
			"subscriptionRequiredError": "Active subscription required",
			"clipFallbackTitle": "Clip",
			"renderingInBackgroundInfo": "Rendering clip in background...",
			"startRenderError": "Failed to start render",
			"schedulePostError": "Failed to schedule post",
			"postScheduledForPlatformsCount": "Post scheduled for {count, plural, one {# platform} other {# platforms}}!",
			"tiktokProcessingInfo": "Note: After publishing, your TikTok video may take a few minutes to process and appear on your profile.",
			"scheduling": "Scheduling...",
			"schedule": "Schedule",
			"backToClipSelection": "Back to clip selection",
			"title": "Schedule Post",
			"cancel": "Cancel"
		},
		"schedulePostDetailModal": {
			"status": {
				"scheduled": "Scheduled",
				"ready": "Ready",
				"posted": "Posted",
				"failed": "Failed"
			},
			"deleteFailed": "Delete failed",
			"cancelPostError": "Failed to cancel post",
			"partialCancelWarning": "Cancelled {succeeded} of {total} platforms, please retry the rest.",
			"scheduledPostCancelled": "Scheduled post cancelled",
			"removedFromCalendar": "Removed from calendar",
			"invalidDateTimeError": "Please pick a valid date and time",
			"mustBeFutureError": "Schedule time must be in the future",
			"updateFailed": "Update failed",
			"updatePostError": "Failed to update post",
			"partialUpdateWarning": "Updated {succeeded} of {total} platforms, please retry the rest.",
			"scheduleUpdated": "Schedule updated",
			"editTitle": "Edit scheduled post",
			"cancelThisPostTitle": "Cancel this post?",
			"removeFromCalendarTitle": "Remove from calendar?",
			"viewTitle": "Scheduled post",
			"clipFallbackAlt": "Clip",
			"appliesToAllPlatforms": "Applies to every selected platform",
			"cancelConfirmMessage": "This will cancel the scheduled post for {platforms}. The post will not go out.",
			"removeConfirmMessage": "This will remove {count, plural, one {# record} other {# records}} from your calendar. Posts already published on those platforms are not affected.",
			"cancelPostButton": "Cancel post",
			"removeFromCalendarButton": "Remove from calendar",
			"editButton": "Edit",
			"backButton": "Back",
			"saving": "Saving…",
			"saveButton": "Save",
			"keepButton": "Keep",
			"cancelling": "Cancelling…",
			"yesCancelPost": "Yes, cancel post",
			"yesRemove": "Yes, remove",
			"rescheduleButton": "Reschedule",
			"rescheduleTitle": "Reschedule post",
			"rescheduled": "Post rescheduled"
		},
		"scheduleRenderNotification": {
			"renderFailedError": "Failed to render \"{title}\"",
			"finalizeError": "Failed to finalize schedule",
			"scheduledForPlatformsCount": "\"{title}\" scheduled for {count, plural, one {# platform} other {# platforms}}!",
			"unknownError": "Unknown error",
			"schedulingTitle": "Scheduling \"{title}\"...",
			"scheduledTitle": "\"{title}\" scheduled!",
			"failedTitle": "\"{title}\" failed",
			"rendering": "Rendering",
			"willBePublished": "Post will be published at scheduled time"
		},
		"socialAccountsPanel": {
			"connectedAccounts": "Connected Accounts",
			"connectedCount": "{count} connected",
			"disconnectTitle": "Disconnect {platform}?",
			"disconnectNamedAccountBody": "@{accountName} will be disconnected. Scheduled posts and auto-reply triggers using this account will stop working until you reconnect.",
			"disconnectAccountBody": "This account will be disconnected. Scheduled posts and auto-reply triggers using it will stop working until you reconnect.",
			"cancel": "Cancel",
			"disconnecting": "Disconnecting...",
			"disconnect": "Disconnect",
			"comingSoon": "Coming Soon",
			"connect": "Connect"
		},
		"tiktokSettings": {
			"loadCreatorInfoError": "Could not load your TikTok posting options. Try again shortly.",
			"title": "TikTok Settings",
			"postingAs": "Posting as @{name}",
			"reconnectTiktok": "Reconnect TikTok",
			"whoCanView": "Who can view this video",
			"requiredError": "Required",
			"brandedContentCannotBePrivate": "Branded content visibility cannot be set to private.",
			"allowUsersTo": "Allow users to",
			"comment": "Comment",
			"duet": "Duet",
			"stitch": "Stitch",
			"interactionsDisabledForPrivate": "Interaction settings are disabled because this video is set to private. Only you will be able to view it.",
			"commercialContent": "Commercial content",
			"commercialContentDescription": "Let others know this content promotes a brand, product, or service.",
			"yourBrand": "Your brand",
			"yourBrandDescription": "You are promoting yourself or your own business",
			"brandedContent": "Branded content",
			"brandedContentDescription": "You are promoting another brand or a third party",
			"brandedContentUnavailableForPrivate": "Branded content is not available when visibility is set to private.",
			"videoWillBeLabeledPrefix": "Your video will be labeled as",
			"paidPartnership": "Paid partnership",
			"promotionalContent": "Promotional content",
			"mustIndicatePromotionTypeError": "You need to indicate if your content promotes yourself, a third party, or both.",
			"byPostingAgreePrefix": "By posting, you agree to TikTok's",
			"brandedContentPolicy": "Branded Content Policy",
			"and": " and ",
			"musicUsageConfirmation": "Music Usage Confirmation",
			"privacy": {
				"public": "Public",
				"friends": "Friends",
				"followers": "Followers",
				"onlyMe": "Only Me"
			},
			"loadingPrivacySettings": "Loading privacy settings…",
			"privacySettingsUnavailable": "Privacy settings unavailable",
			"selectPrivacySetting": "Select privacy setting",
			"unavailable": "unavailable",
			"turnedOffInTiktokSettings": "turned off in your TikTok settings"
		},
		"timePicker": {
			"selectTime": "Select time",
			"hour": "Hour",
			"min": "Min"
		},
		"timezonePill": {
			"schedulingTimezone": "Scheduling timezone"
		},
		"timezoneSelect": {
			"timezone": "Timezone",
			"searchPlaceholder": "Search timezones…"
		},
		"ottoExport": {
			"waiting": "Getting your video ready…",
			"missing": "Export this video in Otto first, then schedule it.",
			"loadFailed": "Couldn't load your Otto video. Try again."
		},
		"videoPickerModal": {
			"selectAClip": "Select a Clip",
			"selectAVideo": "Select a Video",
			"uploadingPercent": "Uploading… {percent}%",
			"uploadAVideo": "Upload a video",
			"nothingToScheduleYet": "Nothing to schedule yet. Upload a video, or create a project or some clips first.",
			"backToVideos": "Back to videos",
			"noClipsFoundForVideo": "No clips found for this video.",
			"backToParentFolder": "Back to parent folder",
			"projects": "Projects",
			"searchProjects": "Search projects",
			"clearSearch": "Clear search",
			"noProjectsMatchQuery": "No projects match “{query}”.",
			"folderIsEmpty": "This folder is empty.",
			"noProjectsYet": "No projects yet. Create one in the editor.",
			"itemsCount": "{count, plural, one {# item} other {# items}}",
			"project": "Project",
			"recentlyClippedVideos": "Recently clipped videos",
			"noClippedVideosYet": "No clipped videos yet.",
			"ottoVideos": "Otto videos",
			"exportedOn": "Exported {date}",
			"clipsCount": "{count, plural, one {# clip} other {# clips}}",
			"cancel": "Cancel",
			"untitledVideo": "Untitled Video",
			"loadVideosError": "Failed to load videos",
			"untitledProject": "Untitled Project",
			"loadProjectsError": "Failed to load projects",
			"untitledClip": "Untitled Clip",
			"loadClipsError": "Failed to load clips",
			"selectVideoFileError": "Please select a video file",
			"mustBeLoggedInError": "You must be logged in to upload videos",
			"unknownError": "Unknown error",
			"uploadFailedError": "Upload failed: {message}",
			"teamProject": "Team project"
		},
		"scheduledBy": "Scheduled by {name}",
		"teammatePostReadOnly": "Only {name} can change this post.",
		"filterEveryone": "Everyone",
		"filterYou": "You",
		"filterTeammate": "Teammate",
		"adminActingOnTeammate": "This is {name}'s post. Cancelling it stops a publish from their own connected account.",
		"accountsMenu": {
			"connectedCount": "Social accounts",
			"connectAccounts": "Connect accounts",
			"team": "Team"
		},
		"missedPosts": {
			"title": "{count, plural, one {# post didn't go out} other {# posts didn't go out}} while an account needed reconnecting",
			"body": "The account works again. Pick a new time for anything you still want to post.",
			"item": "{platform} · {title} · {time}",
			"untitled": "Untitled post",
			"reschedule": "Reschedule",
			"dismiss": "Dismiss"
		}
	},
	"videos": {
		"savedForever": "Video saved forever",
		"unsaved": "Video unsaved",
		"saveStatusUpdateError": "Failed to update save status",
		"deleteConfirm": "Are you sure you want to delete this video? This cannot be undone.",
		"deleted": "Video deleted",
		"deleteError": "Failed to delete video",
		"untitledWithId": "Video - {id}",
		"loadingMore": "Loading more videos...",
		"count": "{count, plural, one {# video} other {# videos}}",
		"allVideosTitle": "All Videos",
		"clearExpiredFailed": "Clear expired & failed ({count})",
		"autoSaveLabel": "Auto-save",
		"emptyAllVideos": "No videos yet. Upload your first video from the <anchor>homepage</anchor>.",
		"selectedCount": "{count} selected",
		"delete": "Delete",
		"selectAll": "Select all",
		"clearSelection": "Clear",
		"bulkDeleteSuccess": "{count, plural, one {Deleted # video} other {Deleted # videos}}",
		"bulkDeletePartial": "Deleted {succeeded} of {total}; {failed} failed",
		"bulkDeleteError": "Failed to delete videos",
		"autoSaveEnabledWithCount": "{count, plural, one {Auto-save enabled - # video saved} other {Auto-save enabled - # videos saved}}",
		"autoSaveEnabled": "Auto-save enabled",
		"autoSaveDisabled": "Auto-save disabled",
		"autoSaveUpdateError": "Failed to update auto-save setting",
		"upgradeToSaveTitle": "Upgrade to Save Videos",
		"upgradeToSaveMessage": "Saving videos is available on paid plans. Upgrade to keep your clips forever.",
		"meta": {
			"title": "All Videos | Videotto",
			"description": "View all your videos on Videotto."
		}
	},
	"jumpcuts": {
		"backToJumpCuts": "Back to Jump Cuts",
		"videosPage": {
			"title": "Your Jump Cut videos",
			"empty": "No Jump Cut videos yet. Create your first one on the <anchor>Jump Cuts page</anchor>.",
			"meta": {
				"title": "Your Jump Cut videos | Videotto"
			}
		},
		"landing": {
			"hero": {
				"title": "Auto Jump Cuts.",
				"subtitle": "Drop in a talking-head video. We transcribe it, find the silences, filler words and dead air, and splice them out, punchy jump cuts, automatically.",
				"cta": "Cut my video",
				"subCta": "Word-level transcription · edit every cut afterwards"
			},
			"steps": {
				"upload": {
					"title": "Upload",
					"body": "Drop in your talking-head clip, up to 1 hour."
				},
				"transcribe": {
					"title": "We transcribe",
					"body": "Word-level timestamps find every silence, “um” and “uh”."
				},
				"cuts": {
					"title": "Cuts applied",
					"body": "Watch the gaps splice shut in the editor, tweak any cut."
				}
			}
		},
		"tool": {
			"durationLimitError": "Videos must be under 1 hour for Auto Jump Cuts.",
			"pilotExpiredError": "Your pilot period has ended. Visit your organization page for details.",
			"subscriptionRequiredMessage": "You need an active subscription or enterprise plan to use Auto Jump Cuts.",
			"selectVideoFileError": "Please select a video file.",
			"fileTooLargeError": "File is too large. Maximum size is 5GB.",
			"durationReadError": "Could not read video duration. Please try another file.",
			"started": "Auto Jump Cuts started!",
			"createError": "Failed to create jump cuts",
			"viewAll": "View All",
			"uploadedPercent": "{percent}% uploaded",
			"startingMessage": "Starting Auto Jump Cuts, opening the editor...",
			"hero": {
				"title": "<em>Jump</em> Cuts.",
				"subtitle": "Drop your talking-head video, we’ll cut the silences, filler words and dead air, automatically.",
				"uploadButton": "Upload video file",
				"uploadCaption": "Up to 1 hour · 5GB max"
			},
			"modal": {
				"title": "Auto Jump Cuts",
				"description": "We’ll transcribe your video and cut the silences and filler words automatically.",
				"videoLabel": "Video",
				"durationLabel": "Duration",
				"creditEstimate": "Estimated <strong>~{count, plural, one {# credit} other {# credits}}</strong> to transcribe this video.",
				"createButton": "Create Jump Cut Project"
			}
		},
		"preview": {
			"stages": {
				"silenceRemoval": "Silence removal",
				"stuttering": "Stuttering",
				"badTakes": "Bad takes"
			},
			"script": {
				"greeting": "Hey, welcome to Videotto.",
				"showIntro": "Today I'm going to show you",
				"fillerHowTo": "how to— uhm",
				"howToCaptions": "how to add captions to your video.",
				"take1Drag": "First, drag your clip into the— ah, actually—",
				"take2Drop": "First, drop your video anywhere on the editor.",
				"transcribes": "Videotto transcribes it and",
				"fillerUhm": ", uhm,",
				"everyWord": "every word lands on the timeline.",
				"take1Hit": "Then hit Auto Jump Cuts and—",
				"take2Hit": "Then just hit Auto Jump Cuts.",
				"thatsIt": "That's it."
			},
			"take": "Take {take}",
			"tighterPct": "{percent}% tighter",
			"foundFromTranscript": "Silences, filler words & bad takes — found from the transcript",
			"cutsSplicedShutCount": "{count, plural, one {# cut · Spliced shut} other {# cuts · Spliced shut}}",
			"before": "Before",
			"after": "After"
		},
		"meta": {
			"landing": {
				"title": "Auto Jump Cuts, Cut Silences & Filler Words | Videotto",
				"description": "Upload a talking-head video and Videotto removes the silences, filler words and dead air automatically, punchy jump cuts in one click."
			},
			"loggedIn": {
				"title": "Auto Jump Cuts | Videotto"
			}
		}
	},
	"motionVideos": {
		"backToMotion": "Back to Motion",
		"title": "Your Motion videos",
		"empty": "No Motion videos yet. Create your first one on the <anchor>Motion page</anchor>.",
		"meta": {
			"title": "Your Motion videos | Videotto"
		}
	},
	"multicam": {
		"deductCreditsError": "Failed to deduct credits: {error}",
		"processCreditsError": "Failed to process credits. Please try again.",
		"getClips": "Get Clips",
		"upgradeInsufficientCreditsTitleSuffix": " - Insufficient Credits",
		"fullTrust": {
			"stages": {
				"pending": {
					"label": "Getting Things Ready",
					"description": "✨ Warming things up"
				},
				"downloading": {
					"label": "Collecting Your Footage",
					"description": "🎧 Gathering all the pieces"
				},
				"syncing": {
					"label": "Putting Things in Sync",
					"description": "🎼 Matching sound and visuals"
				},
				"runningVad": {
					"label": "Finding the Good Stuff",
					"description": "👂 Listening closely"
				},
				"generatingCuts": {
					"label": "Building Your Highlights",
					"description": "🧩 Assembling the story"
				},
				"rendering": {
					"label": "Bringing Your Video to Life",
					"description": "🚀 Making it look great"
				},
				"uploading": {
					"label": "Saving Your Video",
					"description": "🔒 Almost done"
				}
			}
		}
	},
	"home": {
		"meta": {
			"title": "Home | Videotto",
			"description": "Prompt Otto, upload your assets, and start editing with AI."
		},
		"hero": {
			"title": "Tell <em>Otto</em> to",
			"proTip": "Pro Tip: Attach a reference video for best results",
			"asks": {
				"motionGraphics": "Make Motion Graphics",
				"copyStyle": "Copy Video Style",
				"clipLongform": "Clip Longform Content",
				"launchVideo": "Make Launch Video",
				"removeSilences": "Remove Silences"
			}
		},
		"composer": {
			"placeholder": "Describe the video you want Otto to make… or drop a file to start",
			"dropOverlay": "Drop your video — Otto takes it from here",
			"dropRelease": "Release to add",
			"filesAttached": "{count, plural, one {Attached # file} other {Attached # files}}",
			"folderTruncated": "Folders attach up to {max} files — the rest weren't added. Drop the remaining files separately.",
			"submit": "Create Project",
			"addAssets": "Add assets",
			"submitPhase": {
				"creating": "Creating project…",
				"uploading": "Uploading…",
				"uploadingCounted": "Uploading {done}/{total}…"
			},
			"charCount": "{current, number}/{max, number}",
			"hold": {
				"tooLong": "Description is too long",
				"uploading": "{count, plural, one {Waiting for your upload} other {Waiting for # uploads}}"
			},
			"noAudioForCaptions": "{name} has no audio track, so there's nothing to caption.",
			"model": "Model",
			"moreFeatures": "More features",
			"fewerFeatures": "Fewer features",
			"pills": {
				"motionExplainers": "Motion explainers",
				"copyStyle": "Copy a style",
				"audioToMotion": "Audio to motion",
				"uiAnimation": "UI animation",
				"threeDUi": "3D UI display",
				"productLaunch": "Product launch",
				"dataAnimation": "Data animation",
				"jumpCuts": "Remove rough takes"
			},
			"pillPrompts": {
				"motionExplainers": "Add motion graphics to my whole video.",
				"copyStyle": "Match the reference video I attached: its motion graphics, pacing, framing and effects. Cut mine the same way.",
				"audioToMotion": "Fill my whole audio with motion scenes, back to back, no gaps.",
				"uiAnimation": "Animate a demo of my product’s interface: [link]",
				"threeDUi": "Build a 3D interface using: [website or product]",
				"productLaunch": "Make a launch video for my product: [name], [website or deck]",
				"dataAnimation": "Turn my data into animated scenes: [deck, sheet or figures]",
				"jumpCuts": "Remove the rough takes from my video: the flubs, restarts, silences and dead air.",
				"clipping": "Find the best clips in my video: [link or file]"
			},
			"addMenu": {
				"uploadDevice": "Upload from device",
				"importYoutube": "Import from YouTube"
			},
			"youtube": {
				"placeholder": "Paste a YouTube link…",
				"add": "Add",
				"cancel": "Cancel",
				"invalid": "That doesn't look like a YouTube video link",
				"attached": "YouTube link attached",
				"checking": "Checking…",
				"unavailable": "That video isn't available on YouTube."
			}
		},
		"assets": {
			"retry": "Retry upload",
			"remove": "Remove",
			"uploaded": "{name} uploaded",
			"uploadFailedError": "Upload failed. Try again.",
			"sessionExpiredError": "Your session expired. Sign in again.",
			"fileTooLargeTierError": "{name} is over your {maxSize} upload limit.",
			"invalidFileTypeError": "{name} is not a supported file type.",
			"failedUploadsBeforeSubmit": "Some uploads failed. Retry or remove them before starting.",
			"unreadableError": "We couldn't read this file.",
			"uploadingPercent": "{percent}%",
			"uploadingProgress": "{percent}% · {time}",
			"timeLeft": {
				"underMinute": "less than a minute left",
				"minutes": "about {minutes} min left",
				"hours": "about {hours} hr left"
			}
		},
		"sessionCreateError": "Couldn't create your project. Try again.",
		"sessionCreateRetry": "Try again",
		"leaveGuard": {
			"title": "Leave this page?",
			"body": "{count, plural, one {Your file will need to be added again.} other {Your # files will need to be added again.}}",
			"stay": "Stay",
			"leave": "Leave"
		},
		"harnessDisabled": "The /otto harness is off. Set OTTO_HARNESS_ENABLED=true and restart the server."
	},
	"homepage": {
		"hero": {
			"title": "What will you <em>clip</em> today?"
		},
		"pricingModal": {
			"cloudUploadTitle": "Upgrade to Upload from Google Drive or Dropbox",
			"cloudUploadMessage": "Cloud imports are available on paid plans. Upgrade to unlock Google Drive and Dropbox uploads.",
			"upgradeTitle": "Upgrade Your Plan",
			"upgradeMessage": "Upgrade to unlock more features and credits."
		},
		"overagePaymentSuccess": "Overage payment successful! You can continue using the service.",
		"trialStartedMessage": "You're in! Enjoy full access, your card will be charged on day 3.",
		"driveConnectedSuccess": "Google Drive connected successfully!",
		"driveErrors": {
			"notConfigured": "Google Drive is not configured. Please contact support.",
			"oauthCancelled": "Google Drive connection was cancelled.",
			"invalidOAuthResponse": "Invalid OAuth response. Please try again.",
			"sessionExpired": "OAuth session expired. Please try again.",
			"notAuthenticated": "Please log in to connect Google Drive.",
			"userNotFound": "User not found. Please log in again.",
			"noAccessToken": "Failed to get access token. Please try again.",
			"oauthFailed": "Failed to connect Google Drive. Please try again."
		},
		"genericError": "An error occurred. Please try again.",
		"driveImportSecurely": "Import your files securely",
		"driveUsePickerDescription": "Please use the Google Drive picker provided.",
		"notAVideoLinkError": "That YouTube link isn't a video link. Paste a link to a specific video, e.g. youtube.com/watch?v=… or youtu.be/…",
		"unsupportedLinkError": "Only YouTube, Google Drive and Dropbox links are supported.",
		"invalidFileTypeError": "Please upload a video or image file. Supported formats: MP4, MOV, AVI, WebM, JPEG, PNG, GIF, etc.",
		"fileTooLargeError": "File is too large. Maximum file size is {maxSize}.",
		"av1NotSupportedError": "This video uses the AV1 codec which is not currently supported. Please re-encode to H.264 or H.265 using a video editor and try again.",
		"fileTooLargeToUploadError": "File is too large to upload",
		"uploadFailedError": "Failed to upload file. Please try again.",
		"uploadingVideo": "Uploading video…",
		"failedToSaveUploadError": "Failed to save upload information. Please try again.",
		"uploadFailedWithMessage": "Upload failed: {message}",
		"processingPlaceholder": "Processing...",
		"youtubeThrottled": {
			"title": "YouTube Downloads Temporarily Unavailable",
			"description": "YouTube downloads are experiencing high demand and have been temporarily throttled. Please try again later, or use Google Drive or Dropbox to upload your video instead."
		},
		"highLoad": {
			"title": "High Load - Uploads Paused",
			"description": "We are experiencing high load right now. Please try again later."
		},
		"gotIt": "Got it",
		"cloudButtons": {
			"dropbox": "Dropbox"
		},
		"meta": {
			"title": "Dashboard | Videotto",
			"description": "Manage projects, generate clips, and render videos from your Videotto dashboard."
		}
	},
	"workflow": {
		"newUpload": "New upload",
		"closeAndGoBack": "Close and go back",
		"videoThumbnailAlt": "Video thumbnail",
		"aiModelLabel": "AI Model:",
		"aiModelIconAlt": "{model} AI model icon",
		"durationSelectorLabel": "Duration:",
		"getClipsButton": {
			"saving": "Saving...",
			"analyzing": "Analyzing...",
			"notEnoughCredits": "Not enough credits",
			"addAiCaptions": "Add AI Captions"
		},
		"analyzingVideo": "Analyzing video...",
		"retrying": "Retrying...",
		"fetchingMetadata": "Fetching metadata...",
		"failedToFetchVideoInfo": "Failed to fetch video info",
		"retry": "Retry",
		"durationLabel": "Duration: {duration}",
		"unknown": "Unknown",
		"tooShortToClip": "Too short to clip (<3 min)",
		"creditUsageLabel": "Credit usage:",
		"creditUsageInfoLabel": "Credit usage info",
		"creditUsageTooltip": "1 credit = 1 minute of video processing (min. 35% of full length)",
		"nativelyShort": {
			"explainer": "<strong>This video is under 3 minutes — too short to clip.</strong> We'll keep the original length & orientation and add captions instead.",
			"insufficientCreditsButton": "You don't have enough credits — upgrade your plan to add captions."
		},
		"minVideoLengthNotice": "Minimum video length for clipping is 3 minutes.",
		"trimToReduceCredit": "Trim your selection to reduce credit usage, or upgrade your plan.",
		"keywords": {
			"label": "Focus keywords",
			"optional": "(optional)",
			"placeholder": "e.g. marketing, sales, mindset",
			"hint": "Comma-separated words to help the AI find relevant clips"
		},
		"template": {
			"label": "Template",
			"fill": {
				"title": "Fill (9:16)",
				"description": "Great for Podcasts & Interviews"
			},
			"split": {
				"title": "Split (9:8 x2)",
				"description": "Two speakers stacked vertically"
			},
			"presentation": {
				"title": "Presentation (9:8 x2)",
				"description": "Speaker + slides layout"
			},
			"square": {
				"title": "Square (1:1)",
				"description": "Great for high-paced YouTube videos"
			},
			"auto": {
				"badge": "AI selects best template",
				"title": "Auto",
				"description": "Let AI choose the best template"
			}
		},
		"processingStarted": "Processing started! Your clips will be ready soon.",
		"errors": {
			"liveVideoNotSupported": "Live video downloads are not supported. Please try again after the stream has ended.",
			"draftExpired": "This draft has expired. Please re-add the video link to start again.",
			"billingCheckFailed": "Unable to start: a billing check failed.",
			"upgradeToContinue": "Upgrade to continue.",
			"clippingRequiresPaidTitle": "Clipping requires a paid subscription",
			"bitrateTooHigh": "Video bitrate is too high ({bitrate} Mbps). The maximum supported bitrate is 80 Mbps. Please compress your video before uploading.",
			"missingVideoLink": "Missing video link. Please re-add it and try again.",
			"failedToStartCaptioning": "Failed to start captioning",
			"couldNotStartDownload": "Could not start the download. Please try again.",
			"failedToStartCaptions": "Failed to start captions. Please try again.",
			"failedToSaveSettings": "Failed to save settings. Please try again.",
			"storageLimitExceeded": "Storage limit exceeded. Please free up space or upgrade your plan.",
			"alreadySubmitted": "This video has already been submitted for processing.",
			"failedToStartProcessing": "Failed to start processing. Please try again.",
			"somethingWentWrong": "Something went wrong. Please try again."
		},
		"meta": {
			"title": "Workflow - Videotto"
		}
	},
	"aiMotion": {
		"tool": {
			"durationLimitError": "Videos must be under 3 minutes for AI Motion Graphics.",
			"subscriptionRequiredMessage": "You need an active subscription or enterprise plan to access AI Motion.",
			"started": "AI Motion Graphics started!",
			"createError": "Failed to create motion graphics",
			"trialActiveMessage": "You're in — your 3-day free trial is active. Upload a video to start.",
			"paymentConfirmedInfo": "Payment confirmed — give it a moment, then upload from here.",
			"startingMessage": "Starting AI Motion Graphics, opening the editor...",
			"hero": {
				"title": "<em>Motion</em> Graphics.",
				"subtitle": "Drop your video, we’ll add animated typography, b-roll, charts and captions, automatically.",
				"uploadCaption": "Up to 3 minutes · 5GB max"
			},
			"modal": {
				"title": "AI Motion Graphics",
				"description": "Create stunning motion graphics with our AI Agents.",
				"creditEstimate": "Estimated <strong>~{count} credits</strong> to animate this video.",
				"createButton": "Create AI Motion Graphics Project"
			}
		},
		"demos": {
			"heading": "Demos",
			"techExplainer": "Tech Explainer",
			"multilingualMotionGraphics": "Multilingual Motion Graphics",
			"biologyExplainer": "Biology Explainer"
		},
		"waitlistGate": {
			"close": "Close",
			"joinError": "Could not join the waitlist. Please try again.",
			"questionsPrefix": "Questions about AI Motion?",
			"contactUs": "Contact us",
			"betaHeadline": "AI Motion is in private beta",
			"betaSubtitle": "AI Motion Graphics turns any video into scroll-stopping animations, automatically.",
			"whatsInside": "What's inside",
			"featureAutoGenerate": "Auto-generate motion graphics from your video",
			"featureTypography": "Animated typography <plus>+</plus> dynamic charts",
			"featureCaptions": "Captions baked in, ready to edit",
			"requesting": "Requesting…",
			"requestBetaAccess": "Request beta access",
			"noSpam": "No spam, just your invite when a spot opens up",
			"onTheList": "You're on the list",
			"onTheListSubtitle": "We'll email your invite the moment a spot opens up, you'll be among the first creators using AI Motion.",
			"betaAccessRequested": "Beta access requested"
		},
		"meta": {
			"marketing": {
				"title": "Turn Talking-Head Explainers Into Motion Videos | Videotto",
				"description": "Videotto Motion turns talking-head explainers into motion-graphics videos — animated diagrams, charts, big-number reveals, and kinetic callouts, designed and rendered by AI.",
				"ogTitle": "Turn Talking-Head Explainers Into Motion Videos | Videotto",
				"ogDescription": "Turn talking-head explainers into motion-graphics videos with animated diagrams, charts, and kinetic callouts — designed and rendered by AI."
			},
			"tool": {
				"title": "AI Motion Graphics | Videotto"
			}
		},
		"motionRequiresPro": "Videotto Motion is a Pro feature. Upgrade to Pro to create motion graphics."
	},
	"bulkDownloadDialog": {
		"title": "Download {count} Clips",
		"description": "You're about to render and download {count} video clips. Your browser may block multiple automatic downloads.",
		"allowMultiple": "Allow multiple downloads in {browser}",
		"howItWorksTitle": "How bulk download works",
		"howItWorksStep1": "Clips are rendered in batches of 3 at a time",
		"howItWorksStep2": "Each clip shows a notification when ready",
		"howItWorksStep3": "Downloads start automatically when rendering completes",
		"howItWorksStep4": "If blocked, click the download button on each notification",
		"acknowledgment": "I understand that some downloads may require manual confirmation if my browser blocks them",
		"cancel": "Cancel",
		"startDownload": "Start Download ({count} clips)",
		"browsers": {
			"chrome": {
				"name": "Chrome",
				"step1": "Click the download icon in the address bar (if blocked)",
				"step2": "Select \"Always allow downloads\" for this site",
				"step3": "Or go to Settings > Privacy > Site Settings > Automatic downloads"
			},
			"firefox": {
				"name": "Firefox",
				"step1": "Click the shield icon in the address bar",
				"step2": "Turn off \"Enhanced Tracking Protection\" for this site",
				"step3": "Or allow the download prompt when it appears"
			},
			"safari": {
				"name": "Safari",
				"step1": "Go to Safari > Settings > Websites > Downloads",
				"step2": "Find this website and select \"Allow\"",
				"step3": "Downloads will proceed automatically"
			},
			"edge": {
				"name": "Edge",
				"step1": "Click the download icon in the address bar (if blocked)",
				"step2": "Select \"Always allow\" for this site",
				"step3": "Or go to Settings > Cookies and site permissions > Automatic downloads"
			},
			"other": {
				"name": "your browser",
				"step1": "Check your browser settings for \"Automatic downloads\"",
				"step2": "Allow multiple downloads for this site",
				"step3": "You may need to confirm each download manually"
			}
		}
	},
	"deleteVideoModal": {
		"fallbackTitle": "Video - {id}",
		"deletedToast": "Video deleted",
		"deleteFailedToast": "Failed to delete video",
		"copyBadge": "Copy",
		"editedTime": "Edited {time}",
		"editedRecently": "Edited recently",
		"loadErrorMessage": "Couldn't load the affected projects. Deleting may still break projects that use {count, plural, one {this video} other {these videos}}.",
		"removeTitle": "{count, plural, one {Remove this video?} other {Remove # videos?}}",
		"deleteTitle": "{count, plural, one {Delete this video?} other {Delete # videos?}}",
		"thisVideoFallback": "This video",
		"medialessSingleDescription": "{title} never finished processing, so there are no clips or projects to lose. It will be removed from your list.",
		"medialessMultiDescription": "These {count} videos never finished processing, so there are no clips or projects to lose. They will be removed from your list.",
		"checkingSingle": "Checking which projects use this video…",
		"checkingMultiple": "Checking which projects use these videos…",
		"alsoDeleteSingle": "This will also permanently delete ",
		"alsoDeleteMulti": "Deleting these videos will also permanently delete ",
		"projectCount": "{count, plural, one {# project} other {# projects}}",
		"thisVideosClips": "this video's clips",
		"theirClips": "their clips",
		"projectImpactSuffix": "made from {clips} (their media is being removed). This can't be undone.",
		"singleDeleteDescription": "{title} and its clips will be permanently deleted. This can't be undone.",
		"multiDeleteDescription": "This will permanently delete {count} videos and their clips. This can't be undone.",
		"cancel": "Cancel",
		"deletingLabel": "Deleting…",
		"removeLabel": "Remove",
		"deleteAnywayLabel": "Delete anyway",
		"deleteVideoLabel": "Delete video",
		"deleteVideosLabel": "Delete videos"
	},
	"captionModal": {
		"fileSizeExceeded": "File size exceeds 5GB limit",
		"selectVideoFile": "Please select a video file",
		"durationReadError": "Could not read video duration. Please try another file.",
		"checkMetadataStatusFailed": "Failed to check metadata status",
		"metadataFetchFailed": "Metadata fetch failed",
		"retryingVideoInfo": "Retrying video info fetch...",
		"metadataFetchTimedOut": "Metadata fetch timed out",
		"invalidUrl": "Please enter a valid YouTube, Google Drive, or Dropbox URL",
		"notAVideoLink": "That YouTube link isn't a video link. Paste a link to a specific video, e.g. youtube.com/watch?v=… or youtu.be/…",
		"gettingVideoInfo": "Getting video info...",
		"startMetadataFetchFailed": "Failed to start metadata fetch",
		"liveVideoNotSupported": "Live videos cannot be captioned. Please use a completed video.",
		"youtubeVideoFallbackTitle": "YouTube video",
		"getVideoInfoFailed": "Failed to get video info",
		"downloadingVideo": "Downloading video...",
		"processUrlFailed": "Failed to process URL",
		"noTaskIdReturned": "No task ID returned for download",
		"extractingThumbnail": "Extracting thumbnail...",
		"processCreditsFailed": "Failed to process credits. Please try again.",
		"getUploadUrlFailed": "Failed to get upload URL",
		"createJobFailed": "Failed to create job",
		"startCaptioningFailed": "Failed to start captioning",
		"missingVideoLink": "Missing video link",
		"untitledVideoFallback": "Untitled Video",
		"videoNotReady": "Video not ready for captioning",
		"startingCaptions": "Starting captions…",
		"captioningStarted": "Captioning started!",
		"generateCaptionsFailed": "Failed to generate captions",
		"selectSrtFile": "Please select an .srt subtitle file",
		"readSrtFailed": "Failed to read SRT file",
		"title": "AI Captions",
		"subtitle": "Add stylish captions or translate your videos.",
		"previewImageAlt": "Caption styles preview",
		"uploadButton": "Upload",
		"uploadSizeLimit": "You can upload videos up to 5GB.",
		"checkingLink": "Checking link...",
		"percentComplete": "{percent}% complete",
		"mayTakeAFewMinutes": "This may take a few minutes",
		"videoLabel": "Video",
		"videoFallbackTitle": "Video",
		"durationLabel": "Duration",
		"uploadSrtButton": "<plain>Upload</plain> <bold>SRT</bold> <dim>(optional)</dim>",
		"startingButton": "Starting...",
		"translateAndApplyButton": "Translate & Apply Captions",
		"applyCaptionsButton": "Apply Captions",
		"generateCaptionsButton": "Generate Captions",
		"startingCaptioningEllipsis": "Starting captioning...",
		"closeDialogNotice": "You can close this dialog. We'll notify you when ready.",
		"somethingWentWrong": "Something went wrong",
		"tryAgain": "Try Again"
	},
	"motion": {
		"landing": {
			"watchTime": "Watch time",
			"retention": "Retention",
			"hero": {
				"tagline": "#1 AI Motion Graphics Editor for Explainer Videos"
			},
			"uploadVideo": "Upload Video",
			"cta": {
				"heading": "Turn your next explainer into a <kinetic>motion video</kinetic>",
				"subtitle": "Upload a talking-head clip and let the AI design the motion graphics for you."
			},
			"ticker": {
				"drawOnCharts": "Draw-on charts",
				"bigNumberReveals": "Big-number reveals",
				"kineticCallouts": "Kinetic callouts",
				"autoJumpCuts": "Auto jump-cuts",
				"anyLanguage": "Any language",
				"everyFormat": "Every format"
			},
			"demos": {
				"sectionTitle": "Check out demos here",
				"sectionSubtitle": "Real talking-head clips, transformed. Every render carries one accent hue, derived from the footage itself.",
				"techExplainer": {
					"title": "Tech Explainer",
					"subtitle": "Animated diagrams, callouts, and on-screen data."
				},
				"multilingual": {
					"title": "Multilingual Motion Graphics",
					"subtitle": "Big-number reveals and kinetic captions in any language."
				},
				"biologyExplainer": {
					"title": "Biology Explainer",
					"subtitle": "Concepts visualized the moment they are spoken."
				},
				"beforeAfterAlt": "{title}, before and after Videotto Motion"
			},
			"trustedBy": "Trusted by 200k Personal Brands and Creators",
			"brandLogoAlt": "{name} logo, brand using Videotto Motion",
			"scenes": {
				"sameClipEveryMarket": "Same clip, every market",
				"motionGraphics": "Motion Graphics",
				"creatorsOnVideotto": "Creators on Videotto",
				"mockHeadline": "#1 <sweep>Fastest Growing</sweep><br></br>Motion Editor",
				"averageWatchTime": "Average watch time",
				"plainClip": "Plain clip",
				"motionVideoLabel": "Motion video",
				"platformIconAlt": "Social platform icon rising on the render stage",
				"oneRenderPublishedEverywhere": "One render, published everywhere",
				"sectionTitle": "Scenes the AI can stage",
				"sectionSubtitle": "Charts, maps, diagrams, and captions, drawn live for the moment they land. Not stock, not templates."
			},
			"director": {
				"sectionTitle": "The AI reads your words and directs the motion graphics.",
				"sectionSubtitle": "Every phrase becomes a motion graphic."
			},
			"faq": {
				"sectionTitle": "Frequently Asked Questions",
				"sectionSubtitle": "Clear answers about turning talking-head clips into motion videos.",
				"viewAllButton": "View all Motion Graphics FAQs",
				"items": {
					"whatIs": {
						"question": "What is an AI motion graphics editor?",
						"answer": "An AI motion graphics editor analyses the words and pacing of a talking-head video and automatically designs matching motion graphics, animated diagrams, charts, big-number reveals, and kinetic typography, then renders the finished motion graphics video in the cloud. Videotto Motion does this the moment you upload, with no timeline, keyframes, or design software required."
					},
					"talkingHeadToMotion": {
						"question": "How do I turn a talking-head video into motion graphics?",
						"answer": "Upload a talking-head clip, interview, or explainer, and the AI reads the transcript to decide where a chart, callout, or animated diagram belongs, then designs and places the motion graphics automatically. You can refine any graphic afterwards in the editor before exporting."
					},
					"skillsNeeded": {
						"question": "Do I need design or animation skills to create motion graphics?",
						"answer": "No. Motion graphics normally require After Effects or a trained motion designer. With an AI motion graphics editor, you upload a clip and the AI directs and designs every graphic for you, so anyone can publish a professional motion graphics video without touching a design tool."
					},
					"bestVideos": {
						"question": "What kind of videos work best for AI motion graphics?",
						"answer": "Explainers, interviews, podcasts, product walkthroughs, and educational talking-head clips up to 3 minutes work best. Clear, conversational speech gives the AI the most to work with when deciding which motion graphics to generate."
					},
					"formats": {
						"question": "What formats can I export my motion graphics video in?",
						"answer": "Export in 9:16 for Reels, Shorts, and TikTok, 16:9 for YouTube, and 1:1 for feed posts, each rendered and ready to publish."
					},
					"otherLanguages": {
						"question": "Can AI motion graphics be generated in other languages?",
						"answer": "Yes. On-screen text, charts, and callouts can be generated in your audience’s language, so the same motion graphics video works across markets."
					}
				}
			}
		}
	},
	"header": {
		"watchTutorials": "Watch tutorials",
		"credits": "credits",
		"tierBadges": {
			"go": "Go",
			"pro": "Pro",
			"plus": "Plus",
			"scale": "Scale",
			"business": "Business"
		},
		"trialButton": "Trial",
		"getProButton": "Get Pro",
		"pilotBadge": "Pilot",
		"pilotEndedBadge": "Pilot Ended",
		"enterpriseBadge": "Enterprise",
		"teamsBadge": "Teams"
	},
	"linkPanel": {
		"rotatingPlaceholders": {
			"youtube": "YouTube link",
			"googleDrive": "Google Drive link",
			"dropbox": "Dropbox link"
		},
		"placeholderPrefix": "Drop a ",
		"defaultPlaceholderSuffix": "link",
		"contentLinkAria": "Content link",
		"processingButton": "Processing…",
		"uploadFileButton": "Upload File"
	},
	"recentProjects": {
		"title": "Recent Projects",
		"viewAll": "View All",
		"editedLabel": "Edited {edited}"
	},
	"recentOttoVideos": {
		"cancel": "Cancel",
		"delete": "Delete \"{title}\"",
		"deleteFailed": "Couldn't delete \"{title}\". It's still in your videos — try again.",
		"title": "Recent Otto Videos",
		"viewAll": "View all →"
	},
	"recentVideos": {
		"title": "Your Videos",
		"watchDemos": "Watch Demos →",
		"autoSave": "Auto-save",
		"viewAll": "View All",
		"storage": {
			"unlimited": "Unlimited",
			"usageSummary": "{usedLabel} / {limitLabel} used"
		},
		"untitledFallback": "Video - {jobIdPrefix}",
		"demoClips": {
			"emptyStateHint": "See what Videotto can do - check out these demo clips",
			"exploreMoreHint": "Explore more demos",
			"demoBadge": "Demo"
		}
	},
	"sidebar": {
		"nav": {
			"home": "Home",
			"teams": "Teams",
			"inviteTeam": "Invite Team",
			"feedback": "Feedback",
			"clipping": "Clipping",
			"projects": "Projects",
			"brandPresets": "Brand Presets",
			"customFonts": "Custom Fonts",
			"toolsSection": "Tools",
			"aiMotion": "AI Motion",
			"jumpCuts": "Jump Cuts",
			"captions": "Captions",
			"calendar": "Calendar",
			"analytics": "Analytics",
			"autoReply": "Auto-Reply",
			"affiliate": "Affiliate",
			"subscription": "Subscription",
			"myAccount": "My Account",
			"myVideos": "My Videos"
		},
		"badges": {
			"plus": "Plus",
			"beta": "Beta"
		},
		"expandSidebar": "Expand sidebar",
		"goToHomepage": "Go to homepage",
		"closeSidebar": "Close sidebar",
		"collapseSidebar": "Collapse sidebar"
	},
	"trimSlider": {
		"title": "Trim Timeframe",
		"trimStartAria": "Trim start",
		"trimEndAria": "Trim end"
	},
	"uploadSettingsModal": {
		"getClipsButton": "Get Clips",
		"savingButton": "Saving…",
		"analyzingButton": "Analyzing…",
		"title": "Upload settings",
		"description": "Customize clip generation while we prepare your video.",
		"closeAria": "Close upload settings",
		"videoDetails": {
			"heading": "Video details",
			"analyzing": "Analyzing video…",
			"retrying": "Retrying…",
			"fetchingMetadata": "Fetching metadata…",
			"fetchFailed": "Failed to fetch video info",
			"retry": "Retry",
			"newUpload": "New upload",
			"durationLabel": "Duration: {duration}",
			"unknown": "Unknown"
		},
		"languageSelector": {
			"autoToTarget": "Auto → {targetLabel}",
			"autoNoTranslation": "Auto (No translation)",
			"language": "Language",
			"inputLanguage": "Input Language",
			"auto": "Auto",
			"targetLanguage": "Target Language",
			"none": "None"
		},
		"clipDuration": {
			"label": "Clip Duration",
			"short": "Short clips",
			"medium": "Medium clips",
			"long": "Long clips",
			"shortRange": "<30s",
			"mediumRange": "30-60s",
			"longRange": "60-180s"
		},
		"template": {
			"label": "Template",
			"fill": {
				"title": "Fill (9:16)",
				"subtitle": "Great for Podcasts & Interviews"
			},
			"split": {
				"title": "Split (9:8 x2)",
				"subtitle": "Two speakers stacked vertically"
			},
			"presentation": {
				"title": "Presentation (9:8 x2)",
				"subtitle": "Speaker + slides layout"
			},
			"square": {
				"title": "Square (1:1)",
				"subtitle": "Great for high-paced YouTube videos"
			}
		}
	},
	"uploadZone": {
		"linkTypes": {
			"youtube": "YouTube link",
			"dropbox": "Dropbox link"
		},
		"dropAPlaceholder": "Drop a {linkType}",
		"placeholder": "Paste a YouTube or Dropbox link",
		"uploadFileButton": "Upload File"
	},
	"videoCard": {
		"expiredBadge": "Expired",
		"status": {
			"analyzing": "Analyzing...",
			"pending": "Pending",
			"uploaded": "Uploaded",
			"downloading": "Downloading...",
			"processing": "Processing...",
			"generatingClips": "Generating clips...",
			"creatingCaptions": "Creating captions...",
			"finishing": "Finishing...",
			"ready": "Ready",
			"failed": "Failed",
			"downloadFailed": "Download Failed",
			"refunded": "Refunded",
			"expired": "Expired",
			"deleted": "Deleted"
		},
		"pipeline": {
			"clips": "Clips",
			"multicam": "Multicam",
			"captions": "Captions",
			"aiMotion": "AI Motion",
			"jumpCuts": "Jump Cuts"
		},
		"menu": {
			"clipInfo": "Clip info",
			"unsave": "Unsave",
			"recoverAndSave": "Recover & save forever",
			"saveForever": "Save forever",
			"delete": "Delete"
		},
		"saved": "Saved",
		"expiresInShort": "{expiresIn} left",
		"viewError": "View error",
		"moreOptions": "More options",
		"viewErrorButton": "View Error",
		"expiresIn": "Expires in {expiresIn}",
		"errorModal": {
			"contactUs": "Contact Us",
			"close": "Close"
		},
		"clipInfoModal": {
			"durationLabels": {
				"under30": "Under 30s",
				"between30And60": "30s - 60s",
				"between60And180": "60s - 180s"
			},
			"pipelineLabels": {
				"clips": "AI Clipping",
				"captions": "AI Captioning",
				"multicam": "Multicam",
				"aiMotion": "AI Motion Graphics",
				"jumpCuts": "Auto Jump Cuts"
			},
			"title": "Clip Info",
			"subtitle": "Details about this video project",
			"titleLabel": "Title: ",
			"titleValue": "\"{title}\"",
			"videoTypeLabel": "Video type: ",
			"preferredClipLengthLabel": "Preferred clip length: ",
			"estimatedWaitingTimeLabel": "Estimated waiting time: ",
			"statusProgress": "{statusLabel}... {progressPercent}%",
			"statusPrefix": "Status: "
		}
	},
	"youtubeTutorials": {
		"title": "Videotto Tutorials",
		"videos": {
			"presentationClipping": "How to use Presentation Clipping",
			"translatedClipping": "How to do Translated Clipping"
		}
	},
	"googleDrivePicker": {
		"errors": {
			"pickerTokenFailed": "Failed to get picker token",
			"pickerOpenFailed": "Failed to open Google Drive picker"
		},
		"pickerTitles": {
			"filesOrFolders": "Select Files or Folders",
			"video": "Select a Video"
		},
		"loading": "Loading...",
		"connecting": "Connecting...",
		"label": "Google Drive"
	},
	"feedbackForm": {
		"title": "Send feedback",
		"typeLabel": "Feedback type",
		"types": {
			"bug": "Bug",
			"feature": "Idea",
			"other": "Other"
		},
		"titleLabel": "Title",
		"titlePlaceholder": "What's on your mind?",
		"descriptionLabel": "Details (optional)",
		"descriptionPlaceholder": "What happened, or what would you like to see?",
		"send": "Send",
		"sending": "Sending…",
		"cancel": "Cancel",
		"close": "Close",
		"sentTitle": "Thanks — we got it",
		"sentBody": "Thanks! The team reviews every post, and approved ones show up on the feedback board.",
		"errorUnavailable": "We couldn't send that right now. Your message is still here — please try again in a moment.",
		"errorSignedOut": "Your session has ended. Sign in again to send feedback.",
		"errorRejected": "We couldn't accept that feedback. Please check it and try again."
	},
	"feedbackBoard": {
		"metaTitle": "Feedback | Videotto",
		"title": "Feedback",
		"subtitle": "See what's planned, vote for what matters to you, and join the conversation.",
		"newPost": "New post",
		"emptyTitle": "No posts yet",
		"emptyBody": "Be the first to share an idea or report a problem.",
		"emptyColumn": "Nothing here yet",
		"vote": "Upvote",
		"unvote": "Remove upvote",
		"voteFailed": "We couldn't save your vote. Please try again.",
		"retry": "Try again",
		"back": "Back to board",
		"errorUnavailable": "The feedback board isn't available right now. Please try again in a moment.",
		"errorNotFound": "This post isn't available.",
		"errorSignedOut": "Your session has ended. Sign in again to continue.",
		"commentsTitle": "{count, plural, one {# comment} other {# comments}}",
		"noComments": "No comments yet.",
		"staff": "Team",
		"commentPlaceholder": "Add a comment…",
		"commentSend": "Comment",
		"commentSending": "Posting…",
		"commentFailed": "We couldn't post your comment. It's still here — please try again.",
		"commentRejected": "We couldn't accept that comment. Please check it and try again."
	}
}
