import type { TranslationMap } from '../types';

// English chunk 3/5. Source of truth for translators.
const en3: TranslationMap = {
  'insights.other': 'Other',
  'insights.title': 'Insights',
  'insights.empty': 'No insights yet. Insights are generated as your memory grows.',
  'insights.description': 'Based on {count} relations in your memory graph.',
  'insights.items': 'items',
  'insights.more': 'more',
  'calls.joiningCall': 'Joining call',
  'calls.meetWindowOpening': 'The Meet window is opening...',
  'calls.failedToStart': 'Failed to start Meet call',
  'calls.couldNotStart': 'Could not start call',
  'calls.failedToClose': 'Failed to close call',
  'calls.couldNotClose': 'Could not close call',
  'calls.joinMeet': 'Join a Google Meet call',
  'calls.joinMeetDescription': 'Enter a Google Meet link to join.',
  'calls.meetLink': 'Meet Link',
  'calls.displayName': 'Display Name',
  'calls.openingMeet': 'Opening Meet...',
  'calls.joinCall': 'Join Call',
  'calls.activeCalls': 'Active Calls',
  'calls.leave': 'Leave',
  'workspace.wipeConfirm': 'Are you sure you want to wipe all memory? This cannot be undone.',
  'workspace.resetTreeConfirm': 'Are you sure you want to rebuild the memory tree?',
  'workspace.wipeTitle': 'Wipe Memory',
  'workspace.resetting': 'Resetting...',
  'workspace.resetMemory': 'Reset Memory',
  'workspace.resetTreeTitle': 'Rebuild Memory Tree',
  'workspace.rebuilding': 'Rebuilding...',
  'workspace.resetMemoryTree': 'Reset Memory Tree',
  'workspace.building': 'Building...',
  'workspace.buildSummaryTrees': 'Build Summary Trees',
  'workspace.viewVault': 'View Vault',
  'workspace.openingVaultTitle': 'Opening vault in Obsidian',
  'workspace.openingVaultMessage':
    "If Obsidian doesn't open, install it from obsidian.md or use Reveal Folder. Vault path:",
  'workspace.openVaultFailedTitle': "Couldn't open vault in Obsidian",
  'workspace.openVaultFailedMessage':
    'Use Reveal Folder to open the vault directory directly. Vault path:',
  'workspace.revealVaultFailed': "Couldn't reveal vault folder",
  'workspace.revealFolder': 'Reveal Folder',
  'workspace.graphLoadFailed': 'Failed to load memory graph',
  'workspace.loadingGraph': 'Loading memory graph...',
  'workspace.graphViewMode': 'Memory graph view mode',
  'workspace.trees': 'Trees',
  'workspace.contacts': 'Contacts',
  'graph.noContactMentions': 'No contact mentions',
  'graph.noMemory': 'No memory',
  'graph.source': 'Source',
  'graph.topic': 'Topic',
  'graph.global': 'Global',
  'graph.document': 'Document',
  'graph.contact': 'Contact',
  'graph.nodes': 'nodes',
  'graph.parentChild': 'parent-child',
  'graph.documentContact': 'document-contact',
  'graph.link': 'link',
  'graph.links': 'links',
  'graph.children': 'children',
  'graph.clickToOpenObsidian': 'Click to open in Obsidian',
  'graph.person': 'Person',
  'modal.dontShowAgain': "Don't show similar suggestions",
  'reflections.loading': 'Loading reflections...',
  'reflections.empty': 'No reflections yet',
  'reflections.title': 'Reflections',
  'reflections.proposedAction': 'Proposed Action',
  'reflections.act': 'Act',
  'reflections.dismiss': 'Dismiss',
  'whatsapp.chatsSynced': 'chats synced',
  'whatsapp.chatSynced': 'chat synced',
  'sync.active': 'Active',
  'sync.recent': 'Recent',
  'sync.idle': 'Idle',
  'sync.memorySources': 'Memory Sources',
  'sync.noConnectedSources': 'No connected sources',
  'sync.chunks': 'chunks',
  'sync.lastChunk': 'Last chunk:',
  'sync.pending': 'pending',
  'sync.processed': 'processed',
  'sync.syncing': 'Syncing…',
  'sync.sync': 'Sync',
  'sync.failedToLoad': 'Failed to load sync status',
  'sync.noContent': 'No content has been synced into memory yet. Connect an integration to start.',
  'backend.aiBackend': 'AI Backend',
  'backend.cloud': 'Cloud',
  'backend.recommended': 'Recommended',
  'backend.cloudDescription':
    'Fast, powerful models routed through the OpenHuman backend. Ready to use immediately.',
  'backend.privacyNote':
    'Prompts and selected context may be sent to the configured backend/provider. Use local mode for supported on-device workloads.',
  'backend.local': 'Local',
  'backend.advanced': 'Advanced',
  'backend.localDescription':
    'Run models on your own machine using Ollama. Full privacy, requires setup.',
  'backend.ramRecommended': '16GB+ RAM recommended',
  'subconscious.tasks': 'tasks',
  'subconscious.ticks': 'ticks',
  'subconscious.last': 'Last',
  'subconscious.failed': 'failed',
  'subconscious.tickInterval': 'Tick Interval',
  'subconscious.runNow': 'Run Now',
  'subconscious.providerUnavailableTitle': 'Subconscious is paused',
  'subconscious.providerSettings': 'AI settings',
  'subconscious.approvalNeeded': 'Approval Needed',
  'subconscious.requiresApproval': 'Requires approval',
  'subconscious.fixInConnections': 'Fix in Connections',
  'subconscious.goAhead': 'Go Ahead',
  'subconscious.activeTasks': 'Active Tasks',
  'subconscious.noActiveTasks': 'No active tasks',
  'subconscious.default': 'Default',
  'subconscious.addTaskPlaceholder': 'Add a new task...',
  'subconscious.activityLog': 'Activity Log',
  'subconscious.noActivity': 'No activity yet',
  'subconscious.decision.nothingNew': 'Nothing new',
  'subconscious.decision.completed': 'Completed',
  'subconscious.decision.evaluating': 'Evaluating',
  'subconscious.decision.waitingApproval': 'Waiting for approval',
  'subconscious.decision.failed': 'Failed',
  'subconscious.decision.cancelled': 'Cancelled',
  'subconscious.decision.skipped': 'Skipped',
  'actionable.complete': 'Complete',
  'actionable.dismiss': 'Dismiss',
  'actionable.snooze': 'Snooze',
  'actionable.new': 'New',
  'stats.storage': 'Storage',
  'stats.files': 'files',
  'stats.documents': 'Documents',
  'stats.today': 'today',
  'stats.namespaces': 'Namespaces',
  'stats.relations': 'Relations',
  'stats.firstMemory': 'First Memory',
  'stats.latest': 'Latest',
  'stats.sessions': 'Sessions',
  'stats.tokens': 'tokens',
  'bootCheck.invalidUrl': 'Please enter a runtime URL.',
  'bootCheck.urlMustStartWith': 'The URL needs to start with http:// or https://',
  'bootCheck.validUrlRequired':
    "That doesn't look like a valid URL (try https://core.example.com/rpc)",
  'bootCheck.tokenRequired': "We'll need an auth token to connect.",
  'bootCheck.chooseCoreMode': 'Select a Runtime',
  'bootCheck.connectToCore': 'Connect to Your Runtime',
  'bootCheck.desktopDescription': 'OpenHuman needs a runtime to think. Pick where it should live.',
  'bootCheck.webDescription':
    'On the web, OpenHuman connects to a runtime you control. Drop in its URL and auth token below, or grab the desktop app to run one right on your machine.',
  'bootCheck.preferDesktop': 'Rather keep everything on your own device?',
  'bootCheck.downloadDesktop': 'Get the Desktop App',
  'bootCheck.localRecommended': 'Run Locally (Recommended)',
  'bootCheck.localDescription':
    'Runs right here on your computer. Fastest, fully private, nothing to set up.',
  'bootCheck.cloudMode': 'Run on the Cloud (Complex)',
  'bootCheck.cloudDescription':
    "Connect to a runtime you're hosting elsewhere. Stays online 24×7 so you don't need to keep this device running.",
  'bootCheck.coreRpcUrl': 'Runtime URL',
  'bootCheck.rpcUrlPlaceholder': 'https://core.example.com/rpc',
  'bootCheck.authToken': 'Auth Token',
  'bootCheck.bearerTokenPlaceholder': 'The bearer token from your remote runtime',
  'bootCheck.storedLocally': 'Kept on this device only. Sent as ',
  'bootCheck.testing': 'Testing…',
  'bootCheck.testConnection': 'Test Connection',
  'bootCheck.connectedOk': "Connected. You're good to go.",
  'bootCheck.authFailed': "That token didn't work. Double-check it and try again.",
  'bootCheck.unreachablePrefix': "Couldn't reach it:",
  'bootCheck.checkingCore': 'Waking up your runtime…',
  'bootCheck.cannotReach': "Can't Reach the Runtime",
  'bootCheck.cannotReachDesc': "We couldn't connect to your runtime. Want to try a different one?",
  'bootCheck.switchMode': 'Pick a Different Runtime',
  'bootCheck.quit': 'Quit',
  'bootCheck.legacyDetected': 'Legacy Background Runtime Detected',
  'bootCheck.legacyDescription':
    'A separately-installed OpenHuman daemon is already running on this device. We need to clear it out before the built-in runtime can take over.',
  'bootCheck.removing': 'Removing…',
  'bootCheck.removeContinue': 'Remove and Continue',
  'bootCheck.localNeedsRestart': 'Local Runtime Needs a Restart',
  'bootCheck.localNeedsRestartDesc':
    'Your local runtime is on a different version than this app. A quick restart will get them back in sync.',
  'bootCheck.restarting': 'Restarting…',
  'bootCheck.restartCore': 'Restart Runtime',
  'bootCheck.cloudNeedsUpdate': 'Cloud Runtime Needs an Update',
  'bootCheck.cloudNeedsUpdateDesc':
    'Your cloud runtime is on a different version than this app. Run the updater to bring them back in sync.',
  'bootCheck.updating': 'Updating…',
  'bootCheck.updateCloudCore': 'Update Cloud Runtime',
  'bootCheck.versionCheckFailed': 'Runtime Version Check Failed',
  'bootCheck.versionCheckFailedDesc':
    "Your runtime is up but isn't reporting its version. It may be outdated. Restart or update it to continue.",
  'bootCheck.working': 'Working…',
  'bootCheck.restartUpdateCore': 'Restart / Update Runtime',
  'bootCheck.unexpectedError': 'Unexpected Boot-Check Error',
  'bootCheck.actionFailed': 'Something went wrong. Please try again.',
  'notifications.justNow': 'just now',
  'notifications.minAgo': '{n}m ago',
  'notifications.hrAgo': '{n}h ago',
  'notifications.dayAgo': '{n}d ago',
  'notifications.category.messages': 'Messages',
  'notifications.category.agents': 'Agents',
  'notifications.category.skills': 'Skills',
  'notifications.category.system': 'System',
  'notifications.category.meetings': 'Meetings',
  'notifications.category.reminders': 'Reminders',
  'notifications.category.important': 'Important',
  'about.update.status.checking': 'Checking...',
  'about.update.status.available': 'v{version} available',
  'about.update.status.availableNoVersion': 'Update available',
  'about.update.status.downloading': 'Downloading...',
  'about.update.status.readyToInstall': 'v{version} ready to install',
  'about.update.status.readyToInstallNoVersion':
    'A new version is downloaded and ready. Restart to apply.',
  'about.update.status.installing': 'Installing...',
  'about.update.status.restarting': 'Restarting...',
  'about.update.status.upToDate': 'You are running the latest version.',
  'about.update.status.error': 'Update check failed',
  'about.update.status.default': 'Check for updates',
  'welcome.connectionFailed': 'Connection failed: {status} {statusText}',
  'welcome.connectionFailedMsg': 'Connection failed: {message}',
  'chat.agentChatDesc': 'Open a direct chat session with the agent.',
  'channels.activeRouteValue': '{channel} via {authMode}',
  'privacy.dataKind.messages': 'Messages',
  'privacy.dataKind.agents': 'Agents',
  'privacy.dataKind.skills': 'Skills',
  'privacy.dataKind.system': 'System',
  'privacy.dataKind.meetings': 'Meetings',
  'privacy.dataKind.reminders': 'Reminders',
  'privacy.dataKind.important': 'Important',
  'onboarding.enableLocalAI': 'Enable Local AI',
  'onboarding.skills.status.available': 'Available',
  'onboarding.skills.status.connected': 'Connected',
  'onboarding.skills.status.connecting': 'Connecting',
  'onboarding.skills.status.error': 'Error',
  'onboarding.skills.status.unavailable': 'Unavailable',
  'composio.statusUnavailable': 'Status unavailable',
  'composio.envVarOverrides': 'is set, it overrides this setting.',
  'memory.day.sun': 'Sun',
  'memory.day.mon': 'Mon',
  'memory.day.tue': 'Tue',
  'memory.day.wed': 'Wed',
  'memory.day.thu': 'Thu',
  'memory.day.fri': 'Fri',
  'memory.day.sat': 'Sat',
  'memory.ingesting': 'Ingesting',
  'memory.ingestionQueued': 'Queued',
  'memory.ingestingTitle': 'Ingesting {title}',
  'mic.noAudioCaptured': 'No audio captured',
  'mic.noSpeechDetected': 'No speech detected',
  'mic.failedToStopRecording': 'Failed to stop recording: {message}',
  'mic.transcriptionFailed': 'Transcription failed: {message}',
  'reflections.kind.retrospective': 'Retrospective',
  'reflections.kind.derivedFact': 'Derived Fact',
  'reflections.kind.moodInsight': 'Mood Insight',
  'reflections.kind.relationshipInsight': 'Relationship Insight',
  'graph.tooltip.summary': 'Summary',
  'graph.tooltip.contact': 'Contact',
  'localModel.usage.never': 'Never',
  'localModel.usage.mediumLoad': 'Medium load',
  'localModel.usage.lowLoad': 'Low load',
  'localModel.usage.idleMode': 'Idle mode',
  'localModel.rebootstrapComplete': 'Model re-bootstrap complete.',
  'localModel.modelsVerified': 'Local models verified.',
  'accounts.addModal.allConnected': 'All connected',
  'accounts.addModal.title': 'Add account',
  'accounts.respondQueue.empty': 'Empty',
  'accounts.respondQueue.hide': 'Hide respond queue',
  'accounts.respondQueue.loadFailed': 'Failed to load respond queue',
  'accounts.respondQueue.loading': 'Loading queue…',
  'accounts.respondQueue.pending': 'Pending',
  'accounts.respondQueue.show': 'Show respond queue',
  'accounts.respondQueue.title': 'Respond queue',
  'accounts.webviewHost.almostReady': 'Almost ready...',
  'accounts.webviewHost.loadTimeout': 'Webview load timeout',
  'accounts.webviewHost.loading': 'Loading {providerName}...',
  'accounts.webviewHost.loadingAccount': 'Loading account',
  'accounts.webviewHost.restoringSession': 'Restoring session...',
  'accounts.webviewHost.retryLoading': 'Retry loading',
  'accounts.webviewHost.takingLonger': '{providerName} is taking longer than expected.',
  'accounts.webviewHost.timeoutHint': 'Timeout hint',
  'app.connectionBadge.composio': 'Composio',
  'app.connectionBadge.messaging': 'Messaging',
  'app.connectionIndicator.connected': 'Connected to OpenHuman AI 🚀',
  'app.connectionIndicator.connecting': 'Connecting',
  'app.connectionIndicator.coreOffline': 'Core offline',
  'app.connectionIndicator.disconnected': 'Disconnected',
  'app.connectionIndicator.offline': 'Offline',
  'app.connectionIndicator.reconnecting': 'Reconnecting…',
  'app.errorFallback.componentStack': 'Component stack',
  'app.errorFallback.downloadLatest': 'Download latest',
  'app.errorFallback.heading': 'Heading',
  'app.errorFallback.hint': 'Hint',
  'app.errorFallback.reloadApp': 'Reload app',
  'app.errorFallback.subheading': 'Subheading',
  'app.errorFallback.tryRecover': 'Try recover',
  'app.localAiDownload.installing': 'Installing...',
  'app.localAiDownload.preparing': 'Preparing...',
  'app.openhumanLink.accounts.continueWith': 'Continue with {label} sign-in',
  'app.openhumanLink.accounts.done': 'Done',
  'app.openhumanLink.accounts.intro': 'Intro',
  'app.openhumanLink.accounts.webviewNote': 'Webview note',
  'app.openhumanLink.billing.openDashboard': 'Open dashboard',
  'app.openhumanLink.billing.stayOnTrial': 'Stay on trial',
  'app.openhumanLink.billing.trialCredit': 'Trial credit',
  'app.openhumanLink.billing.trialDesc': 'Trial desc',
  'app.openhumanLink.defaultBody':
    'Not ready in the popup yet. Open the full settings page when you need it.',
  'app.openhumanLink.discord.intro': 'Intro',
  'app.openhumanLink.discord.openInvite': 'Open invite',
  'app.openhumanLink.discord.perk1': 'Perk1',
  'app.openhumanLink.discord.perk2': 'Perk2',
  'app.openhumanLink.discord.perk3': 'Perk3',
  'app.openhumanLink.discord.perk4': 'Perk4',
  'app.openhumanLink.done': 'Done',
  'app.openhumanLink.loadingChannelSetup': 'Loading channel setup',
  'app.openhumanLink.maybeLater': 'Maybe later',
  'app.openhumanLink.notifications.asking': 'Asking your OS…',
  'app.openhumanLink.notifications.blocked': 'Blocked',
  'app.openhumanLink.notifications.blockedStep1': 'Blocked step1',
  'app.openhumanLink.notifications.blockedStep2': 'Blocked step2',
  'app.openhumanLink.notifications.blockedStep3': 'Blocked step3',
  'app.openhumanLink.notifications.intro': 'Intro',
  'app.openhumanLink.notifications.promptHint': 'Prompt hint',
  'app.openhumanLink.notifications.retry': 'Retry test notification',
  'app.openhumanLink.notifications.send': 'Send test notification',
  'app.openhumanLink.notifications.sendFailed': "Couldn't send: {error}",
  'app.openhumanLink.notifications.sent':
    'Test notification sent. If you didn’t receive it, go to System Settings → Notifications → OpenHuman, turn on Allow Notifications, and set Banner Style to Persistent.',
  'app.openhumanLink.skipForNow': 'Skip for now',
  'app.openhumanLink.telegramUnavailable': 'Telegram unavailable',
  'app.openhumanLink.title.accounts': 'Connect your apps',
  'app.openhumanLink.title.billing': 'Billing & credits',
  'app.openhumanLink.title.discord': 'Join the community',
  'app.openhumanLink.title.messaging': 'Connect a chat channel',
  'app.openhumanLink.title.notifications': 'Allow notifications',
  'app.persistRehydration.body': 'Body',
  'app.persistRehydration.heading': 'Heading',
  'app.persistRehydration.resetCta': 'Resetting…',
  'app.persistRehydration.resetting': 'Resetting…',
  'app.routeLoading.initializing': 'Initializing OpenHuman...',
  'app.update.currentlyOn': '{version}',
  'app.update.errorFallback': 'Something went wrong while updating.',
  'app.update.header.default': 'Update',
  'app.update.header.error': 'Update failed',
  'app.update.header.installing': 'Installing update',
  'app.update.header.readyToInstall': 'Update ready to install',
  'app.update.header.restarting': 'Restarting…',
  'app.update.later': 'Later',
  'app.update.newVersionReady': 'A new version is ready to install.',
  'app.update.progress.downloaded': '{amount} downloaded',
  'app.update.progress.installing': 'Installing the new version…',
  'app.update.progress.restarting': 'Relaunching the app…',
  'app.update.progress.working': '{percent}%',
  'app.update.restartNote': 'Restart note',
  'app.update.restartNow': 'Restart now',
  'app.update.versionReady': 'Version {newVersion} is ready to install.',
  'channels.discord.accountLinked': 'Account linked',
  'channels.discord.connect': 'Connect',
  'channels.discord.linkTokenExpired': 'Link token expired. Please try again.',
  'channels.discord.linkTokenInstruction': '{token}',
  'channels.discord.linkTokenLabel': 'Link token label',
  'channels.discord.linkTokenOnce': 'Link token once',
  'channels.discord.picker.allPermissionsOk': 'Bot has all required permissions in this channel.',
  'channels.discord.picker.botNotInServers': 'Bot not in servers',
  'channels.discord.picker.category': 'Category',
  'channels.discord.picker.channel': 'Channel',
  'channels.discord.picker.checkingPermissions': 'Checking permissions',
  'channels.discord.picker.loadingChannels': 'Loading channels...',
  'channels.discord.picker.loadingServers': 'Loading servers...',
  'channels.discord.picker.missingPermissions': 'Missing permissions',
  'channels.discord.picker.noChannels': 'No text channels found',
  'channels.discord.picker.noServers': 'No servers found',
  'channels.discord.picker.selectChannel': 'Select a channel',
  'channels.discord.picker.selectServer': 'Select a server',
  'channels.discord.picker.server': 'Server',
  'channels.discord.picker.serverChannelSelection': 'Server & Channel Selection',
  'channels.discord.savedRestartRequired': 'Channel saved. Restart the app to activate it.',
  'channels.telegram.connect': 'Connect',
  'channels.telegram.managedDmConnecting': 'Managed dm connecting',
  'channels.telegram.managedDmTimeout': 'Managed dm timeout',
  'channels.telegram.reconnect': 'Reconnect',
  'channels.telegram.savedRestartRequired': 'Channel saved. Restart the app to activate it.',
  'channels.web.alwaysAvailable': 'Always available',
};

export default en3;
