const messages = { sidebar: { collapseSidebar: "Collapse sidebar", expandSidebar: "Expand sidebar", }, mail: { appName: "Mail", pages: { team: "Team", }, views: { inbox: "Inbox", unread: "Unread", starred: "Starred", snoozed: "Snoozed", sent: "Sent", draftQueue: "Draft queue", scheduled: "Scheduled", drafts: "Drafts", archive: "Archive", trash: "Trash", other: "Other", labels: "Labels", extensions: "Extensions", noteToSelf: "Note to Self", }, toolbar: { toggleMenu: "Toggle menu", menu: "Menu", configureTabs: "Configure tabs", refreshInbox: "Refresh inbox", composeEmail: "Compose email", compose: "Compose", composeShortcut: "Compose (C)", accounts: "Accounts", pinSidebar: "Pin sidebar", unpinSidebar: "Unpin sidebar", settings: "Settings", }, search: { label: "Search", placeholder: "Search...", clear: "Clear search (Esc)", noMatches: "No matches", localResults: "In this inbox", searchingGmail: "Searching Gmail...", }, tabSettings: { views: "Views", categories: "Categories", rename: "Rename", renameTab: "Rename tab", help: "Checked items show as tabs. Label emails split from inbox.", }, accounts: { remove: "Remove", connecting: "Connecting...", connectGoogle: "Connect Google", signInWithGoogle: "Sign in with Google", addAccount: "Add account", }, actions: { undo: "UNDO", archive: "Archive", markRead: "Mark read", markUnread: "Mark unread", moveTo: "Move to", moveToTrash: "Move to Trash", }, compose: { addImage: "Add an image", agentPromptLabel: "What should the agent write?", agentPromptPlaceholder: "e.g. Write a polite follow-up...", aiAssist: "AI Assist", aiAssistPlaceholder: "e.g. make more formal...", apply: "Apply", attachFile: "Attach file", bold: "Bold", cancel: "Cancel", code: "Code", deleteDraft: "Delete draft", discardDraft: "Discard draft", enterLinkUrl: "Enter the URL for the link.", forward: "Forward", fullScreen: "Full screen", fullScreenCompose: "Full screen compose", generate: "Generate", generateShortcut: "Generate ({{shortcut}})", generating: "Generating...", insertLink: "Insert link", italic: "Italic", link: "Link", minimize: "Minimize", minimizeCompose: "Minimize compose", newDraft: "New draft", pasteLink: "Paste link...", plainText: "Plain text", popOut: "Pop out to compose window", reply: "Reply", replyTo: "to {{recipient}}", restore: "Restore", restoreCompose: "Restore compose", restoreComposeSize: "Restore compose size", restoreSize: "Restore size", send: "Send", sending: "Sending...", strikethrough: "Strikethrough", subject: "Subject", toSubmit: "to submit", uploading: "Uploading...", writeMessagePlaceholder: "Write your message...", }, composeSlash: { text: "Text", plainTextBlock: "Plain text block", heading1: "Heading 1", largeHeading: "Large heading", heading2: "Heading 2", mediumHeading: "Medium heading", heading3: "Heading 3", smallHeading: "Small heading", bulletList: "Bullet List", unorderedList: "Unordered list", numberedList: "Numbered List", orderedList: "Ordered list", quote: "Quote", blockQuote: "Block quote", codeBlock: "Code Block", codeSnippet: "Code snippet", divider: "Divider", horizontalRule: "Horizontal rule", image: "Image", uploadImage: "Upload an image", generate: "Generate", aiAssistedWriting: "AI-assisted writing", blocks: "Blocks", media: "Media", ai: "AI", snippets: "Snippets", }, mobileActions: { archive: "Archive", trash: "Trash", star: "Star", reply: "Reply", replyAll: "Reply All", forward: "Forward", unread: "Unread", prev: "Prev", next: "Next", settings: "Settings", customize: "Customize", customizeActions: "Customize Actions", close: "Close", }, integrations: { addIntegration: "Add integration", checking: "Checking...", connect: "Connect", disconnect: "Disconnect", getApiKey: "To get your API key:", newIntegration: "New integration", newIntegrationPlaceholder: "e.g. Salesforce CRM — show deal stage and recent activity for the contact", openProviderSettings: "Open {{provider}} Settings", apolloDescription: "Contact enrichment & company data", hubspotDescription: "CRM contacts, deals & tickets", gongDescription: "Recent calls & conversation intelligence", pylonDescription: "Support issues & account data", gongCalls: "Gong Calls", deals: "Deals", experience: "Experience", tickets: "Tickets", save: "Save", submit: "Submit", submitShortcut: "Submit ({{shortcut}})", updateKey: "Update key", }, recipients: { aliasName: "Alias name", createReusableGroup: "Create a reusable group of {{count}} recipients", editAlias: "Edit alias", expandToIndividualEmails: "Expand to individual emails", peopleCount: "{{count}} people", recipientCount: "{{count}} recipients", saveAsAlias: "Save as alias", saving: "Saving...", }, sendLater: { cancelScheduledSend: "Cancel scheduled send", laterToday: "Later today", tomorrowMorning: "Tomorrow morning", nextWeek: "Next week", pickDateTime: "Pick date & time...", scheduleSend: "Schedule send", sendNow: "Send now", }, snooze: { laterToday: "Later today", tomorrow: "Tomorrow", nextWeek: "Next week", thisWeekend: "This weekend", someday: "someday", modalPlaceholder: "Try: 8 am, 3 days, aug 7", parsing: "Parsing...", snooze: "Snooze", snoozeUntil: "Snooze until", snoozeUntilDate: "Snooze until {{date}}", snoozing: "Snoozing...", tryPlaceholder: "or try: friday 5pm, in 2 weeks...", }, thread: { alwaysFrom: "Always from {{domain}}", downloadAll: "Download all", emailContent: "Email content", hideQuotedText: "Hide quoted text", imagesBlocked: "Images blocked.", remoteImagesHidden: "Remote images hidden in this embed.", searchConversation: "Search in conversation...", showImages: "Show images", showQuotedText: "Show quoted text", showSignature: "Show signature", unsubscribe: "Unsubscribe", unsubscribeTooltip: "Unsubscribe from this mailing list", unsubscribing: "Unsubscribing...", viewPullRequest: "View Pull Request", }, selection: { clear: "Clear selection", actions: "Selection actions", selected: "{{count}} selected", select: "Select", all: "All", none: "None", read: "Read", unstarred: "Unstarred", }, empty: { inboxZeroTitle: "You've hit Inbox Zero", inboxZeroSubtitle: "You're all caught up", snoozed: "No snoozed emails right now.", drafts: "Drafts you save will appear here.", starred: "Star an email to keep it close at hand.", sent: "Emails you send will appear here.", scheduled: "Scheduled sends will appear here.", archive: "Archived emails will appear here.", trash: "Trashed emails appear here for 30 days.", spam: "Spam Gmail flags will appear here.", all: "All your mail will appear here.", unread: "You're caught up — no unread mail.", default: "Emails matching this view will appear here.", noSearchResults: "No results for “{{query}}”", tryDifferentKeywords: "Try different keywords", nothingHere: "Nothing here yet", loadingMore: "Loading more...", }, toasts: { noEmailSelected: "No email selected.", reportedSpam: "Reported as spam.", reportedSpamBlocked: "Reported as spam & blocked {{email}}.", noThreadSelected: "No thread selected.", threadMuted: "Thread muted.", archived: "Archived.", archivedMany: "Archived {{count}} conversations.", archiveFailed: "Archive failed. The conversation was restored.", trashed: "Moved to Trash.", trashedMany: "Trashed {{count}} conversations.", scheduledSent: "Scheduled email sent.", scheduledSendFailed: "Failed to send scheduled email", scheduledCancelled: "Scheduled email cancelled.", scheduledCancelFailed: "Failed to cancel scheduled email", failedToAttachFile: "Failed to attach file", failedToUploadImage: "Failed to upload image", failedToSendEmail: "Failed to send email", failedToScheduleEmailDraftKeptOpen: "Failed to schedule email - draft kept open", pleaseAddRecipient: "Please add at least one recipient", aiEngineRequired: "Connect Builder or another AI engine before using Generate.", couldNotUnsubscribe: "Could not unsubscribe", unsubscribeSent: "Unsubscribe request sent", draftQueued: "Draft queued.", draftUpdated: "Draft updated.", draftDismissed: "Draft dismissed.", openedInCompose: "Opened in compose.", draftSent: "Draft sent.", failedToSendDraft: "Failed to send draft.", snoozeDbNotReady: "Snooze DB not ready. Run: pnpm db:push in the mail template.", couldNotSnooze: "Couldn't snooze - check the server logs.", snoozedUntil: "Snoozed until {{time}}", snoozedConversationsUntil: "Snoozed {{count}} conversations until {{time}}", }, error: { retrying: "Retrying...", tryAgainIn: "Try again in {{seconds}}s", tryAgain: "Try again", rateLimitTitle: "Gmail rate limit hit", loadTitle: "Unable to load emails", rateLimitDescription: "Too many recent requests to Google. Waiting a moment before retrying.", failedToConnect: "Failed to connect. Try again.", failedToParseJson: "Failed to parse JSON", missingGoogleCredentials: "Could not find client_id and client_secret in JSON", failedToSaveCredentials: "Failed to save credentials", }, googleConnect: { connectTitle: "Connect your Google account", heroDescription: "Send and receive real email. Connect your Gmail account to get started.", setupIntro: "Follow these steps to connect your Google account. Takes about 3 minutes.", enableGmailApi: "Enable the Gmail API", enableGmailApiDescription: "Open Google Cloud Console and click 'Enable' on the Gmail API.", enableGmailApiLink: "Enable Gmail API", enablePeopleApi: "Enable the People API", enablePeopleApiDescription: "Enable the People API for contact autocomplete when composing emails.", enablePeopleApiLink: "Enable People API", configureConsent: "Configure OAuth consent screen", configureConsentDescription: 'Set the app name to anything (e.g. "My Mail"), choose "External" user type, and add your email as a test user. If you see an overview page, consent is already configured - skip to the next step.', configureConsentLink: "Configure consent screen", createCredentials: "Create OAuth credentials", createCredentialsDescription: '1) Click "+ Create Credentials" -> "OAuth client ID"\n2) Choose "Web application"\n3) Add this redirect URI:', createCredentialsLink: "Create credentials", uploadCredentialsJson: "Upload credentials JSON", uploadCredentialsJsonDescription: 'Click "Download JSON" on the credentials page, then upload it here.', uploadJson: "Upload JSON", copy: "Copy", copied: "Copied", saving: "Saving...", credentialsConfiguredSignIn: 'Credentials configured. Click "Sign in with Google" above to connect.', credentialsConfiguredConnect: 'Credentials configured. Click "Connect Google" above to sign in.', readyToConnect: "Ready to connect - sign in with your Google account", connectBanner: "Connect Google to send and receive real email", ownerMismatch: "This account is connected to another login", connectionFailed: "Google connection failed", signOutThenSignIn: "Sign out, then sign in with {{account}}.", dismiss: "Dismiss", dismissNotice: "Dismiss Google sign-in notice", hideSetup: "Hide setup", signOut: "Sign out", }, gmailFilters: { account: "Account", from: "From", to: "To", subject: "Subject", gmailSearch: "Gmail search", selectAccount: "Select account", archive: "Archive", markRead: "Mark read", neverSpam: "Never spam", neverImportant: "Never important", important: "Important", star: "Star", trash: "Trash", applyLabel: "Apply label", createLabel: "Create label", forwardTo: "Forward to", save: "Save", cancel: "Cancel", editFilter: "Edit filter", deleteFilter: "Delete filter", deleteGmailFilter: "Delete Gmail filter", deleteGmailFilterDescription: "Delete this filter from {{account}}? This changes Gmail directly.", title: "Gmail Filters", description: "Server-side Gmail rules for simple sender, subject, and search patterns.", newFilter: "New filter", noFilters: "No Gmail filters yet.", }, draftQueue: { title: "Draft queue", queueDraft: "Queue a draft", reviewer: "Reviewer", chooseMember: "Choose member", to: "To", cc: "Cc", bcc: "Bcc", subject: "Subject", draft: "Draft", context: "Context", cancel: "Cancel", noSubject: "(no subject)", noQueuedDrafts: "No queued drafts", emptyDescription: "New requests from teammates appear here.", selectDraft: "Select a queued draft to review.", requestedBy: "Requested by {{name}}", requestedByMe: "Requested by me", queuedFor: "Queued {{time}} for {{owner}}", toRecipient: "To {{recipient}}", fromRequester: "From {{requester}}", save: "Save", compose: "Compose", send: "Send", awaitingApproval: "Awaiting approval", awaitingApprovalCount: "{{count}} drafts awaiting approval", requestedCount: "{{count}} draft requests created", newDraftRequest: "New draft request", needsOrg: "Draft queue needs an active organization.", openSettings: "Open settings", statusInReview: "in review", }, routeTitles: { notFound: "Not Found - Mail", draftQueue: "Draft Queue - Mail", settings: "Settings - Mail", team: "Team - Mail", emailThread: "Email thread", unableToLoadThread: "Unable to load thread", openInApp: "Open in app", }, agentEngine: { activeEngine: "Active engine", selectEngine: "Select engine", engineSaved: "Engine saved. Takes effect on the next conversation.", loadFailed: "Failed to load engine list. Make sure the server is running.", }, contacts: { noContactSelected: "No contact selected", }, }, agent: { emptyState: "Ask me anything about your emails", suggestionSummarize: "Summarize my unread emails", suggestionReplies: "What needs my reply today?", suggestionWidget: "Build me a custom widget for my inbox", }, settings: { openAgentSettings: "Manage agent", agentDescription: "Manage the agent's model, API keys, automations, voice, and other controls.", agentTitle: "Manage agent", aliasName: "Alias name", aliasNamePlaceholder: "e.g. Design team", recipientsOnePerLine: "Recipients (one email per line)", save: "Save", cancel: "Cancel", delete: "Delete", personSingular: "{{count}} person", peoplePlural: "{{count}} people", deleteAliasDescription: 'Delete alias "{{name}}"? This cannot be undone.', aliasesDescription: "Address groups you can use when composing emails.", newAlias: "New alias", noAliases: "No aliases yet. Create one to get started.", applyLabel: "Apply label", archive: "Archive", markRead: "Mark as read", star: "Star", trash: "Trash", labelName: "Label name", addAction: "+ Add action", ruleName: "Rule name", ruleNamePlaceholder: "e.g. Auto-label newsletters", conditionNaturalLanguage: "Condition (natural language)", conditionPlaceholder: 'e.g. "from a newsletter or marketing mailing list"\n"from alice@example.com"\n"subject contains invoice or receipt"', actions: "Actions", editRule: "Edit rule", deleteRule: "Delete rule", noEventAutomations: "No event-triggered automations for mail yet.", eventAutomationsPrompt: 'Ask the agent to create an automation like "when I receive an email from my boss, star it and notify me."', disabled: "disabled", on: "on", when: "when", lastRun: "Last run:", automationsDescription: "Rules that automatically process new inbox emails using AI.", loadingModels: "Loading models", newRule: "New rule", noAutomationRules: "No automation rules yet.", noAutomationRulesDescription: "Create rules to auto-label emails, archive newsletters, star important messages, and more. You can also ask the AI agent to set these up for you.", eventTriggers: "Event Triggers", eventTriggersDescription: "Automations that fire when mail events occur (e.g. new email received). Managed by the agent.", importedSignature: "Imported signature from {{account}}.", noGmailSignature: "No Gmail signature found for {{account}}.", importSignatureFailed: "Failed to import Gmail signature.", draftingSettingsSaved: "Drafting settings saved.", draftingSettingsSaveFailed: "Failed to save drafting settings.", draftingDescription: "Preferences used when composing and generating email drafts.", signature: "Signature", importFromGmail: "Import from Gmail", signatureHelp: "Added to new drafts before quoted reply history. Markdown links and images are supported.", writingStyle: "Writing style", writingStylePlaceholder: "Short, specific, warm. Avoid formal filler.", saveDraftingSettings: "Save drafting settings", reset: "Reset", trackingDescription: "Know when recipients open your sent emails and click links. Stats appear under each sent message.", trackEmailOpens: "Track email opens", trackEmailOpensDescription: "Inject a 1×1 pixel into outgoing emails so you can see when recipients open them.", trackLinkClicks: "Track link clicks", trackLinkClicksDescription: "Rewrite external links in outgoing emails to count when recipients click them.", slackLoadFailed: "Failed to load Slack status", slackUpdateFailed: "Failed to update Slack intake", slackConfigured: "Slack credentials are configured.", slackNeedsCredentials: "Legacy custom intake requires SLACK_BOT_TOKEN and SLACK_SIGNING_SECRET. For new Slack messaging automations, connect a workspace in Settings > Messaging.", slackIntake: "Slack Intake (legacy)", slackDescription: "Legacy custom integration that lets organization members queue email drafts from Slack.", enabled: "Enabled", disable: "Disable", enable: "Enable", slackPostEndpoint: "Slack POST endpoint", slackPostEndpointHelp: "Use in Slack Event Subscriptions. Browser GET may show Not Found.", teamDescription: "Set up a team to share email automations and settings with your colleagues.", title: "Settings", general: "General", generalDescription: "Language and account-level preferences for Mail.", languageTitle: "Language", languageDescription: "Choose the interface language for this account. Mail remembers it across devices.", languageLabel: "Interface language", whatsNew: "What's new", whatsNewDescription: "Recent user-facing changes to Agent-Native Mail.", drafting: "Drafting", snippets: "Snippets", snippetsDescription: "Saved replies you can insert into a compose draft by typing / and the snippet name.", newSnippet: "New snippet", noSnippets: "No snippets yet. Create one to get started.", snippetName: "Snippet name", snippetNamePlaceholder: "e.g. Pricing follow-up", snippetBody: "Snippet body", snippetBodyPlaceholder: "Text inserted when this snippet is used...", editSnippet: "Edit snippet", deleteSnippet: "Delete snippet", deleteSnippetDescription: 'Delete snippet "{{name}}"? This cannot be undone.', automations: "Automations", gmailFilters: "Gmail Filters", aliases: "Aliases", tracking: "Tracking", slack: "Slack", team: "Team", deleteAlias: "Delete Alias", editAlias: "Edit Alias", }, theme: { light: "Light", dark: "Dark", }, notFound: { message: "Page not found", goToInbox: "Go to Inbox", }, commandPalette: { placeholder: "Type a command or ask AI...", compose: "Compose new email", reply: "Reply to thread", snooze: "Snooze email", search: "Search emails", refresh: "Refresh inbox", reportSpam: "Report spam", reportSpamBlock: "Report spam & block sender", muteThread: "Mute thread", navigate: "Navigate", goToInbox: "Go to Inbox", goToStarred: "Go to Starred", goToSent: "Go to Sent", goToDrafts: "Go to Drafts", goToArchive: "Go to Archive", goToTrash: "Go to Trash", privacy: "Privacy", imagesShowAll: "Images: Show all", imagesBlockTrackers: "Images: Block known trackers", imagesBlockAll: "Images: Block all remote images", appearance: "Appearance", toggleLight: "Toggle light mode", toggleDark: "Toggle dark mode", actions: "Actions", }, }; export default messages;