export default { nav: { feed: 'Feed', compose: 'New Post', media: 'Media', scheduler: 'Scheduler', analytics: 'Analytics', competitors: 'Competitors', settings: 'Settings', }, analytics: { title: 'Analytics', subtitle: 'Publishing activity across all connected platforms', refresh: 'Refresh', loading: 'Loading analytics…', empty: 'No posts yet.', emptyHint: 'Start publishing to see analytics here.', totalPosts: 'Total Posts', last7Days: 'Last 7 Days', platformsReached: 'Platforms Reached', successRate: 'Success Rate', postsPerDay: 'Posts per Day', postsPerDaySubtitle: 'Last 30 days', noActivity: 'No activity in the last 30 days.', platformBreakdown: 'Platform Breakdown', successfulPosts: 'successful posts', statusBreakdown: 'Status Breakdown', published: 'Published', partial: 'Partial', failed: 'Failed', recentPosts: 'Recent Posts', colContent: 'Content', colPlatforms: 'Platforms', colDate: 'Date', colStatus: 'Status', statusPublished: 'Published', statusPartial: 'Partial', statusFailed: 'Failed', typeScheduled: 'Scheduled', typeImmediate: 'Immediate', noRecentPosts: 'No posts to show.', loadMore: 'Load more', noContent: 'Content not available for older posts', filterBy: 'Filter:', filterAll: 'All', crawlMetrics: 'Crawl Metrics', crawling: 'Crawling…', crawlDone: 'Crawled {count} posts', insightsTitle: 'Advanced Insights', insightsSubtitle: 'Engagement metrics from connected platforms', insightsEmpty: 'No engagement data yet.', insightsEmptyHint: 'Click "Crawl Metrics" to fetch engagement data from your connected platforms.', bestTimeTitle: 'Best Posting Times', bestTimeSubtitle: 'Average engagement score by time (UTC)', byHourTitle: 'By Hour of Day', byDayTitle: 'By Day of Week', heatmapTitle: 'Engagement Heatmap', heatmapSubtitle: 'Day × hour (UTC) — darker = higher avg engagement', topPostsTitle: 'Top Performing Posts', noTopPosts: 'No top posts yet.', platformCompTitle: 'Platform Comparison', colAvgEngagement: 'Avg Engagement', colAvgLikes: 'Avg Likes', colAvgComments: 'Avg Comments', colAvgShares: 'Avg Shares', colTracked: 'Posts Tracked', dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], }, media: { title: 'Media Library', fileCount: '{count} files', upload: 'Upload', uploading: 'Uploading…', dropZoneTitle: 'Drop files here or click Upload', dropZoneHint: 'Supports JPEG, PNG, GIF, WebP, MP4, MOV — up to 100 MB each', useInPost: 'Use in Post', copyUrl: 'Copy URL', copied: 'Copied!', deleteConfirmTitle: 'Delete this file?', deleteConfirmHint: 'This cannot be undone. Any posts using this file will lose the media.', cancel: 'Cancel', delete: 'Delete', deleting: 'Deleting…', allFiles: 'All Files', unorganized: 'Unorganized', accounts: 'Accounts', folders: 'Folders', newFolder: 'New Folder', folderNamePlaceholder: 'Folder name…', moveToFolder: 'Move to folder', removeFolderAssign: 'Remove from folder', }, dashboard: { platforms: 'Platforms', tags: 'Tags', allTags: 'All', searchPlaceholder: 'Search content or user...', refresh: 'Refresh', refreshing: 'Refreshing...', newPost: '+ New Post', loading: 'Loading feed...', empty: 'No content to show.', emptyHint: 'Check platform connections or refresh the feed.', }, compose: { title: 'New Post', destinationsLabel: 'Post to', placeholder: "What's on your mind?", cancel: 'Cancel', schedule: 'Schedule', send: 'Post Now →', sending: 'Posting...', successMessage: 'Post sent successfully.', scheduleTitle: 'Schedule post (leave empty to post now)', timezoneLabel: 'Timezone', timezoneAutoFrom: 'Auto from account', preview: 'Preview', addMedia: 'Photo / Video', uploadFile: 'Upload a photo or video from your device', uploading: 'Uploading…', uploadFailed: 'Upload failed. Please try again.', pasteUrl: 'or paste a URL', cancelUrl: 'cancel', mediaUrlPlaceholder: 'Paste image or video URL, then press Enter…', mediaLoadError: 'Could not load this URL — check it is publicly accessible.', igImageRequired: 'Instagram requires an image or video.', noDestinations: 'No platforms configured.', goToSettings: 'Go to Settings →', saveDraft: 'Save Draft', updateDraft: 'Update Draft', savingDraft: 'Saving…', draftSaved: 'Draft saved.', suggestedTimes: 'Suggested times', suggestionsFromHistory: 'based on your history', suggestionsFromDefaults: 'industry best practices', suggestionsLoading: 'Loading suggestions…', hashtagSuggestions: 'Suggested hashtags', hashtagsLoading: 'Suggesting…', hashtagsRefresh: 'Refresh', hashtagGroups: 'Hashtag groups', aiButton: 'AI', aiPanelTitle: 'Generate with AI', aiTopic: 'Topic', aiTopicPlaceholder: 'What should this post be about?', aiGoal: 'Goal', aiGoals: { promote: 'Promote', engage: 'Engage', inform: 'Inform', entertain: 'Entertain', announce: 'Announce', }, aiTone: 'Tone', aiToneDefault: 'From profile', aiGenerate: 'Generate', aiGenerating: 'Generating…', aiStop: 'Stop', aiContextFrom: 'Context: {account}', aiNoContext: 'No profile — set one in Settings', aiNotConfigured: 'AI not configured — check Settings → AI Integration', aiError: 'Generation failed', aiUseCompetitors: 'Use competitor context', aiUseCompetitorsHint: 'differentiate from {names}', captionGenerate: '✨ Generate caption', captionGenerating: 'Generating caption…', captionError: 'Caption generation failed', firstCommentToggle: 'First Comment', firstCommentPlaceholder: 'Add a first comment (hashtags, links, extra context)…', firstCommentHint: 'Supported on Instagram, Facebook, Mastodon, and Bluesky.', }, scheduler: { title: 'Scheduler', newSchedule: '+ New Post', noJobs: 'No scheduled posts.', statuses: { pending: 'Pending', completed: 'Completed', failed: 'Failed', cancelled: 'Cancelled', }, cancel: 'Cancel', scheduledTab: 'Scheduled', calendarTab: 'Calendar', draftsTab: 'Drafts', noDrafts: 'No saved drafts.', editDraft: 'Edit', deleteDraft: 'Delete', goToToday: 'Today', noJobsDay: 'No posts scheduled for this day.', weekDaysShort: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'], months: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'], bulkDraft: { openButton: 'Bulk Generate', title: 'Bulk AI Draft Generation', subtitle: 'Generate draft posts for multiple topics at once.', topicsLabel: 'Topics (one per line)', topicsPlaceholder: 'New product launch\nWeekly tips roundup\nBehind the scenes...', topicsHint: 'Each line becomes one AI-generated draft saved to your Drafts tab.', toneLabel: 'Tone', destinationsLabel: 'Destinations', noDestinations: 'No platforms connected. Connect platforms in Settings first.', progress: 'Generation progress', generate: 'Generate Drafts', generating: 'Starting…', generateMore: 'Generate More', viewDrafts: 'View Drafts', runInBackground: 'Run in background', statusDone: '{completed} draft created | {completed} drafts created ({failed} failed)', statusFailed: 'Batch failed unexpectedly. Please try again.', statusGenerating: 'Generating — {count} remaining…', tones: { professional: 'Professional', casual: 'Casual', engaging: 'Engaging', informative: 'Informative', humorous: 'Humorous', inspirational: 'Inspirational', }, }, }, settings: { title: 'Platform Connections', subtitle: 'Edit the {env} file to connect platforms, then restart the relevant service.', connected: 'Connected', notConnected: 'Not connected', refreshStatus: '↻ Refresh Status', envHint: 'Configuration required', profiles: { sectionTitle: 'Account Profiles', sectionSubtitle: 'Business context used to personalise AI-generated content.', edit: 'Edit', close: 'Close', save: 'Save Profile', saving: 'Saving…', saved: 'Saved!', noAccounts: 'No connected accounts. Connect platforms above first.', businessName: 'Business Name', businessNameHint: 'e.g. Acme Coffee Roasters', description: 'Description', descriptionHint: 'What does this account represent? What do you do?', websiteUrl: 'Website URL', industry: 'Industry', industryHint: 'e.g. Food & Beverage, SaaS, Retail', targetAudience: 'Target Audience', targetAudienceHint: 'e.g. Coffee enthusiasts aged 25–45', toneOfVoice: 'Tone of Voice', toneSelect: 'Select a tone…', keywords: 'Keywords', keywordsHint: 'Comma-separated, e.g. organic, specialty, single-origin', hashtags: 'Preferred Hashtags', hashtagsHint: 'e.g. #specialtycoffee #coffeelovers', postingGuidelines: 'Posting Guidelines', postingGuidelinesHint: 'Any specific rules, e.g. always mention opening hours on Fridays', timezone: 'Timezone', timezoneHint: 'Used to schedule posts at the correct local time for this account.', timezoneAuto: 'Use browser timezone', }, hashtags: { sectionTitle: 'Hashtag Groups', sectionSubtitle: 'Save hashtag presets and analyse performance from your published posts.', addGroup: 'Add Group', createGroup: 'Create Group', noGroups: 'No hashtag groups yet.', edit: 'Edit', delete: 'Delete', deleteConfirm: 'Delete this hashtag group?', save: 'Save', cancel: 'Cancel', groupNamePlaceholder: 'Group name (e.g. Photography)', hashtagsPlaceholder: '#photography #nature #travel — space or comma separated', showStats: 'Show Stats', hideStats: 'Hide Stats', statsTitle: 'Hashtag Performance', sortByUsage: 'By Usage', sortByEngagement: 'By Engagement', scanPosts: 'Scan Posts', scanning: 'Scanning…', loadingStats: 'Loading stats…', noStats: 'No hashtag stats yet — scan your posts to analyse performance.', allAccounts: 'All accounts', aiSuggest: 'AI Suggest', suggesting: 'Generating…', selectToGroup: 'Click tags to select, then save as a group:', colHashtag: 'Hashtag', colUses: 'Uses', colEngagement: 'Avg Engagement', colGrade: 'Grade', colPlatforms: 'Platforms', }, tiktok: { sectionTitle: 'TikTok', sectionSubtitle: 'Connect your TikTok account to publish videos.', clientKeyLabel: 'Client Key', clientSecretLabel: 'Client Secret', clientKeyPlaceholder: 'Your TikTok App Client Key', clientSecretPlaceholder: 'Your TikTok App Client Secret', saveApp: 'Save App Credentials', saving: 'Saving...', appConfigured: 'App credentials saved', connectButton: 'Connect with TikTok', connecting: 'Redirecting to TikTok...', reconnect: 'Reconnect', disconnect: 'Disconnect', disconnectConfirm: 'This will disconnect your TikTok account. Continue?', connectedAs: 'Connected as', videoOnly: 'TikTok only supports video posts. Select a video in Compose to publish.', errorTitle: 'TikTok OAuth Error', getAppHelp: 'Get your credentials from', devPortal: 'developers.tiktok.com', }, pinterest: { sectionTitle: 'Pinterest', sectionSubtitle: 'Connect your Pinterest account to create pins on your boards.', clientIdLabel: 'Client ID', clientSecretLabel: 'Client Secret', clientIdPlaceholder: 'Your Pinterest App Client ID', clientSecretPlaceholder: 'Your Pinterest App Client Secret', saveApp: 'Save App Credentials', saving: 'Saving...', appConfigured: 'App credentials saved', connectButton: 'Connect with Pinterest', connecting: 'Redirecting to Pinterest...', reconnect: 'Reconnect', disconnect: 'Disconnect', disconnectConfirm: 'This will disconnect your Pinterest account and all boards. Continue?', boardsTitle: 'Your Boards', noBoards: 'No boards found.', saveBoards: 'Save Board Selection', savingBoards: 'Saving...', boardsSaved: 'Saved!', getAppHelp: 'Get your credentials from', devPortal: 'developers.pinterest.com', errorTitle: 'Pinterest OAuth Error', }, meta: { sectionTitle: 'Facebook & Instagram', sectionSubtitle: 'Both platforms share a single Facebook Developer App. Connect once to manage all your Pages and Instagram accounts.', appIdLabel: 'App ID', appSecretLabel: 'App Secret', appIdPlaceholder: 'Your Facebook App ID', appSecretPlaceholder: 'Your Facebook App Secret', saveApp: 'Save App Credentials', saving: 'Saving...', appConfigured: 'App credentials saved', connectButton: 'Connect with Facebook & Instagram', connecting: 'Redirecting to Facebook...', reconnect: 'Reconnect', disconnect: 'Disconnect all', disconnectConfirm: 'This will disconnect all Facebook Pages and Instagram accounts. Continue?', discoveryTitle: 'Choose Pages & Accounts to Connect', discoverySubtitle: 'Select any combination of Facebook Pages and Instagram accounts below.', pagesHeading: 'Facebook Pages', igHeading: 'Instagram Accounts', noPages: 'No Facebook Pages found for this account.', noIgAccounts: 'No Instagram Business accounts found.', igLinkedTo: 'Linked to', confirmSelection: 'Connect Selected', confirmingSelection: 'Connecting...', nothingSelected: 'Select at least one Page or Instagram account.', connectedPages: 'Connected Pages', connectedAccounts: 'Connected Accounts', errorTitle: 'OAuth Error', getAppHelp: 'Get your App ID and Secret from', devPortal: 'developers.facebook.com', expiryWarningTitle: 'Instagram token expiring soon', expiryWarningBody: '{username} expires in {days} day | {username} expires in {days} days', expiryRefreshToken: 'Refresh Token', expiryRefreshing: 'Refreshing…', expiryRefreshDone: 'Token refreshed', expiryAutoNote: 'Tokens are refreshed automatically when ≤ 7 days remain.', expiryReconnect: 'Reconnect', expiryDismiss: 'Dismiss', }, }, ai: { sectionTitle: 'AI Integration', sectionSubtitle: 'Connect a local Ollama instance to generate post content with AI.', endpointLabel: 'Ollama Endpoint', endpointPlaceholder: 'http://localhost:11434', endpointHint: 'Inside Docker the default is http://ollama:11434', modelLabel: 'Model', modelPlaceholder: 'Select a model…', testConnection: 'Test Connection', testing: 'Testing…', saveConfig: 'Save', saving: 'Saving…', saved: 'Saved!', noModels: 'No models found — is Ollama running?', connected: 'Connected', connectionFailed: 'Connection failed', modelsAvailable: '{count} model available | {count} models available', visionModelLabel: 'Vision Model', visionModelPlaceholder: 'e.g. llava, llama3.2-vision', visionModelHint: 'Used for image captioning. Pull with: ollama pull llava', activeProvider: 'Active Provider', setActive: 'Set as Active', active: 'Active', disconnect: 'Disconnect', disconnectConfirm: 'Remove this provider and its API key?', apiKeyLabel: 'API Key', apiKeyPlaceholder: 'Paste your API key…', apiKeyConfigured: 'API key saved', connectAndActivate: 'Connect & Set Active', saveProvider: 'Save', providerSaved: 'Saved!', openai: { sectionTitle: 'OpenAI', sectionSubtitle: 'GPT-4o and GPT-4o-mini via the OpenAI API.', getKeyHint: 'Get an API key at platform.openai.com', }, groq: { sectionTitle: 'Groq', sectionSubtitle: 'Ultra-fast inference with Llama and Mixtral models.', getKeyHint: 'Get an API key at console.groq.com', }, gemini: { sectionTitle: 'Google Gemini', sectionSubtitle: 'Gemini 2.0 Flash and 1.5 Pro with native vision support.', getKeyHint: 'Get an API key at aistudio.google.com', }, }, feed: { openOriginal: '↗ Open', }, competitors: { sectionTitle: 'Competitor Intelligence', sectionSubtitle: 'Track up to 2 competitors and use their content to improve your AI-generated posts.', addCompetitor: 'Add Competitor', addButton: 'Add', namePlaceholder: 'Competitor name', websitePlaceholder: 'https://competitor.com', socialUrls: 'Social profile URLs', scrapeNow: 'Scrape Now', scraping: 'Scraping…', summarizeAi: 'Summarise with AI', summarizing: 'Summarising…', extractKeywords: 'Extract Keywords', extractingKeywords: 'Extracting…', aiSummaryLabel: 'AI Summary', aiAnalysisLabel: 'AI Analysis', analysisTone: 'Tone', analysisPositioning: 'Positioning', analysisThemes: 'Content themes', analysisGaps: 'Gaps & opportunities', analysisMoves: 'Differentiation moves', keywordsLabel: 'Competitor Keywords', lastScraped: 'Last scraped', scrapeSuccess: 'Scraped {count} source(s) successfully', scrapeNoContent: 'No content found — check the URL and try again', emptyState: 'No competitors added yet. Add up to 2 to track their content.', maxReached: 'Maximum 2 competitors reached.', edit: 'Edit', save: 'Save', cancel: 'Cancel', delete: 'Remove', confirmDelete: 'Remove this competitor?', }, platforms: { twitter: 'Twitter/X', linkedin: 'LinkedIn', mastodon: 'Mastodon', bluesky: 'Bluesky', instagram: 'Instagram', facebook: 'Facebook', reddit: 'Reddit', youtube: 'YouTube', pinterest: 'Pinterest', tiktok: 'TikTok', }, }