Replaces the global allMailFolderIds (string[] | null) with a per-account
Record<accountId, string[]>, so each account chooses which of its own folders
the "All Mail" view merges. A missing entry = "not configured" (defaults to
every no-role folder); an explicit [] = "no folders".
- settings-store: type/default -> Record (default {}); persist version 4 -> 5,
migration drops the legacy global list (the active account isn't known at
migrate time); onRehydrate + importSettings coerce/ignore any non-record
(legacy global string[] | null) shape. isPlainRecord() guard.
- email-store.resolveAllMailJmapIds: reads the entry for the account the view is
scoped to (viewingAccountId ?? activeAccountId); undefined -> all no-role,
[] -> none.
- layout-settings: read/write the active account's entry; when more than one
account is logged in, an italic hint names the account the selection applies
to (settings.appearance.all_mail.account_hint, 19 locales; de/ro translated).
- Test: stores/__tests__/settings-store-all-mail.test.ts (per-account
independence, explicit-empty vs not-configured, importSettings legacy guard).
3194 lines
131 KiB
JSON
3194 lines
131 KiB
JSON
{
|
||
"meta_description": "Minimalist webmail client using JMAP protocol",
|
||
"login": {
|
||
"title": "Webmail",
|
||
"username_label": "Email",
|
||
"username_placeholder": "user@example.com",
|
||
"password_label": "Password",
|
||
"password_placeholder": "Enter your password",
|
||
"jmap_endpoint_label": "JMAP Server",
|
||
"jmap_endpoint_placeholder": "https://mail.example.com",
|
||
"jmap_endpoint_cors_hint": "The server must allow CORS requests from this domain.",
|
||
"jmap_server_label": "Server",
|
||
"jmap_server_auto_picked": "Server selected from your email domain.",
|
||
"sign_in": "Sign in",
|
||
"signing_in": "Signing in...",
|
||
"loading": "Loading...",
|
||
"reconnecting": "Connection lost. Attempting to reconnect…",
|
||
"error": {
|
||
"invalid_credentials": "Invalid email or password. Please check your credentials and try again.",
|
||
"connection_failed": "Unable to reach the server. Check your internet connection and try again.",
|
||
"cors_blocked": "The server is reachable but is blocking cross-origin requests. Check your JMAP server's CORS settings and allow this domain.",
|
||
"server_error": "The server is temporarily unavailable. Please try again later.",
|
||
"generic": "An unexpected error occurred. If this persists, contact your administrator.",
|
||
"totp_required": "A two-factor authentication code is required. Please enter your code below.",
|
||
"totp_invalid": "Invalid authentication code. Please check your authenticator app and try again.",
|
||
"oauth_discovery_failed": "SSO is enabled but the identity provider could not be reached. Check your OAuth configuration."
|
||
},
|
||
"show_password": "Show password",
|
||
"hide_password": "Hide password",
|
||
"totp_toggle": "I have a 2FA code",
|
||
"remember_me": "Remember me",
|
||
"config_error": {
|
||
"title": "Configuration Error",
|
||
"fetch_failed": "Unable to load application configuration. Please try again later.",
|
||
"server_not_configured": "The mail server has not been configured. Please contact your administrator."
|
||
},
|
||
"remove_from_history": "Remove from history",
|
||
"totp_label": "Authentication code",
|
||
"totp_placeholder": "000000",
|
||
"session_expired": "Your session has expired. Please sign in again.",
|
||
"dismiss": "Dismiss",
|
||
"or": "or",
|
||
"sign_in_sso": "Sign in with SSO",
|
||
"add_account_title": "Add Account",
|
||
"add_account_subtitle": "Sign in with another account",
|
||
"cancel": "Cancel",
|
||
"website": "Website",
|
||
"imprint": "Imprint",
|
||
"privacy_policy": "Privacy Policy",
|
||
"try_demo": "Try Demo",
|
||
"demo_description": "Explore with sample data - no account needed",
|
||
"demo_launching": "Launching demo...",
|
||
"demo_login_button": "Launch Demo",
|
||
"demo_tagline": "Experience a full-featured email client. No account required.",
|
||
"demo_no_signup": "No signup needed - explore freely with sample data",
|
||
"oauth_completing": "Completing sign in...",
|
||
"oauth_error": {
|
||
"title": "Authentication Failed",
|
||
"invalid_state": "Security validation failed. Please try signing in again.",
|
||
"missing_params": "Missing authorization data. Please try signing in again.",
|
||
"token_exchange_failed": "Failed to complete authentication. Please try again.",
|
||
"access_denied": "Access was denied. Please contact your administrator.",
|
||
"back_to_login": "Back to login"
|
||
}
|
||
},
|
||
"sidebar": {
|
||
"close": "Close",
|
||
"compose": "Compose",
|
||
"compose_hint": "Compose (c)",
|
||
"search_placeholder": "Search mail...",
|
||
"search_placeholder_hint": "Search mail... (press /)",
|
||
"storage": "Storage",
|
||
"storage_used": "Used",
|
||
"storage_free": "Free",
|
||
"storage_total": "Total",
|
||
"sign_out": "Sign out",
|
||
"sign_out_of": "Sign out of {account}",
|
||
"sign_out_all": "Sign out of all accounts",
|
||
"add_account": "Add account",
|
||
"set_as_default": "Set as default",
|
||
"switch_account": "Switch account",
|
||
"contacts": "Contacts",
|
||
"calendar": "Calendar",
|
||
"settings": "Settings",
|
||
"admin": "Admin",
|
||
"files": "Files",
|
||
"loading_mailboxes": "Loading mailboxes...",
|
||
"push_connected": "Real-time updates active",
|
||
"push_disconnected": "Real-time updates inactive",
|
||
"keyboard_shortcuts": "Keyboard Shortcuts",
|
||
"theme": {
|
||
"light": "Light mode",
|
||
"dark": "Dark mode",
|
||
"system": "System theme"
|
||
},
|
||
"language": {
|
||
"title": "Language"
|
||
},
|
||
"mailboxes": {
|
||
"inbox": "Inbox",
|
||
"sent": "Sent",
|
||
"drafts": "Drafts",
|
||
"trash": "Trash",
|
||
"archive": "Archive",
|
||
"starred": "Starred",
|
||
"all_mail": "All Mail",
|
||
"spam": "Spam",
|
||
"important": "Important"
|
||
},
|
||
"unified_inbox": "Unified Inbox",
|
||
"unified_sent": "All Sent",
|
||
"unified_drafts": "All Drafts",
|
||
"unified_trash": "All Trash",
|
||
"unified_archive": "All Archive",
|
||
"unified_junk": "All Junk",
|
||
"all_accounts": "All Accounts",
|
||
"expand": "Expand",
|
||
"collapse": "Collapse",
|
||
"expand_tooltip": "Expand",
|
||
"collapse_tooltip": "Collapse",
|
||
"mobile": {
|
||
"search": "Search",
|
||
"compose": "Compose",
|
||
"go_back": "Go back"
|
||
},
|
||
"clear_search": "Clear search",
|
||
"vacation_active": "Vacation responder is active",
|
||
"demo_banner": "Demo Mode",
|
||
"demo_reset": "Reset",
|
||
"demo_tour": "Tour",
|
||
"tags": "Tags",
|
||
"folders": "Folders",
|
||
"shared": "Shared",
|
||
"mail": "Mail",
|
||
"nav_label": "Navigation",
|
||
"add_app": "Apps",
|
||
"scheduled": "Scheduled"
|
||
},
|
||
"protocol_handlers": {
|
||
"title": "Default apps",
|
||
"description": "Choose whether email and calendar links open in Bulwark. Technically, Bulwark registers as a protocol handler for mailto: and webcal: links.",
|
||
"unsupported": "This browser or connection does not support manual protocol-handler registration. You may still be able to use the installed PWA via browser or OS settings.",
|
||
"mailto_label": "Email links",
|
||
"mailto_description": "Open mailto: links in Bulwark with a prefilled composer.",
|
||
"protocol_open_mode_label": "When opening protocol links",
|
||
"protocol_open_mode_description": "Choose whether Bulwark opens mailto: and webcal: links in a new tab or reuses an open session. The active-session option needs notification permission so you can click a fallback notification to bring Bulwark to the front if the browser blocks focus.",
|
||
"protocol_open_mode_active_session": "Open in active session if possible",
|
||
"protocol_open_mode_new_tab": "Always open a new tab",
|
||
"focus_notification_title": "Open Bulwark",
|
||
"focus_notification_body": "The link was opened in Bulwark. Click to bring the window to the front.",
|
||
"webcal_label": "Calendar links",
|
||
"webcal_description": "Open webcal: links in Bulwark with a prefilled calendar subscription dialog.",
|
||
"register_mailto": "Register email app",
|
||
"register_webcal": "Register calendar app",
|
||
"mailto_registered": "Email handler registration requested",
|
||
"webcal_registered": "Calendar handler registration requested",
|
||
"registration_failed": "Protocol handler registration failed",
|
||
"opening_mailto": "Opening composer...",
|
||
"opening_webcal": "Opening calendar...",
|
||
"browser_note": "Your browser or operating system may ask you to confirm this and may require Bulwark to be installed before it can be selected as the default app.",
|
||
"select_account_title": "Choose account",
|
||
"select_mailto_account": "Choose which account should open this email link.",
|
||
"select_webcal_account": "Choose which account should open this calendar link.",
|
||
"select_account_note": "This only applies to this protocol link.",
|
||
"detail_to": "To",
|
||
"detail_subject": "Subject",
|
||
"detail_no_subject": "No subject",
|
||
"detail_calendar": "Calendar",
|
||
"detail_source": "Source",
|
||
"active_account": "Active",
|
||
"switching_account": "Switching account..."
|
||
},
|
||
"sidebar_apps": {
|
||
"modal_title": "Sidebar Apps",
|
||
"add_new": "Add App",
|
||
"edit_app": "Edit App",
|
||
"name_label": "Name",
|
||
"name_placeholder": "My App",
|
||
"name_required": "Name is required",
|
||
"url_label": "URL",
|
||
"url_required": "URL is required",
|
||
"url_invalid": "Enter a valid http or https URL",
|
||
"icon_label": "Icon",
|
||
"icon_required": "Icon is required",
|
||
"open_mode_label": "Open Mode",
|
||
"open_new_tab": "New Tab",
|
||
"open_inline": "Inline",
|
||
"cancel": "Cancel",
|
||
"add": "Add",
|
||
"update": "Update",
|
||
"delete": "Delete",
|
||
"delete_confirm_title": "Delete App",
|
||
"delete_confirm": "Are you sure you want to delete \"{name}\"?",
|
||
"no_apps": "No apps added yet",
|
||
"no_apps_hint": "Add custom apps and links to your sidebar",
|
||
"search_icons": "Search icons...",
|
||
"show_popular": "Popular",
|
||
"show_all": "All",
|
||
"no_icons_found": "No icons found",
|
||
"inline_badge": "Inline",
|
||
"tab_badge": "Tab",
|
||
"show_on_mobile": "Show on Mobile"
|
||
},
|
||
"email_list": {
|
||
"no_emails": "No messages found",
|
||
"no_emails_description": "This mailbox is empty",
|
||
"no_search_results": "No results found",
|
||
"no_search_results_description": "Try adjusting your search or filters",
|
||
"loading": "Loading emails...",
|
||
"unread": "unread",
|
||
"to_me": "To me",
|
||
"to_recipients": "To {count} recipients",
|
||
"and_others": "and {count} others",
|
||
"draft": "Draft",
|
||
"starred": "Starred",
|
||
"conversations_count": "{count} of {total} conversations",
|
||
"conversations_count_plus": "{count}+ conversations",
|
||
"conversations_count_simple": "{count} conversations",
|
||
"no_conversations": "No conversations",
|
||
"loading_more": "Loading more emails...",
|
||
"no_more_emails": "No more emails to load",
|
||
"batch_actions": {
|
||
"select": "Select emails",
|
||
"select_all": "Select all",
|
||
"selected_messages": "{count, plural, one {1 email} other {# emails}} selected",
|
||
"mark_read": "Mark as read",
|
||
"mark_unread": "Mark as unread",
|
||
"delete": "Delete",
|
||
"delete_confirm_title": "Delete emails",
|
||
"delete_confirm_message": "Are you sure you want to delete {count, plural, one {1 email} other {# emails}}?",
|
||
"clear_selection": "Clear selection"
|
||
},
|
||
"permanent_delete": "Delete permanently",
|
||
"permanent_delete_confirm_title": "Permanently delete",
|
||
"permanent_delete_confirm_message": "This email will be permanently deleted. This action cannot be undone.",
|
||
"permanent_delete_confirm_batch_message": "These {count, plural, one {1 email} other {# emails}} will be permanently deleted. This action cannot be undone.",
|
||
"empty_folder": {
|
||
"button": "Empty folder",
|
||
"confirm_title": "Empty folder",
|
||
"confirm_message": "All emails in this folder will be permanently deleted. This action cannot be undone.",
|
||
"confirm_button": "Empty folder",
|
||
"junk_hint": "You can empty the Junk folder to permanently remove all messages.",
|
||
"trash_hint": "You can empty the Trash folder to permanently remove all messages."
|
||
},
|
||
"no_scheduled_emails": "No scheduled emails",
|
||
"no_scheduled_emails_description": "Messages scheduled for later will appear here.",
|
||
"scheduled_count": "{count, plural, one {1 scheduled email} other {# scheduled emails}}",
|
||
"scheduled_actions_hint": "Scheduled messages can be canceled, rescheduled, or edited from their scheduled actions.",
|
||
"cancel_scheduled_send": "Cancel send",
|
||
"reschedule_send": "Reschedule",
|
||
"cancel_and_edit": "Cancel and edit",
|
||
"cancel_and_compose_again": "Cancel and compose again",
|
||
"reschedule_prompt": "Enter a new date/time, e.g. 2026-05-04T15:30"
|
||
},
|
||
"email_viewer": {
|
||
"read_receipt": {
|
||
"prompt": "The sender requested a read receipt:",
|
||
"send": "Send receipt",
|
||
"ignore": "Ignore",
|
||
"sent": "Read receipt sent.",
|
||
"send_failed": "Read receipt could not be sent",
|
||
"mdn_subject": "Read: {subject}",
|
||
"mdn_body": "This is a return receipt for the message you sent to {recipient}.\n\nNote: This receipt only acknowledges that the message was displayed on the recipient''s computer. There is no guarantee that the recipient has read or understood the message contents."
|
||
},
|
||
"no_email_selected": "No email selected",
|
||
"no_email_description": "Select an email from the list to view it here",
|
||
"no_conversation_selected": "No conversation selected",
|
||
"no_conversation_description": "Choose a conversation from the list to read it here",
|
||
"compose": "Compose",
|
||
"compose_hint": "Compose new message",
|
||
"no_subject": "(No Subject)",
|
||
"no_body_content": "(No body content available)",
|
||
"no_preview_available": "No preview available",
|
||
"loading_email": "Loading email...",
|
||
"loading": "Loading...",
|
||
"reply": "Reply",
|
||
"reply_all": "Reply All",
|
||
"forward": "Forward",
|
||
"delete": "Delete",
|
||
"archive": "Archive",
|
||
"star": "Star",
|
||
"unstar": "Unstar",
|
||
"mark_unread": "Mark as unread",
|
||
"mark_read": "Mark as read",
|
||
"unread": "Unread",
|
||
"read": "Read",
|
||
"spam_short": "Spam",
|
||
"not_spam_short": "Not spam",
|
||
"move": "Move",
|
||
"print": "Print",
|
||
"view_source": "View source",
|
||
"export_email": "Export as .eml",
|
||
"import_email": "Import .eml or .zip",
|
||
"keyboard_shortcuts": "Keyboard shortcuts (?)",
|
||
"email_source": "Email Source",
|
||
"draft_banner": "This message is a draft",
|
||
"edit_draft": "Edit",
|
||
"copy_source": "Copy to clipboard",
|
||
"source_copied": "Source copied to clipboard",
|
||
"attachments": "Attachments",
|
||
"important": "Important",
|
||
"download": "Download",
|
||
"download_all": "Download all",
|
||
"from": "From",
|
||
"to": "To",
|
||
"cc": "CC",
|
||
"bcc": "BCC",
|
||
"date": "Date",
|
||
"subject": "Subject",
|
||
"show_details": "Show details",
|
||
"hide_details": "Hide details",
|
||
"external_content_warning": "Images and external content have been blocked",
|
||
"load_external_content": "Load images",
|
||
"trust_sender": "Always trust this sender",
|
||
"back_to_list": "Back to list",
|
||
"view_contact": "View contact",
|
||
"message_details": "Message Details",
|
||
"more_reply_options": "More reply options",
|
||
"set_color": "Set tag",
|
||
"tag": "Tag",
|
||
"more_actions": "More actions",
|
||
"previous": "Prev",
|
||
"next": "Next",
|
||
"move_to": "Move to...",
|
||
"remove_color": "Remove tag",
|
||
"more_count": "+{count} more",
|
||
"characters_count": "{count} characters",
|
||
"quick_reply_placeholder": "Write a quick reply...",
|
||
"more_options": "More options",
|
||
"sending": "Sending...",
|
||
"security_authentication": "Security & Authentication",
|
||
"technical_details": "Technical Details",
|
||
"message_id_label": "Message-ID:",
|
||
"reply_to_label": "Reply-To:",
|
||
"delivery_time_label": "Delivery time:",
|
||
"conversation_part_label": "Part of conversation:",
|
||
"previous_messages": "{count} previous message",
|
||
"previous_messages_plural": "{count} previous messages",
|
||
"time": {
|
||
"day": "day",
|
||
"days": "days",
|
||
"hour": "hour",
|
||
"hours": "hours",
|
||
"minute": "minute",
|
||
"minutes": "minutes"
|
||
},
|
||
"unknown_sender": "Unknown",
|
||
"recipient_me": "me",
|
||
"recipient_and_others": "{name} and {count} others",
|
||
"recipient_to_prefix": "To:",
|
||
"authentication": {
|
||
"title": "Authentication",
|
||
"status": {
|
||
"verified": "Verified",
|
||
"warning": "Warning",
|
||
"none": "Not authenticated"
|
||
},
|
||
"spf": {
|
||
"pass": "SPF Pass",
|
||
"fail": "SPF Fail",
|
||
"none": "No SPF"
|
||
},
|
||
"dkim": {
|
||
"pass": "DKIM Valid",
|
||
"fail": "DKIM Invalid",
|
||
"none": "No DKIM"
|
||
},
|
||
"dmarc": {
|
||
"pass": "DMARC Pass",
|
||
"fail": "DMARC Fail",
|
||
"none": "No DMARC"
|
||
},
|
||
"spam_score": "Spam Score",
|
||
"tooltip_spf": "Sender Policy Framework: Verifies that the sending server is authorized to send email on behalf of the domain",
|
||
"tooltip_dkim": "DomainKeys Identified Mail: Confirms the email was not altered in transit using a cryptographic signature",
|
||
"tooltip_dmarc": "Domain-based Message Authentication, Reporting & Conformance: Ensures SPF and DKIM align with the sender's domain and sets a policy for failures",
|
||
"policy": "Policy",
|
||
"result": {
|
||
"pass": "Pass",
|
||
"fail": "Fail",
|
||
"softfail": "Soft fail",
|
||
"neutral": "Neutral",
|
||
"permerror": "Permanent error",
|
||
"temperror": "Temporary error",
|
||
"none": "None"
|
||
}
|
||
},
|
||
"details": {
|
||
"recipients_routing": "Recipients & routing",
|
||
"authentication_security": "Authentication & security",
|
||
"identifiers_threading": "Identifiers & threading",
|
||
"mailing_list": "Mailing list",
|
||
"message_properties": "Message properties",
|
||
"sent": "Sent",
|
||
"received": "Received",
|
||
"delivery_time": "Delivery time",
|
||
"in_reply_to": "In-Reply-To",
|
||
"references": "References",
|
||
"thread_id": "Thread ID",
|
||
"size": "Size",
|
||
"mime_type": "MIME type",
|
||
"attachments_summary": "{count} files · {size}",
|
||
"list_id": "List ID",
|
||
"list_help": "List help",
|
||
"list_post": "List post",
|
||
"list_unsubscribe": "Unsubscribe",
|
||
"iprev": "Reverse DNS",
|
||
"spam_status": "Spam status",
|
||
"ai_verdict": "AI verdict",
|
||
"account": "Account",
|
||
"no_subject": "(no subject)"
|
||
},
|
||
"headers": {
|
||
"routing": "Routing",
|
||
"received": "Received",
|
||
"message_id": "Message ID",
|
||
"list_info": "List Information"
|
||
},
|
||
"color_tag": {
|
||
"title": "Color Tag",
|
||
"red": "Red",
|
||
"orange": "Orange",
|
||
"yellow": "Yellow",
|
||
"green": "Green",
|
||
"blue": "Blue",
|
||
"purple": "Purple",
|
||
"pink": "Pink",
|
||
"none": "None"
|
||
},
|
||
"tooltips": {
|
||
"reply": "Reply (r)",
|
||
"reply_all": "Reply All (a)",
|
||
"forward": "Forward (f)",
|
||
"archive": "Archive (e)",
|
||
"delete": "Delete (# or Del)",
|
||
"star": "Star (s)",
|
||
"unstar": "Unstar (s)",
|
||
"compose": "Compose (c)",
|
||
"previous": "Previous email",
|
||
"next": "Next email",
|
||
"edit_draft": "Edit draft"
|
||
},
|
||
"spam": {
|
||
"button_title": "Report spam",
|
||
"not_spam_title": "Mark as legitimate",
|
||
"toast_success": "Moved to Junk",
|
||
"toast_batch": "{count} emails moved to Junk",
|
||
"toast_undo": "Undo",
|
||
"toast_not_spam_success": "Moved to Inbox",
|
||
"toast_not_spam_batch": "{count} emails moved to Inbox",
|
||
"error": "Failed to report spam",
|
||
"error_not_spam": "Failed to restore email"
|
||
},
|
||
"unsubscribe_banner": {
|
||
"label": "Newsletter",
|
||
"button": "Unsubscribe",
|
||
"confirm_title": "Unsubscribe from this sender?",
|
||
"confirm_button": "Confirm",
|
||
"cancel": "Cancel",
|
||
"success_http": "Unsubscribe page opened in new tab",
|
||
"success_mailto": "Unsubscribe request sent to your email client",
|
||
"error": "Unable to unsubscribe",
|
||
"dismiss": "Dismiss"
|
||
},
|
||
"calendar_invitation": {
|
||
"loading": "Loading event details…",
|
||
"title": "Calendar Invitation",
|
||
"published_title": "Published Event",
|
||
"response_title": "Event Response",
|
||
"update_title": "Event Update",
|
||
"counter_title": "Counter Proposal",
|
||
"refresh_title": "Refresh Request",
|
||
"declined_counter_title": "Counter Proposal Declined",
|
||
"cancelled_title": "Event Cancelled",
|
||
"organizer": "Organized by {name}",
|
||
"organizer_label": "Organized by",
|
||
"attendees": "{count, plural, one {# attendee} other {# attendees}}",
|
||
"accept": "Accept",
|
||
"maybe": "Maybe",
|
||
"decline": "Decline",
|
||
"add_to_calendar": "Add to calendar",
|
||
"added": "Added to calendar",
|
||
"rsvp_sent": "Response sent",
|
||
"parse_error": "Could not read invitation",
|
||
"action_failed": "Could not complete that calendar action.",
|
||
"no_calendar": "Calendar not available",
|
||
"published_info": "This event was shared for reference.",
|
||
"response_info": "This message contains an attendee response.",
|
||
"response_info_organizer": "This attendee response updates your event.",
|
||
"update_info": "This message updates an existing event.",
|
||
"counter_info": "This message proposes changes to an event.",
|
||
"counter_info_organizer": "This attendee proposed changes to your event.",
|
||
"refresh_info": "This message requests the latest event details.",
|
||
"refresh_info_organizer": "An attendee requested the latest event details.",
|
||
"declined_counter_info": "The organizer declined a counter proposal.",
|
||
"authentication_failed_info": "Mail authentication checks for this invitation failed. Treat calendar actions with caution.",
|
||
"authentication_missing_info": "This invitation does not include verified mail authentication. Confirm the details with the organizer if anything looks unusual.",
|
||
"sender_mismatch_info": "This invitation was sent from {sender}, while the organizer listed in the calendar data is {organizer}.",
|
||
"sender_mismatch_unverified_info": "This invitation was sent from {sender}, while the organizer listed in the calendar data is {organizer}, and the message could not be verified.",
|
||
"organizer_role": "You organize this event",
|
||
"your_response": "Your response: {status}",
|
||
"response_needed": "Needs response",
|
||
"response_accepted": "Accepted",
|
||
"response_tentative": "Tentative",
|
||
"response_declined": "Declined",
|
||
"response_delegated": "Delegated",
|
||
"actor_sent_info": "Sent by {name}.",
|
||
"actor_response_info": "{name} responded {status}.",
|
||
"actor_counter_info": "{name} proposed changes to this event.",
|
||
"actor_refresh_info": "{name} asked for the latest event details.",
|
||
"actor_declined_counter_info": "{name} declined the counter proposal.",
|
||
"actor_note": "Note: {comment}",
|
||
"actor_unknown": "Someone",
|
||
"proposed_changes": "Proposed changes",
|
||
"change_title": "Title",
|
||
"change_time": "Time",
|
||
"change_location": "Location",
|
||
"change_description": "Description",
|
||
"change_empty": "None",
|
||
"change_from_to": "{before} -> {after}",
|
||
"apply_proposal": "Apply proposed changes",
|
||
"proposal_applied": "Proposed changes applied.",
|
||
"review_proposal": "Review proposal",
|
||
"review_request": "Review request",
|
||
"view_in_calendar": "View in calendar",
|
||
"select_calendar": "Select calendar",
|
||
"already_in_calendar": "Already in your calendar",
|
||
"request_info": "You've been invited to this event. Respond to let the organizer know your availability.",
|
||
"cancel_info": "The organizer has cancelled this event.",
|
||
"event_updated": "Update #{sequence}",
|
||
"event_status_tentative": "Tentative",
|
||
"event_status_cancelled": "Cancelled",
|
||
"expand": "Show details",
|
||
"collapse": "Hide details"
|
||
},
|
||
"send": "Send",
|
||
"more": "more",
|
||
"scheduled_banner": "Scheduled to send at {date}",
|
||
"scheduled_send_created": "Email scheduled for sending",
|
||
"cancel_scheduled_send": "Cancel send",
|
||
"reschedule_send": "Reschedule",
|
||
"cancel_and_edit": "Cancel and edit",
|
||
"cancel_and_compose_again": "Cancel and compose again",
|
||
"reschedule_prompt": "Enter a new date/time, e.g. 2026-05-04T15:30",
|
||
"scheduled_actions_only": "Scheduled view supports scheduled actions only",
|
||
"undo_send_scheduled": "Message scheduled for sending",
|
||
"undo_send": "Undo send",
|
||
"contact_sidebar": {
|
||
"title": "Contact",
|
||
"close": "Close sidebar",
|
||
"action_email": "Email",
|
||
"action_email_title": "Send email",
|
||
"action_copy": "Copy",
|
||
"action_copy_title": "Copy email",
|
||
"action_edit_title": "Edit contact",
|
||
"section_emails": "Emails",
|
||
"section_phones": "Phones",
|
||
"section_organizations": "Organizations",
|
||
"section_addresses": "Addresses",
|
||
"section_notes": "Notes",
|
||
"not_in_contacts": "Not in your contacts",
|
||
"add_to_contacts": "Add to contacts",
|
||
"copied": "Copied!",
|
||
"copy_failed": "Failed to copy"
|
||
}
|
||
},
|
||
"email_composer": {
|
||
"read_receipt_on": "Read receipt requested (click to disable)",
|
||
"read_receipt_off": "Request a read receipt",
|
||
"new_message": "New Message",
|
||
"reply": "Reply",
|
||
"reply_all": "Reply All",
|
||
"forward": "Forward",
|
||
"reply_to": "Reply",
|
||
"reply_all_to": "Reply All",
|
||
"forward_message": "Forward",
|
||
"from": "From",
|
||
"to": "To",
|
||
"cc": "CC",
|
||
"bcc": "BCC",
|
||
"subject": "Subject",
|
||
"body_placeholder": "Write your message...",
|
||
"send": "Send",
|
||
"cancel": "Cancel",
|
||
"attach": "Attach",
|
||
"attach_photos": "Photos & Videos",
|
||
"attach_files": "Files",
|
||
"discard": "Discard",
|
||
"discard_draft_title": "Discard draft?",
|
||
"discard_draft_confirm": "You have unsaved changes. Do you want to discard this draft?",
|
||
"saving": "Saving...",
|
||
"sending": "Sending...",
|
||
"add_link": "Add link",
|
||
"link_url_prompt": "Enter the URL",
|
||
"draft_saved": "Draft saved",
|
||
"save_failed": "Failed to save",
|
||
"to_placeholder": "Recipient email addresses",
|
||
"cc_placeholder": "Cc recipients",
|
||
"bcc_placeholder": "Bcc recipients",
|
||
"subject_placeholder": "Subject",
|
||
"cc_label": "Cc:",
|
||
"bcc_label": "Bcc:",
|
||
"subject_label": "Subject:",
|
||
"file_size_kb": "KB",
|
||
"prefix": {
|
||
"forward": "Fwd:",
|
||
"reply": "Re:"
|
||
},
|
||
"no_subject": "(No Subject)",
|
||
"unknown_sender": "Unknown",
|
||
"quote": {
|
||
"reply_header": "On {date}, {sender} wrote:",
|
||
"forward_header": "---------- Forwarded message ----------",
|
||
"from": "From: {sender}",
|
||
"date": "Date: {date}",
|
||
"subject": "Subject: {subject}",
|
||
"to": "To: {recipients}"
|
||
},
|
||
"remove_sub_address": "Remove sub-address",
|
||
"from_override": {
|
||
"toggle_off": "Override",
|
||
"toggle_on": "Cancel override",
|
||
"toggle_tooltip": "Edit the From name and address freely. Mail is still sent through your identity - only the visible From header changes.",
|
||
"name_label": "From name",
|
||
"name_placeholder": "Name",
|
||
"email_label": "From email address",
|
||
"email_placeholder": "alias@example.com"
|
||
},
|
||
"use_template": "Template",
|
||
"save_as_template": "Save as Template",
|
||
"validation": {
|
||
"recipient_required": "Add a recipient to send",
|
||
"subject_required": "Add a subject",
|
||
"body_required": "Write a message or attach a file"
|
||
},
|
||
"upload_progress": "Uploading {uploaded} / {total}",
|
||
"upload_cancel": "Cancel upload",
|
||
"upload_failed": "Failed to upload {filename}",
|
||
"drop_files": "Drop files to attach",
|
||
"show_less": "Show less",
|
||
"send_failed": "Failed to send email",
|
||
"continue_draft": "Continue draft",
|
||
"close_draft_title": "Save or discard draft?",
|
||
"close_draft_message": "You have unsaved changes. Would you like to save this as a draft or discard it?",
|
||
"save_draft": "Save Draft",
|
||
"smime_sign_on": "S/MIME signing enabled",
|
||
"smime_sign_off": "Enable S/MIME signing",
|
||
"smime_encrypt_on": "S/MIME encryption enabled",
|
||
"smime_encrypt_off": "Enable S/MIME encryption",
|
||
"smime_encrypt_unavailable": "S/MIME encryption unavailable – missing recipient certificates",
|
||
"smime_unlock_title": "Unlock S/MIME Key",
|
||
"smime_unlock_message": "Enter the passphrase to unlock your S/MIME signing key.",
|
||
"smime_unlock_button": "Unlock",
|
||
"smime_passphrase_placeholder": "Passphrase",
|
||
"forgot_attachment": {
|
||
"title": "Did you forget an attachment?",
|
||
"message": "Your message mentions \"{keyword}\" but no file is attached. Send anyway?",
|
||
"send_anyway": "Send anyway",
|
||
"back": "Back to editing"
|
||
},
|
||
"schedule_send": "Schedule send",
|
||
"schedule_send_description": "Choose when the server should release this message.",
|
||
"schedule_send_required": "Choose a date and time.",
|
||
"schedule_send_invalid": "Enter a valid date and time.",
|
||
"schedule_send_future": "Choose a future date and time.",
|
||
"schedule_send_too_late": "This time is later than the server allows.",
|
||
"schedule_send_unsupported": "Scheduled send is not supported for this account.",
|
||
"schedule_send_cleanup_warning": "Scheduled send was created, but draft cleanup failed.",
|
||
"send_delay_unsupported": "Send delay is not supported for this account.",
|
||
"send_delay_unsupported_confirm": "This account does not support send delay. Send immediately instead?",
|
||
"recipient_edit_email": "Edit email address",
|
||
"recipient_edit_name": "Edit display name",
|
||
"recipient_email_placeholder": "Email address",
|
||
"recipient_name_placeholder": "Display name"
|
||
},
|
||
"confirm_dialog": {
|
||
"confirm": "Confirm",
|
||
"cancel": "Cancel"
|
||
},
|
||
"common": {
|
||
"loading": "Loading...",
|
||
"error": "Error",
|
||
"success": "Success",
|
||
"cancel": "Cancel",
|
||
"save": "Save",
|
||
"delete": "Delete",
|
||
"edit": "Edit",
|
||
"close": "Close",
|
||
"search": "Search",
|
||
"refresh": "Refresh",
|
||
"settings": "Settings",
|
||
"help": "Help",
|
||
"logout": "Logout",
|
||
"yes": "Yes",
|
||
"no": "No",
|
||
"unknown": "Unknown",
|
||
"app_title": "Webmail",
|
||
"reconnecting": "Connection lost. Attempting to reconnect…",
|
||
"rate_limited_title": "Server authentication is temporarily rate limited.",
|
||
"rate_limited_detail": "Bulwark has paused background requests to avoid lockout. Retrying in {seconds}s.",
|
||
"rate_limited_action_title": "Request paused to avoid lockout.",
|
||
"rate_limited_action_detail": "Bulwark is waiting for the server cooldown to end before sending more authenticated requests. Try again in {seconds}s."
|
||
},
|
||
"notifications": {
|
||
"email_sent": "Email sent successfully",
|
||
"email_deleted": "Email deleted",
|
||
"email_archived": "Email archived",
|
||
"email_starred": "Email starred",
|
||
"email_unstarred": "Email unstarred",
|
||
"email_marked_read": "Email marked as read",
|
||
"email_marked_unread": "Email marked as unread",
|
||
"copied_to_clipboard": "Copied to clipboard",
|
||
"source_copied": "Source copied to clipboard",
|
||
"error_sending": "Failed to send email",
|
||
"error_deleting": "Failed to delete email",
|
||
"error_loading": "Failed to load emails",
|
||
"new_email": "New email",
|
||
"new_email_from": "From {sender}",
|
||
"click_to_view": "Click to view",
|
||
"email_moved": "Email moved",
|
||
"emails_moved": "{count} emails moved",
|
||
"moved_to_mailbox": "Moved to {mailbox}",
|
||
"move_failed": "Move failed",
|
||
"move_error": "Could not move emails to the selected folder",
|
||
"email_tagged": "Email tagged",
|
||
"emails_tagged": "{count} emails tagged",
|
||
"tag_failed": "Tagging failed",
|
||
"identity_created": "Identity created successfully",
|
||
"identity_updated": "Identity updated successfully",
|
||
"identity_deleted": "Identity deleted",
|
||
"identity_set_primary": "Primary identity updated",
|
||
"identity_create_failed": "Failed to create identity: {error}",
|
||
"identity_update_failed": "Failed to update identity: {error}",
|
||
"identity_delete_failed": "Failed to delete identity: {error}",
|
||
"identity_unauthorized": "You are not authorized to send from this email address",
|
||
"identity_not_found": "Identity not found",
|
||
"vacation_saved": "Vacation responder settings saved",
|
||
"vacation_save_failed": "Failed to save vacation responder settings",
|
||
"filters_saved": "Filters saved successfully",
|
||
"filters_save_failed": "Failed to save filters",
|
||
"filters_deleted": "Filter rule deleted",
|
||
"templates_exported": "Templates exported successfully",
|
||
"templates_imported": "{count, plural, one {# template} other {# templates}} imported",
|
||
"templates_import_errors": "Some templates could not be imported",
|
||
"templates_import_empty": "No templates found in the file",
|
||
"export_email_error": "Failed to export email",
|
||
"import_email_success": "Email imported successfully",
|
||
"import_email_error": "Failed to import email"
|
||
},
|
||
"date": {
|
||
"today": "Today",
|
||
"yesterday": "Yesterday",
|
||
"this_week": "This week",
|
||
"last_week": "Last week",
|
||
"this_month": "This month",
|
||
"older": "Older",
|
||
"just_now": "Just now",
|
||
"minutes_ago": "{count} minute ago",
|
||
"minutes_ago_plural": "{count} minutes ago",
|
||
"hours_ago": "{count} hour ago",
|
||
"hours_ago_plural": "{count} hours ago",
|
||
"days_ago": "{count} day ago",
|
||
"days_ago_plural": "{count} days ago"
|
||
},
|
||
"language": {
|
||
"title": "Language",
|
||
"english": "English",
|
||
"french": "Français",
|
||
"japanese": "日本語",
|
||
"spanish": "Español",
|
||
"italian": "Italiano",
|
||
"german": "Deutsch",
|
||
"dutch": "Nederlands",
|
||
"portuguese": "Português",
|
||
"russian": "Русский",
|
||
"select_language": "Select language",
|
||
"switch_to_english": "Switch to English",
|
||
"switch_to_french": "Switch to French",
|
||
"switch_to_japanese": "Switch to Japanese",
|
||
"switch_to_spanish": "Switch to Spanish",
|
||
"switch_to_italian": "Switch to Italian",
|
||
"switch_to_german": "Switch to German",
|
||
"switch_to_dutch": "Switch to Dutch",
|
||
"switch_to_portuguese": "Switch to Portuguese",
|
||
"switch_to_russian": "Switch to Russian",
|
||
"switching": "Changing language...",
|
||
"switch": "Switch language",
|
||
"current": "Current language",
|
||
"polish": "Polski",
|
||
"switch_to_polish": "Switch to Polish",
|
||
"en": "English",
|
||
"fr": "Français",
|
||
"de": "Deutsch",
|
||
"es": "Español",
|
||
"it": "Italiano",
|
||
"ja": "日本語",
|
||
"ko": "한국어",
|
||
"lv": "Latviešu",
|
||
"nl": "Nederlands",
|
||
"pl": "Polski",
|
||
"pt": "Português",
|
||
"ru": "Русский",
|
||
"uk": "Українська",
|
||
"zh": "简体中文"
|
||
},
|
||
"settings": {
|
||
"title": "Settings",
|
||
"back_to_mail": "Back to Mail",
|
||
"save_success": "Settings saved successfully",
|
||
"import_success": "Settings imported successfully",
|
||
"import_error": "Failed to import settings",
|
||
"reset_confirm": "Are you sure you want to reset all settings to defaults?",
|
||
"unsaved_changes": "You have unsaved changes",
|
||
"discard_changes": "Discard unsaved changes?",
|
||
"discard": "Discard",
|
||
"keep_editing": "Keep editing",
|
||
"search_placeholder": "Search settings",
|
||
"search_clear": "Clear search",
|
||
"search_no_results": "No matching settings",
|
||
"tabs": {
|
||
"appearance": "Appearance",
|
||
"language": "Language, Region & Time",
|
||
"email": "Email Behavior",
|
||
"composer": "Composer",
|
||
"privacy": "Privacy & Security",
|
||
"account": "Account",
|
||
"identities": "Identities",
|
||
"vacation": "Vacation Responder",
|
||
"advanced": "Advanced",
|
||
"calendar": "Calendar",
|
||
"filters": "Filters",
|
||
"templates": "Templates",
|
||
"folders": "Folders",
|
||
"keywords": "Tags",
|
||
"security": "Security",
|
||
"files": "Files",
|
||
"contacts": "Contacts",
|
||
"encryption": "Encryption",
|
||
"protocol_handlers": "Default apps",
|
||
"sidebar_apps": "Sidebar Apps",
|
||
"notifications": "Notifications",
|
||
"layout": "Layout",
|
||
"reading": "Reading",
|
||
"composing": "Composing",
|
||
"downloads": "Downloads",
|
||
"content_senders": "Content & Senders",
|
||
"about_data": "About & Data",
|
||
"debug": "Debug"
|
||
},
|
||
"tab_groups": {
|
||
"general": "General",
|
||
"account": "Account & Identity",
|
||
"organization": "Mail Organization",
|
||
"apps": "Apps",
|
||
"system": "System",
|
||
"appearance": "Appearance",
|
||
"mail": "Mail",
|
||
"privacy": "Privacy & Security",
|
||
"advanced": "Advanced"
|
||
},
|
||
"appearance": {
|
||
"title": "Appearance",
|
||
"description": "Customize the look and feel of your webmail",
|
||
"theme": {
|
||
"label": "Theme",
|
||
"description": "Choose your preferred color scheme",
|
||
"light": "Light",
|
||
"dark": "Dark",
|
||
"system": "System"
|
||
},
|
||
"language": {
|
||
"label": "Language",
|
||
"description": "Choose your preferred language"
|
||
},
|
||
"font_size": {
|
||
"label": "Font Size",
|
||
"description": "Adjust text size for better readability",
|
||
"small": "Small",
|
||
"medium": "Medium",
|
||
"large": "Large"
|
||
},
|
||
"list_density": {
|
||
"label": "Density",
|
||
"description": "Control spacing and padding across the UI",
|
||
"extra_compact": "Extra Compact",
|
||
"compact": "Compact",
|
||
"regular": "Regular",
|
||
"comfortable": "Comfortable"
|
||
},
|
||
"animations": {
|
||
"label": "Enable Animations",
|
||
"description": "Show smooth transitions and effects"
|
||
},
|
||
"toolbar_position": {
|
||
"label": "Toolbar Position",
|
||
"description": "Where to show email action buttons (Reply, Archive, Delete, etc.)",
|
||
"top": "Top",
|
||
"below_subject": "Below subject"
|
||
},
|
||
"toolbar_labels": {
|
||
"label": "Show Toolbar Labels",
|
||
"description": "Display text labels next to toolbar icons. Disable to save space once you are familiar with the icons."
|
||
},
|
||
"hide_account_switcher": {
|
||
"label": "Hide Sidebar Account Switcher",
|
||
"description": "Hide the account selector at the top of the folder sidebar. You can still switch accounts from the bottom navigation rail."
|
||
},
|
||
"show_rail_account_list": {
|
||
"label": "Show Account Avatars on Navigation Rail",
|
||
"description": "Display individual account circles at the bottom of the navigation rail for quick switching, with a sign-out button below."
|
||
},
|
||
"unified_mailbox": {
|
||
"label": "Unified Mailbox",
|
||
"description": "Show combined folders (Inbox, Sent, etc.) across all connected accounts",
|
||
"include_group": {
|
||
"label": "Include group inboxes",
|
||
"description": "Also merge shared/group inboxes into the unified view."
|
||
}
|
||
},
|
||
"all_mail": {
|
||
"label": "All Mail",
|
||
"description": "Show an \"All Mail\" entry above your folders that merges messages from across this account's folders into one list.",
|
||
"folders_label": "Folders in All Mail",
|
||
"folders_description": "Choose which folders are merged into the All Mail view.",
|
||
"account_hint": "Applies to {account}.",
|
||
"no_folders": "No folders available."
|
||
},
|
||
"colorful_sidebar_icons": {
|
||
"label": "Colorful Sidebar Icons",
|
||
"description": "Tint folder and tag icons by type (blue Inbox, red Junk, green Sent, etc.). Disable for a monochrome sidebar."
|
||
},
|
||
"pro_interface": {
|
||
"label": "Pro Interface (Experimental)",
|
||
"description": "Desktop-only power-user layout with multi-tab message browsing and cross-account workflows. The standard interface is unaffected; you can switch back at any time.",
|
||
"open_label": "Open Pro Interface",
|
||
"back_to_standard": "Back to standard"
|
||
}
|
||
},
|
||
"keywords": {
|
||
"title": "Email Tags",
|
||
"description": "Define tags to organize your emails with colors. These are stored as JMAP keywords on the server.",
|
||
"add_keyword": "Add Tag",
|
||
"reset_defaults": "Reset to Defaults",
|
||
"label_field": "Display Name",
|
||
"label_placeholder": "e.g. Work, Personal, Urgent",
|
||
"id_field": "Tag ID",
|
||
"id_placeholder": "e.g. work, personal",
|
||
"color_field": "Color",
|
||
"id_exists": "This tag ID already exists",
|
||
"edit": "Edit tag",
|
||
"delete": "Delete tag",
|
||
"save": "Save",
|
||
"add": "Add",
|
||
"cancel": "Cancel",
|
||
"migrating": "Updating tag on existing emails…",
|
||
"migration_error": "Failed to update tag on existing emails"
|
||
},
|
||
"notifications": {
|
||
"test_sound": "Test notification sound",
|
||
"sounds": {
|
||
"default": "Default (Beep)",
|
||
"cheerful": "Cheerful",
|
||
"involved": "Involved",
|
||
"swift": "Swift Gesture",
|
||
"relax": "Relax"
|
||
},
|
||
"push": {
|
||
"title": "Background Notifications",
|
||
"description": "Receive system notifications for new mail when this site is closed. Delivered via the Bulwark push relay; the relay never sees mail content.",
|
||
"relay_label": "Push relay",
|
||
"relay_desc": "Defaults to the hosted Bulwark relay. Change only if you self-host.",
|
||
"relay_locked": "Set by administrator",
|
||
"relay_locked_desc": "The push relay URL has been set by your administrator and cannot be changed.",
|
||
"relay_placeholder": "https://notifications.relay.example.com",
|
||
"status_active": "Active on this device",
|
||
"status_inactive": "Not enabled on this device",
|
||
"status_unsupported": "This browser does not support Web Push",
|
||
"status_busy": "Working…",
|
||
"enable": "Enable",
|
||
"reenable": "Re-register",
|
||
"disable": "Disable",
|
||
"confirm_disable_title": "Disable background notifications?",
|
||
"confirm_disable_message": "This device will stop receiving alerts when the site is closed.",
|
||
"ios_hint": "On iOS, install the site to your home screen first - Safari only delivers Web Push to installed PWAs."
|
||
},
|
||
"sound_selection": {
|
||
"title": "Notification Sound",
|
||
"description": "Choose which sound to play for notifications",
|
||
"choose": "Sound",
|
||
"choose_desc": "Select a notification tone and click the speaker icon to preview it"
|
||
},
|
||
"email": {
|
||
"title": "Email Notifications",
|
||
"description": "Configure notifications for incoming emails",
|
||
"enabled": "Email notifications",
|
||
"enabled_desc": "Show notifications when new emails arrive",
|
||
"sound": "Notification sound",
|
||
"sound_desc": "Play an audio alert when new emails arrive"
|
||
},
|
||
"calendar": {
|
||
"title": "Calendar Notifications",
|
||
"description": "Configure notifications for calendar events",
|
||
"enabled": "Event notifications",
|
||
"enabled_desc": "Show alerts for upcoming calendar events",
|
||
"sound": "Notification sound",
|
||
"sound_desc": "Play an audio alert for calendar reminders",
|
||
"invitation_parsing": "Parse email invitations",
|
||
"invitation_parsing_desc": "Detect calendar invitations in email attachments and show calendar actions"
|
||
}
|
||
},
|
||
"language_region": {
|
||
"title": "Language, Region & Time",
|
||
"description": "Language, date format, time format, and other regional preferences",
|
||
"language": {
|
||
"label": "Language",
|
||
"description": "Choose your preferred language",
|
||
"english": "English",
|
||
"french": "Français"
|
||
},
|
||
"date_format": {
|
||
"label": "Date Format",
|
||
"description": "How dates are shown in the email list",
|
||
"smart": "Smart (locale-aware)",
|
||
"relative": "Relative (1h ago, 2d ago)",
|
||
"full": "Always full date",
|
||
"preview_today": "Today:",
|
||
"preview_this_week": "This week:",
|
||
"preview_older": "Older:"
|
||
},
|
||
"time_format": {
|
||
"label": "Time Format",
|
||
"description": "Choose between 12-hour or 24-hour clock",
|
||
"12h": "12-hour",
|
||
"24h": "24-hour"
|
||
},
|
||
"first_day": {
|
||
"label": "First Day of Week",
|
||
"description": "Start week on Sunday or Monday",
|
||
"sunday": "Sunday",
|
||
"monday": "Monday"
|
||
}
|
||
},
|
||
"email_behavior": {
|
||
"request_read_receipt": {
|
||
"label": "Request read receipts by default",
|
||
"description": "Pre-enable the read-receipt request when composing a new message."
|
||
},
|
||
"read_receipt_response": {
|
||
"label": "Respond to read-receipt requests",
|
||
"description": "What to do when an incoming message asks for a read receipt.",
|
||
"ask": "Ask each time",
|
||
"always": "Always send",
|
||
"never": "Never send"
|
||
},
|
||
"title": "Email Behavior",
|
||
"description": "Configure how emails are handled",
|
||
"mark_read": {
|
||
"label": "Mark as Read",
|
||
"description": "When to mark emails as read when opened",
|
||
"instant": "Instantly",
|
||
"delay_3s": "After 3 seconds",
|
||
"delay_5s": "After 5 seconds",
|
||
"never": "Never"
|
||
},
|
||
"delete_action": {
|
||
"label": "Delete Action",
|
||
"description": "What happens when you delete an email",
|
||
"trash": "Move to Trash",
|
||
"trash_and_read": "Move to Trash and mark as read",
|
||
"permanent": "Delete Permanently",
|
||
"warning": "Emails will be permanently deleted and cannot be recovered. This action is irreversible."
|
||
},
|
||
"archive_mode": {
|
||
"label": "Archive in",
|
||
"description": "How to organize emails when archiving",
|
||
"single": "A single folder",
|
||
"year": "A folder per year",
|
||
"month": "A folder per month",
|
||
"reorganize": "Reorganize existing archive",
|
||
"reorganize_success": "{count, plural, =0 {No emails to reorganize} =1 {1 email reorganized} other {# emails reorganized}}",
|
||
"reorganize_error": "Failed to reorganize archive"
|
||
},
|
||
"permanently_delete_junk": {
|
||
"label": "Permanently Delete Junk",
|
||
"description": "Permanently delete emails from the Junk/Spam folder instead of moving them to Trash"
|
||
},
|
||
"mail_layout": {
|
||
"label": "Mail Layout",
|
||
"description": "Choose between the classic split reading pane, a Gmail-style focused reading flow, or a Zimbra-style bottom reading pane.",
|
||
"split": "Split pane",
|
||
"split_description": "Keep the message list and reading pane visible side by side.",
|
||
"focus": "Focused list",
|
||
"focus_description": "Show one line per message and open mail full-width while keeping the folder sidebar visible.",
|
||
"horizontal": "Reading pane at bottom",
|
||
"horizontal_description": "Show the message list on top and open the selected message in a reading pane below it."
|
||
},
|
||
"show_preview": {
|
||
"label": "Show Preview Text",
|
||
"description": "Display email preview in the list",
|
||
"focus_description": "Display inline preview text inside the focused one-line message list"
|
||
},
|
||
"disable_threading": {
|
||
"label": "Disable Conversation Grouping",
|
||
"description": "Show emails as individual messages instead of grouped by conversation"
|
||
},
|
||
"plain_text_mode": {
|
||
"label": "Plain Text Only",
|
||
"description": "Disable the rich text editor and send all emails as plain text only, including replies and forwards"
|
||
},
|
||
"auto_select_reply_identity": {
|
||
"label": "Reply From Received Address",
|
||
"description": "When replying, send from the address the message was originally sent to. Matches identities first; for domain catch-all deliveries, rewrites the From header to the alias while sending through your primary identity."
|
||
},
|
||
"signature_position": {
|
||
"label": "Signature Position",
|
||
"description": "Where to insert your signature in replies and forwards. Above the quoted text reads naturally as a closing for the reply; below keeps the original message contiguous.",
|
||
"above_quote": "Before quoted text",
|
||
"below_quote": "After quoted text"
|
||
},
|
||
"signature_separator": {
|
||
"label": "Signature Delimiter",
|
||
"description": "Prefix the signature with the standard \"-- \" delimiter line (RFC 3676). Turn off if you'd rather flow straight from your message into the signature."
|
||
},
|
||
"sub_address_delimiter": {
|
||
"label": "Sub-Address Delimiter",
|
||
"description": "Character separating your username from a sub-address tag. Match the delimiter your mail server uses (e.g. user{delimiter}tag@domain.com).",
|
||
"option": "{delimiter} (user{delimiter}tag@domain.com)",
|
||
"custom": "Custom…",
|
||
"custom_input_label": "Custom delimiter character"
|
||
},
|
||
"attachment_click_action": {
|
||
"label": "Attachment Click Action",
|
||
"description": "Choose whether clicking a file attachment previews it or downloads it immediately",
|
||
"preview": "Preview when possible",
|
||
"download": "Download immediately"
|
||
},
|
||
"attachment_position": {
|
||
"label": "Attachment Position",
|
||
"description": "Where to display attachments in the email header",
|
||
"beside-sender": "Next to sender",
|
||
"below-header": "Below header"
|
||
},
|
||
"emails_per_page": {
|
||
"10": "10 emails",
|
||
"25": "25 emails",
|
||
"50": "50 emails",
|
||
"100": "100 emails",
|
||
"label": "Emails Per Page",
|
||
"description": "Number of emails to load at once"
|
||
},
|
||
"always_light_mode": {
|
||
"label": "Always Show Emails in Light Mode",
|
||
"description": "Render email content in light mode even when the app is in dark mode, avoiding dark mode conversion issues"
|
||
},
|
||
"external_content": {
|
||
"label": "External Content",
|
||
"description": "How to handle images and external content",
|
||
"ask": "Always ask",
|
||
"block": "Always block",
|
||
"allow": "Always allow"
|
||
},
|
||
"trusted_senders": {
|
||
"label": "Trusted Senders",
|
||
"description": "Manage senders whose images load automatically",
|
||
"count_zero": "None",
|
||
"count_one": "1 sender",
|
||
"count_other": "{count} senders",
|
||
"modal_title": "Trusted Senders",
|
||
"empty_title": "No trusted senders yet",
|
||
"empty_description": "When viewing an email with blocked images, click \"Always trust this sender\" to add them here.",
|
||
"add_manually": "Add sender manually",
|
||
"add_button": "Add",
|
||
"add_placeholder": "Enter email address",
|
||
"search_placeholder": "Search senders...",
|
||
"no_results": "No senders match your search",
|
||
"remove": "Remove",
|
||
"close": "Close",
|
||
"invalid_email": "Please enter a valid email address",
|
||
"already_added": "This sender is already trusted",
|
||
"save_error": "Failed to save - check the Contacts debug log for details",
|
||
"use_address_book_label": "Sync with address book",
|
||
"use_address_book_description": "Store trusted senders in a dedicated \"Trusted Senders\" address book so they sync across all your devices"
|
||
},
|
||
"hover_actions": {
|
||
"label": "Quick Hover Actions",
|
||
"description": "Choose which quick actions appear when hovering over an email in the list",
|
||
"delete": "Delete",
|
||
"star": "Star / Unstar",
|
||
"mark_read": "Mark Read / Unread",
|
||
"archive": "Archive",
|
||
"tag": "Tag",
|
||
"spam": "Mark as Spam",
|
||
"none_selected": "No actions selected",
|
||
"mode_label": "Display Mode",
|
||
"mode_inline": "Inline",
|
||
"mode_floating": "Floating",
|
||
"corner_label": "Floating Position",
|
||
"corner_top-left": "Top Left",
|
||
"corner_top-right": "Top Right",
|
||
"corner_bottom-left": "Bottom Left",
|
||
"corner_bottom-right": "Bottom Right"
|
||
},
|
||
"default_mail_program": {
|
||
"label": "Default Mail Program",
|
||
"description": "Register {appName} as your default mail program for mailto: links",
|
||
"button": "Set as Default",
|
||
"success": "Browser prompted to set as default",
|
||
"error": "Your browser does not support this feature"
|
||
},
|
||
"attachment_reminder": {
|
||
"label": "Attachment Reminder",
|
||
"description": "Warn before sending when your message mentions attachments but none are attached",
|
||
"keywords_label": "Trigger keywords",
|
||
"keywords_description": "Words or phrases that trigger the reminder when found in your message",
|
||
"add_placeholder": "Add keyword...",
|
||
"add": "Add",
|
||
"remove": "Remove"
|
||
},
|
||
"hide_inline_image_attachments": {
|
||
"label": "Hide inline images from attachments",
|
||
"description": "Images embedded in the message body are not listed as separate attachments"
|
||
},
|
||
"attachment_image_previews": {
|
||
"label": "Show image previews in attachments",
|
||
"description": "Render image attachments as thumbnail cards instead of generic file icons"
|
||
},
|
||
"send_delay": {
|
||
"label": "Undo send / send delay",
|
||
"description": "Delay normal sends by a short server-side window.",
|
||
"off": "Off",
|
||
"seconds": "{seconds} seconds",
|
||
"unsupported": "The current account does not advertise delayed-send support. The setting is still saved for other accounts."
|
||
},
|
||
"return_to_list_after_action": {
|
||
"label": "Return to list after delete or mark unread",
|
||
"description": "After deleting or marking the open message unread, go back to the message list instead of opening the next message."
|
||
}
|
||
},
|
||
"composer": {
|
||
"title": "Composer",
|
||
"description": "Configure email composition settings",
|
||
"autosave": {
|
||
"label": "Auto-save Interval",
|
||
"description": "How often to save drafts automatically",
|
||
"30s": "Every 30 seconds",
|
||
"1m": "Every minute",
|
||
"2m": "Every 2 minutes",
|
||
"5m": "Every 5 minutes"
|
||
},
|
||
"send_confirmation": {
|
||
"label": "Send Confirmation",
|
||
"description": "Ask for confirmation before sending emails"
|
||
},
|
||
"default_reply": {
|
||
"label": "Default Reply Mode",
|
||
"description": "Default action when clicking reply",
|
||
"reply": "Reply",
|
||
"reply_all": "Reply All"
|
||
}
|
||
},
|
||
"privacy": {
|
||
"title": "Privacy & Security",
|
||
"description": "Manage your privacy and security settings",
|
||
"external_images": {
|
||
"label": "Block External Images",
|
||
"description": "Prevent tracking through external images"
|
||
},
|
||
"session_timeout": {
|
||
"label": "Session Timeout",
|
||
"description": "Automatically log out after inactivity",
|
||
"never": "Never",
|
||
"30m": "30 minutes",
|
||
"1h": "1 hour",
|
||
"4h": "4 hours"
|
||
},
|
||
"clear_cache": {
|
||
"label": "Clear Cache",
|
||
"description": "Remove cached data and temporary files",
|
||
"button": "Clear Cache",
|
||
"confirm": "Are you sure you want to clear the cache?",
|
||
"success": "Cache cleared successfully"
|
||
}
|
||
},
|
||
"account": {
|
||
"title": "Account",
|
||
"description": "View your account information",
|
||
"name_label": "Display Name",
|
||
"username_label": "Username",
|
||
"account_type_label": "Account Type",
|
||
"auth_method_label": "Authentication",
|
||
"auth_method_oauth": "Single Sign-On (OAuth/OIDC)",
|
||
"auth_method_basic": "Password",
|
||
"demo_account": "Demo Account",
|
||
"email": {
|
||
"label": "Email Address",
|
||
"value": "{email}"
|
||
},
|
||
"server": {
|
||
"label": "JMAP Server",
|
||
"value": "{server}"
|
||
},
|
||
"storage": {
|
||
"label": "Storage Usage",
|
||
"used": "{used} of {total} used",
|
||
"percentage": "{percent}% used"
|
||
},
|
||
"last_sync": {
|
||
"label": "Last Sync",
|
||
"value": "{time}"
|
||
},
|
||
"accounts": {
|
||
"title": "Logged-in accounts",
|
||
"description": "Drag to reorder how accounts appear in the account dropdown",
|
||
"active": "Currently active account",
|
||
"default_badge": "Default account",
|
||
"set_default": "Set as default",
|
||
"switch_to": "Switch to this account",
|
||
"move_up": "Move up",
|
||
"move_down": "Move down",
|
||
"drag_handle": "Drag to reorder",
|
||
"add": "Add account"
|
||
},
|
||
"shared_accounts": {
|
||
"title": "Shared with me",
|
||
"description": "Group and shared accounts you can manage. Select one to edit its filters, vacation responder, calendars, and contacts.",
|
||
"shared_label": "Shared account"
|
||
}
|
||
},
|
||
"scoped": {
|
||
"back": "Back to my account",
|
||
"managing": "Managing: {name}"
|
||
},
|
||
"security": {
|
||
"title": "Account Security",
|
||
"description": "Manage your password, two-factor authentication, and security settings",
|
||
"detecting": "Detecting server capabilities...",
|
||
"not_available": "Account security management is not available for this mail server. Required permissions may be disabled. See the <a href=\"/docs/guides/account-security\" class=\"underline hover:opacity-80\" target=\"_blank\">documentation</a> for details.",
|
||
"password": {
|
||
"title": "Change Password",
|
||
"current": "Current Password",
|
||
"new": "New Password",
|
||
"confirm": "Confirm New Password",
|
||
"submit": "Change Password",
|
||
"success": "Password changed successfully",
|
||
"error_title": "Password change failed",
|
||
"error_mismatch": "New passwords do not match",
|
||
"error_min_length": "Password must be at least 8 characters",
|
||
"error_generic": "Failed to change password"
|
||
},
|
||
"display_name": {
|
||
"label": "Display Name",
|
||
"description": "Your name as it appears on the server",
|
||
"placeholder": "Enter your display name",
|
||
"save": "Save",
|
||
"success": "Display name updated",
|
||
"error": "Failed to update display name"
|
||
},
|
||
"totp": {
|
||
"section_title": "Two-Factor Authentication",
|
||
"label": "TOTP Authentication",
|
||
"description": "Add an extra layer of security with a time-based one-time password",
|
||
"active": "Enabled",
|
||
"inactive": "Disabled",
|
||
"enabled": "Two-factor authentication enabled",
|
||
"disabled": "Two-factor authentication disabled",
|
||
"enable_error": "Failed to enable 2FA",
|
||
"disable_error": "Failed to disable 2FA",
|
||
"setup_instructions": "Copy this URL into your authenticator app (Google Authenticator, Authy, etc.):",
|
||
"verification_code": "Verification code",
|
||
"confirm": "Confirm",
|
||
"disable": "Disable",
|
||
"disable_confirm_prompt": "Enter your password to disable two-factor authentication.",
|
||
"password_required": "Password is required",
|
||
"code_required": "Verification code is required",
|
||
"code_invalid": "Invalid verification code. Check your authenticator app and try again."
|
||
},
|
||
"app_passwords": {
|
||
"title": "App Passwords",
|
||
"description": "Create passwords for apps that don't support two-factor authentication",
|
||
"add": "Add",
|
||
"create": "Create",
|
||
"cancel": "Cancel",
|
||
"done": "Done",
|
||
"generate": "Generate",
|
||
"name_label": "App Name",
|
||
"name_placeholder": "e.g. Thunderbird, iPhone Mail",
|
||
"expires_label": "Expires (optional)",
|
||
"allowed_ips_label": "Allowed IPs (optional)",
|
||
"allowed_ips_placeholder": "10.0.0.5, 192.168.1.0/24",
|
||
"allowed_ips_hint": "Comma- or space-separated. Leave empty to allow any IP.",
|
||
"password_label": "Password (leave empty to auto-generate)",
|
||
"password_placeholder": "Auto-generated if empty",
|
||
"copy_now_warning": "Copy this password now - it will not be shown again.",
|
||
"added": "App password created",
|
||
"removed": "App password removed",
|
||
"add_error": "Failed to create app password",
|
||
"remove_error": "Failed to remove app password",
|
||
"none": "No app passwords configured"
|
||
},
|
||
"api_keys": {
|
||
"title": "API Keys",
|
||
"description": "Create API keys for scripts and integrations that talk to the server directly",
|
||
"name_label": "Key Name",
|
||
"name_placeholder": "e.g. Backup script, CI runner",
|
||
"copy_now_warning": "Copy this API key now - it will not be shown again.",
|
||
"added": "API key created",
|
||
"removed": "API key removed",
|
||
"add_error": "Failed to create API key",
|
||
"remove_error": "Failed to remove API key",
|
||
"none": "No API keys configured"
|
||
},
|
||
"encryption": {
|
||
"section_title": "Encryption at Rest",
|
||
"label": "Email Encryption",
|
||
"description": "Encrypt stored emails on the server for additional privacy",
|
||
"active": "{type} encryption enabled",
|
||
"inactive": "Disabled",
|
||
"enabled": "Encryption at rest enabled",
|
||
"disabled_success": "Encryption at rest disabled",
|
||
"error": "Failed to update encryption settings"
|
||
},
|
||
"email_client": {
|
||
"title": "Email Client Setup",
|
||
"description": "Use these credentials to configure your desktop or mobile email client (Thunderbird, Apple Mail, Outlook, etc.)",
|
||
"jmap_username_label": "JMAP Username",
|
||
"copy": "Copy",
|
||
"copied": "Copied",
|
||
"password_instructions": "Use your JMAP username above along with an app password to sign in to your email client. Create an app password in the section above if you haven't already."
|
||
},
|
||
"link_device": {
|
||
"title": "Link Mobile App",
|
||
"description": "Sign in to the Bulwark Mail mobile app without typing anything. Generate a QR code here and scan it from the app's login screen.",
|
||
"generate": "Show QR code",
|
||
"regenerate": "Show a new code",
|
||
"instructions": "Open the Bulwark Mail app, tap \"Scan QR code\" on the login screen, and point your camera here.",
|
||
"expires_in": "This code expires in {seconds} seconds. It can only be used once.",
|
||
"expired": "This code has expired.",
|
||
"generating": "Generating…",
|
||
"error": "Couldn't create a pairing code. Please try again."
|
||
}
|
||
},
|
||
"identities": {
|
||
"title": "Sending Identities",
|
||
"description": "Manage email addresses you can send from",
|
||
"identities_count": {
|
||
"label": "Your Identities",
|
||
"description": "Email addresses configured for sending",
|
||
"count_zero": "No identities",
|
||
"count_one": "1 identity",
|
||
"count_other": "{count} identities"
|
||
},
|
||
"manage": "Manage Identities",
|
||
"sub_addressing": {
|
||
"label": "Sub-Addressing",
|
||
"description": "Use tags like user+tag@domain.com to organize incoming mail",
|
||
"learn_more": "Learn More"
|
||
}
|
||
},
|
||
"vacation": {
|
||
"title": "Vacation Responder",
|
||
"description": "Automatically reply to incoming emails while you're away",
|
||
"loading": "Loading vacation settings...",
|
||
"not_supported": "Your mail server does not support vacation responses.",
|
||
"fetch_error": "Failed to load vacation settings. Please try again.",
|
||
"status": {
|
||
"label": "Vacation Responder",
|
||
"description": "Send an automatic reply to people who email you",
|
||
"active": "Active",
|
||
"inactive": "Inactive"
|
||
},
|
||
"date_range": {
|
||
"title": "Date Range",
|
||
"description": "Optionally limit the auto-reply to a specific period",
|
||
"start": "Start Date",
|
||
"start_description": "Leave empty for no start limit",
|
||
"end": "End Date",
|
||
"end_description": "Leave empty for no end limit"
|
||
},
|
||
"message": {
|
||
"title": "Auto-Reply Message",
|
||
"description": "The message that will be sent as a reply",
|
||
"subject_label": "Subject",
|
||
"subject_description": "Subject line of the auto-reply",
|
||
"subject_placeholder": "Out of Office",
|
||
"body_label": "Message Body",
|
||
"body_description": "Plain text message content",
|
||
"body_placeholder": "Thank you for your email. I am currently out of the office and will respond when I return."
|
||
},
|
||
"preview": {
|
||
"title": "Preview",
|
||
"show": "Show preview",
|
||
"hide": "Hide preview"
|
||
},
|
||
"save": "Save Changes",
|
||
"saving": "Saving...",
|
||
"warnings": {
|
||
"end_before_start": "End date must be after start date",
|
||
"start_in_past": "Start date is in the past",
|
||
"empty_body": "Message body is empty - recipients will receive a blank reply"
|
||
}
|
||
},
|
||
"folders": {
|
||
"role_memos": "Notes",
|
||
"title": "Folders",
|
||
"description": "Manage your email folders and assign standard roles",
|
||
"folder_list": "Your Folders",
|
||
"folder_list_description": "Click a folder icon to customize it",
|
||
"standard_roles": "Standard Folder Roles",
|
||
"standard_roles_description": "Assign which folders are used for standard mailbox roles like Inbox, Sent, Trash, etc.",
|
||
"role_inbox": "Inbox",
|
||
"role_drafts": "Drafts",
|
||
"role_sent": "Sent",
|
||
"role_trash": "Trash",
|
||
"role_junk": "Spam / Junk",
|
||
"role_archive": "Archive",
|
||
"role_none": "None",
|
||
"create_folder": "Create Folder",
|
||
"create_subfolder": "Create Subfolder",
|
||
"subfolder_of": "Inside {name}",
|
||
"subfolder_name": "Subfolder name",
|
||
"new_folder_name": "Folder name",
|
||
"rename": "Rename",
|
||
"change_icon": "Change icon",
|
||
"delete": "Delete",
|
||
"confirm_delete": "Are you sure you want to delete \"{name}\"? Emails in this folder will be moved to Trash.",
|
||
"create": "Create",
|
||
"cancel": "Cancel",
|
||
"no_folders": "No custom folders",
|
||
"cannot_delete_role": "Cannot delete a folder with a standard role. Remove the role first.",
|
||
"folder_created": "Folder created",
|
||
"folder_renamed": "Folder renamed",
|
||
"folder_deleted": "Folder deleted",
|
||
"role_updated": "Folder role updated",
|
||
"error_create": "Failed to create folder",
|
||
"error_rename": "Failed to rename folder",
|
||
"error_delete": "Failed to delete folder",
|
||
"error_delete_has_children": "Cannot delete folder: it still contains subfolders. Delete or move them first.",
|
||
"error_delete_has_email": "Cannot delete folder: it still contains emails. Move or delete them first.",
|
||
"error_role": "Failed to update folder role"
|
||
},
|
||
"advanced": {
|
||
"title": "Advanced",
|
||
"description": "Advanced options and developer settings",
|
||
"debug_mode": {
|
||
"label": "Debug Mode",
|
||
"description": "Enable detailed logging for troubleshooting"
|
||
},
|
||
"debug_categories": {
|
||
"description": "Select which categories to log. Disable categories you don't need to reduce console noise.",
|
||
"jmap": "JMAP Client",
|
||
"jmap_description": "Mailbox operations, email fetching, and JMAP protocol requests",
|
||
"calendar": "Calendar",
|
||
"calendar_description": "Calendar events, imports, and scheduling messages",
|
||
"tasks": "Tasks",
|
||
"tasks_description": "Calendar task creation, fetching, and updates",
|
||
"auth": "Authentication",
|
||
"auth_description": "Login, TOTP, token exchange, and session management",
|
||
"filters": "Filters",
|
||
"filters_description": "Sieve filter rules and vacation scripts",
|
||
"email": "Email Viewing",
|
||
"email_description": "Email rendering, TNEF processing, and mark-as-read",
|
||
"push": "Push Notifications",
|
||
"push_description": "Push notification setup and delivery",
|
||
"contacts": "Contacts & Address Books",
|
||
"contacts_description": "Contact sync, address book operations, and trusted senders"
|
||
},
|
||
"settings_sync": {
|
||
"label": "Settings Sync",
|
||
"description": "Sync your settings across browsers and devices"
|
||
},
|
||
"sender_favicons": {
|
||
"label": "Sender Favicons",
|
||
"description": "Show website icons as profile pictures for business senders"
|
||
},
|
||
"show_avatars_in_junk": {
|
||
"label": "Show Avatars in Junk Folder",
|
||
"description": "Show profile images and favicons for senders in the junk folder. Disabled by default to avoid lending visual legitimacy to phishing attempts."
|
||
},
|
||
"keyboard_shortcuts": {
|
||
"label": "Keyboard Shortcuts",
|
||
"description": "View available keyboard shortcuts",
|
||
"button": "View Shortcuts"
|
||
},
|
||
"reset_settings": {
|
||
"label": "Reset Settings",
|
||
"description": "Restore all settings to default values",
|
||
"button": "Reset to Defaults"
|
||
},
|
||
"export_settings": {
|
||
"label": "Export Settings",
|
||
"description": "Download your settings as JSON",
|
||
"button": "Export"
|
||
},
|
||
"import_settings": {
|
||
"label": "Import Settings",
|
||
"description": "Upload settings from JSON file",
|
||
"button": "Import"
|
||
},
|
||
"about": {
|
||
"title": "Bulwark Webmail"
|
||
}
|
||
},
|
||
"sidebar_apps": {
|
||
"title": "Sidebar Apps",
|
||
"description": "Manage custom apps and links in your sidebar",
|
||
"keep_loaded": "Keep Apps Loaded",
|
||
"keep_loaded_description": "Keep inline apps running in the background when switching between them to avoid reloading",
|
||
"manage_title": "Custom Apps",
|
||
"manage_description": "Add, edit, or remove custom apps from your sidebar"
|
||
},
|
||
"contacts": {
|
||
"title": "Contacts",
|
||
"description": "Import and export your contacts",
|
||
"group_by_letter_label": "Group by first letter",
|
||
"group_by_letter_description": "Show alphabetical section headers in the contact list",
|
||
"import_label": "Import Contacts",
|
||
"import_description": "Import contacts from a vCard (.vcf) file",
|
||
"export_label": "Export Contacts",
|
||
"export_description": "Export all contacts as a vCard (.vcf) file",
|
||
"manage_title": "Address Books",
|
||
"manage_description": "Rename your address books",
|
||
"no_address_books": "No address books found",
|
||
"categories_title": "Categories",
|
||
"categories_description": "Rename contact categories",
|
||
"no_categories": "No categories found"
|
||
},
|
||
"downloads": {
|
||
"title": "Downloads",
|
||
"description": "Customize how downloaded emails and attachments are named.",
|
||
"reset": "Restore default",
|
||
"preview": "Preview:",
|
||
"email_template": {
|
||
"label": "Email (.eml) filename",
|
||
"description": "Template used when you export an email or drag one out to the file system. The .eml extension is added automatically."
|
||
},
|
||
"attachment_template": {
|
||
"label": "Attachment filename",
|
||
"description": "Template used when downloading or dragging out an attachment. If you omit '{filename}' and '{ext}', the original extension is preserved."
|
||
},
|
||
"bundle_template": {
|
||
"label": "Multi-email .zip filename",
|
||
"description": "Template used when you drag out or download several selected emails as a single .zip archive. The .zip extension is added automatically."
|
||
},
|
||
"spaces": {
|
||
"label": "Spaces",
|
||
"description": "Replace spaces in the resulting filename with another character.",
|
||
"keep": "Keep spaces",
|
||
"underscore": "Replace with _",
|
||
"dash": "Replace with -"
|
||
},
|
||
"lowercase": {
|
||
"label": "Lowercase",
|
||
"description": "Force the entire filename to lowercase."
|
||
},
|
||
"strip_diacritics": {
|
||
"label": "Strip diacritics",
|
||
"description": "Convert accented letters to their ASCII equivalents (ä → a, é → e). Useful for tools that mangle Unicode filenames."
|
||
},
|
||
"collapse_separators": {
|
||
"label": "Collapse repeated separators",
|
||
"description": "Collapse runs of spaces, underscores, or dashes to a single character."
|
||
},
|
||
"after_export": {
|
||
"label": "After export",
|
||
"description": "Optionally move the email after exporting it as .eml.",
|
||
"keep": "Keep in mailbox",
|
||
"archive": "Move to archive",
|
||
"trash": "Move to trash"
|
||
}
|
||
},
|
||
"filters": {
|
||
"title": "Email Filters",
|
||
"description": "Create rules to automatically sort, label, and manage incoming emails",
|
||
"add_rule": "Add Rule",
|
||
"no_rules": "No filter rules",
|
||
"no_rules_description": "Create rules to automatically organize your incoming emails",
|
||
"vacation_active": "Vacation Responder is active",
|
||
"vacation_active_description": "Auto-reply is enabled for incoming messages",
|
||
"vacation_configure": "Configure",
|
||
"edit_rule": "Edit Rule",
|
||
"new_rule": "New Rule",
|
||
"delete_rule": "Delete Rule",
|
||
"delete_confirm": "Are you sure you want to delete this rule?",
|
||
"enable": "Enable",
|
||
"disable": "Disable",
|
||
"raw_editor": "Raw Sieve Editor",
|
||
"raw_editor_warning": "Editing the raw Sieve script may break visual rule editing. Changes made here override the visual builder.",
|
||
"validate": "Validate",
|
||
"validation_success": "Script is valid",
|
||
"validation_error": "Script has errors",
|
||
"save": "Save Rules",
|
||
"saving": "Saving...",
|
||
"saved": "Filters saved successfully",
|
||
"save_failed": "Failed to save filters",
|
||
"loading": "Loading filters...",
|
||
"not_supported": "Your mail server does not support email filters.",
|
||
"rule_name": "Rule Name",
|
||
"rule_name_placeholder": "e.g., Sort newsletters",
|
||
"match_all": "Match ALL conditions",
|
||
"match_any": "Match ANY condition",
|
||
"conditions": "Conditions",
|
||
"add_condition": "Add Condition",
|
||
"actions": "Actions",
|
||
"add_action": "Add Action",
|
||
"stop_processing": "Stop processing subsequent rules",
|
||
"attachment_type_placeholder": "e.g. pdf, doc, jpg",
|
||
"value_placeholder_multi": "Value (multiple separated by commas)",
|
||
"condition_fields": {
|
||
"attachment": "Attachment",
|
||
"from": "From",
|
||
"to": "To",
|
||
"cc": "Cc",
|
||
"subject": "Subject",
|
||
"header": "Custom Header",
|
||
"size": "Size",
|
||
"body": "Body"
|
||
},
|
||
"comparators": {
|
||
"has_any": "is present",
|
||
"has_type": "of type",
|
||
"contains": "contains",
|
||
"not_contains": "does not contain",
|
||
"is": "is exactly",
|
||
"not_is": "is not",
|
||
"starts_with": "starts with",
|
||
"ends_with": "ends with",
|
||
"matches": "matches pattern",
|
||
"greater_than": "is greater than",
|
||
"less_than": "is less than"
|
||
},
|
||
"action_types": {
|
||
"move": "Move to folder",
|
||
"copy": "Copy to folder",
|
||
"forward": "Forward to",
|
||
"mark_read": "Mark as read",
|
||
"star": "Star message",
|
||
"add_label": "Add tag",
|
||
"discard": "Discard (delete silently)",
|
||
"reject": "Reject with message",
|
||
"keep": "Keep in inbox",
|
||
"stop": "Stop processing"
|
||
},
|
||
"move_to_folder": "Select folder",
|
||
"copy_to_folder": "Select folder",
|
||
"forward_to": "Forward to email address",
|
||
"forward_placeholder": "email@example.com",
|
||
"reject_message": "Rejection message",
|
||
"reject_placeholder": "Your email has been rejected",
|
||
"label_name": "Tag name",
|
||
"label_placeholder": "Select tag",
|
||
"header_name": "Header name",
|
||
"header_placeholder": "e.g., X-Mailing-List",
|
||
"size_bytes": "Size in bytes",
|
||
"size_placeholder": "e.g., 1000000",
|
||
"system_managed": "System-managed rule",
|
||
"opaque_warning": "This script was edited outside the visual builder. Only raw Sieve editing is available.",
|
||
"open_sieve_editor": "Open raw Sieve editor",
|
||
"fetch_error": "Failed to load filters",
|
||
"expanded_view": "Expanded view",
|
||
"expanded_view_description": "Show filter rules with detailed condition and action blocks",
|
||
"if": "If",
|
||
"then": "Then",
|
||
"match_all_conditions": "all match",
|
||
"match_any_condition": "any matches",
|
||
"and": "and",
|
||
"or": "or",
|
||
"cancel": "Cancel",
|
||
"confirm_delete": "Delete",
|
||
"rule_list": "Filter rules",
|
||
"drag_to_reorder": "Drag to reorder",
|
||
"match_type": "Match type",
|
||
"reset_to_visual": "Reset to visual builder",
|
||
"reset_warning": "This will discard the current script and start fresh.",
|
||
"confirm_reset": "Reset",
|
||
"validation_empty_name": "Rule name is required",
|
||
"validation_empty_conditions": "At least one condition with a value is required",
|
||
"validation_empty_actions": "At least one action is required",
|
||
"templates_section": "Start from template",
|
||
"template_newsletters": "Move newsletters to folder",
|
||
"template_receipts": "Auto-archive receipts",
|
||
"template_important": "Flag important emails",
|
||
"template_notifications": "Filter notifications",
|
||
"sieve_editor": {
|
||
"title": "Sieve Script Editor",
|
||
"warning": "Editing the raw Sieve script may break visual rule editing. Changes made here override the visual builder.",
|
||
"script_content": "Sieve script",
|
||
"valid": "Script is valid",
|
||
"invalid": "Script has errors",
|
||
"save_warning": "Saving will overwrite any visual rules. This cannot be undone. Click Save again to confirm.",
|
||
"validating": "Validating...",
|
||
"validate": "Validate",
|
||
"cancel": "Cancel",
|
||
"save": "Save",
|
||
"confirm_save": "Confirm Save",
|
||
"validation_failed": "Validation request failed"
|
||
},
|
||
"rule_summary": {
|
||
"conditions_count": "{count, plural, one {# condition} other {# conditions}}",
|
||
"actions_count": "{count, plural, one {# action} other {# actions}}"
|
||
},
|
||
"origin_external": "External",
|
||
"managed_by_tooltip": "Managed by {source}. Edit it in that app, or use the raw Sieve editor."
|
||
},
|
||
"templates": {
|
||
"title": "Email Templates",
|
||
"description": "Create reusable email templates with placeholder variables",
|
||
"add": "New Template",
|
||
"edit": "Edit Template",
|
||
"name": "Template Name",
|
||
"name_placeholder": "e.g., Follow-up email",
|
||
"category": "Category",
|
||
"category_placeholder": "e.g., Work, Personal",
|
||
"subject": "Subject",
|
||
"subject_placeholder": "Email subject line",
|
||
"body": "Body",
|
||
"body_placeholder": "Email body content...",
|
||
"recipients_placeholder": "email@example.com",
|
||
"identity": "Send As",
|
||
"default_identity": "Default identity",
|
||
"favorite": "Favorite",
|
||
"cancel": "Cancel",
|
||
"create": "Create",
|
||
"update": "Update",
|
||
"confirm_delete": "Delete",
|
||
"no_templates": "No templates yet",
|
||
"manage": "Manage Templates",
|
||
"count": "{count, plural, one {# template} other {# templates}}",
|
||
"export_import": "Export & Import",
|
||
"export_import_description": "Back up your templates or transfer them to another device",
|
||
"export": "Export",
|
||
"import": "Import",
|
||
"validation": {
|
||
"empty": "Template name is required",
|
||
"too_long": "Template name must be 200 characters or less"
|
||
}
|
||
},
|
||
"files": {
|
||
"display": {
|
||
"title": "Display",
|
||
"description": "Configure how files and folders are displayed"
|
||
},
|
||
"folder_layout": {
|
||
"label": "Folder Navigation",
|
||
"description": "Choose how folders are displayed: inline with files or in a sidebar tree",
|
||
"inline": "Inline",
|
||
"sidebar": "Sidebar"
|
||
},
|
||
"default_view": {
|
||
"label": "Default View",
|
||
"description": "Choose between grid and list layout",
|
||
"list": "List",
|
||
"grid": "Grid"
|
||
},
|
||
"default_sort": {
|
||
"label": "Default Sort",
|
||
"description": "Choose the default sorting for files",
|
||
"name": "Name",
|
||
"size": "Size",
|
||
"modified": "Modified"
|
||
},
|
||
"sort_direction": {
|
||
"label": "Sort Direction",
|
||
"description": "Choose ascending or descending order",
|
||
"ascending": "Ascending",
|
||
"descending": "Descending"
|
||
},
|
||
"icons": {
|
||
"title": "Icons",
|
||
"description": "Configure file icon appearance"
|
||
},
|
||
"show_icons": {
|
||
"label": "Show File Icons",
|
||
"description": "Display icons next to files and folders"
|
||
},
|
||
"colored_icons": {
|
||
"label": "Colored Icons",
|
||
"description": "Use colorful icons instead of monochrome"
|
||
},
|
||
"show_thumbnails": {
|
||
"label": "Show Thumbnails",
|
||
"description": "Display image previews instead of icons for image files"
|
||
},
|
||
"behavior": {
|
||
"title": "Behavior",
|
||
"description": "Configure file browser behavior"
|
||
},
|
||
"show_hidden": {
|
||
"label": "Show Hidden Files",
|
||
"description": "Display files and folders that start with a dot"
|
||
},
|
||
"preview": {
|
||
"label": "Preview"
|
||
}
|
||
}
|
||
},
|
||
"errors": {
|
||
"page_error_title": "Something went wrong",
|
||
"page_error_description": "We encountered an unexpected error. Please try again or return to the home page.",
|
||
"sidebar_error": "Unable to load mailboxes",
|
||
"email_list_error": "Unable to load emails",
|
||
"viewer_error_title": "Unable to display email",
|
||
"viewer_error_description": "There was a problem rendering this email. It may contain unsupported content.",
|
||
"composer_error": "Unable to load composer",
|
||
"settings_error_title": "Settings unavailable",
|
||
"settings_error_description": "Unable to load settings. Your preferences may not be saved.",
|
||
"try_again": "Try again",
|
||
"reload": "Reload",
|
||
"reload_emails": "Reload emails",
|
||
"reload_settings": "Reload settings",
|
||
"retry": "Retry",
|
||
"go_home": "Go to inbox"
|
||
},
|
||
"context_menu": {
|
||
"reply": "Reply",
|
||
"reply_all": "Reply All",
|
||
"forward": "Forward",
|
||
"mark_read": "Mark as Read",
|
||
"mark_unread": "Mark as Unread",
|
||
"star": "Star",
|
||
"unstar": "Unstar",
|
||
"move_to": "Move to...",
|
||
"archive": "Archive",
|
||
"delete": "Delete",
|
||
"mark_as_spam": "Report spam",
|
||
"not_spam": "Not spam",
|
||
"color_tag": "Tag",
|
||
"remove_color": "Remove tag",
|
||
"items_selected": "{count} emails selected",
|
||
"edit_draft": "Edit Draft",
|
||
"cancel_scheduled_send": "Cancel send",
|
||
"reschedule_send": "Reschedule",
|
||
"cancel_and_edit": "Cancel and edit",
|
||
"cancel_and_compose_again": "Cancel and compose again"
|
||
},
|
||
"mailbox_context_menu": {
|
||
"mark_folder_read": "Mark folder as read",
|
||
"mark_folder_tree_read": "Mark folder & subfolders as read",
|
||
"mark_all_folders_read": "Mark all folders as read",
|
||
"new_subfolder": "New subfolder...",
|
||
"new_folder": "New folder...",
|
||
"rename": "Rename...",
|
||
"import_email": "Import .eml or .zip...",
|
||
"empty_folder": "Empty folder",
|
||
"empty_folder_generic": "Empty folder",
|
||
"delete_folder": "Delete folder",
|
||
"refresh": "Refresh",
|
||
"mark_all_confirm_title": "Mark all folders as read",
|
||
"mark_all_confirm_message": "Mark every unread message in your personal account as read?",
|
||
"delete_confirm_title": "Delete folder",
|
||
"delete_confirm_message": "Permanently delete the folder \"{name}\"? This action cannot be undone.",
|
||
"prompt_new_subfolder": "Enter a name for the new subfolder.",
|
||
"prompt_new_folder": "Enter a name for the new folder.",
|
||
"prompt_rename": "Enter a new name for this folder.",
|
||
"placeholder_folder_name": "Folder name",
|
||
"create": "Create",
|
||
"rename_confirm": "Rename",
|
||
"toast_marked_read": "Folder marked as read",
|
||
"toast_marked_read_count": "Marked {count, plural, one {1 message} other {# messages}} as read",
|
||
"toast_already_read": "No unread messages",
|
||
"toast_marked_all_read": "All folders marked as read",
|
||
"toast_emptied": "Folder emptied",
|
||
"toast_folder_created": "Folder created",
|
||
"toast_folder_renamed": "Folder renamed",
|
||
"toast_folder_deleted": "Folder deleted",
|
||
"toast_error_mark_read": "Failed to mark as read",
|
||
"toast_error_empty": "Failed to empty folder",
|
||
"toast_error_create": "Failed to create folder",
|
||
"toast_error_rename": "Failed to rename folder",
|
||
"toast_error_delete": "Failed to delete folder",
|
||
"toast_error_delete_has_children": "Folder has subfolders. Remove them first.",
|
||
"toast_error_delete_has_email": "Folder is not empty. Empty it first."
|
||
},
|
||
"shortcuts": {
|
||
"title": "Keyboard Shortcuts",
|
||
"tip": "Press ? anytime to show this help",
|
||
"sections": {
|
||
"navigation": "Navigation",
|
||
"actions": "Email Actions",
|
||
"global": "Global",
|
||
"threads": "Threads",
|
||
"composer": "Composer"
|
||
},
|
||
"navigation": {
|
||
"next_email": "Next email",
|
||
"previous_email": "Previous email",
|
||
"open_email": "Open email",
|
||
"close_email": "Close / Deselect"
|
||
},
|
||
"actions": {
|
||
"reply": "Reply",
|
||
"reply_all": "Reply all",
|
||
"forward": "Forward",
|
||
"star": "Toggle star",
|
||
"archive": "Archive",
|
||
"delete": "Delete",
|
||
"mark_unread": "Mark as unread",
|
||
"mark_read": "Mark as read",
|
||
"toggle_spam": "Report spam / Not spam"
|
||
},
|
||
"global": {
|
||
"compose": "Compose new email",
|
||
"search": "Focus search",
|
||
"help": "Show shortcuts",
|
||
"refresh": "Refresh emails",
|
||
"select_all": "Select all"
|
||
},
|
||
"threads": {
|
||
"expand_collapse": "Expand/collapse thread"
|
||
},
|
||
"composer": {
|
||
"send": "Send email",
|
||
"schedule_send": "Schedule send",
|
||
"template_picker": "Open template picker"
|
||
}
|
||
},
|
||
"threads": {
|
||
"messages_one": "{count} message",
|
||
"messages_other": "{count} messages",
|
||
"messages_tooltip": "{count, plural, one {# message in this conversation} other {# messages in this conversation}}",
|
||
"expand": "Expand conversation",
|
||
"collapse": "Collapse conversation",
|
||
"loading": "Loading conversation...",
|
||
"mark_read": "Mark conversation as read",
|
||
"mark_unread": "Mark conversation as unread",
|
||
"archive": "Archive conversation",
|
||
"delete": "Delete conversation",
|
||
"star": "Star conversation",
|
||
"unstar": "Unstar conversation",
|
||
"toggle_thread": "Toggle thread"
|
||
},
|
||
"identities": {
|
||
"modal_title": "Manage Sending Identities",
|
||
"create_new": "Create New Identity",
|
||
"edit_identity": "Edit Identity",
|
||
"delete_confirm": "Delete this identity? This cannot be undone.",
|
||
"cannot_delete": "This identity cannot be deleted",
|
||
"primary_identity": "Primary",
|
||
"set_as_primary": "Set as primary",
|
||
"no_identities": "No identities found",
|
||
"display": {
|
||
"reply_to": "Reply-To:",
|
||
"bcc": "BCC:",
|
||
"signature": "Signature:",
|
||
"preview": "Preview:"
|
||
},
|
||
"validation_errors": {
|
||
"invalid_emails": "Invalid emails: {emails}",
|
||
"unknown_error": "Unknown error"
|
||
},
|
||
"form": {
|
||
"name_label": "Display Name",
|
||
"name_placeholder": "e.g., Work Email, Personal",
|
||
"name_required": "Name is required",
|
||
"email_label": "Email Address",
|
||
"email_placeholder": "your.email@example.com",
|
||
"email_required": "Email is required",
|
||
"email_invalid": "Please enter a valid email address",
|
||
"email_immutable": "Email address cannot be changed after creation",
|
||
"reply_to_label": "Reply-To (optional)",
|
||
"reply_to_placeholder": "different@email.com",
|
||
"bcc_label": "Auto BCC (optional)",
|
||
"bcc_placeholder": "archive@email.com",
|
||
"text_signature_label": "Text Signature",
|
||
"html_signature_label": "HTML Signature",
|
||
"signature_byte_counter": "{bytes} / {max} bytes",
|
||
"signature_byte_limit_reached": "Server limit reached",
|
||
"save": "Save Identity",
|
||
"cancel": "Cancel",
|
||
"creating": "Creating...",
|
||
"updating": "Updating..."
|
||
},
|
||
"sub_address": {
|
||
"button_tooltip": "Use sub-address",
|
||
"popover_title": "Add Sub-Address Tag",
|
||
"tag_input_placeholder": "Enter tag (e.g., shopping)",
|
||
"preview_label": "Preview:",
|
||
"recent_tags": "Recent Tags",
|
||
"suggested_tags": "Suggested",
|
||
"use_address": "Use This Address",
|
||
"invalid_tag": "Tag must be alphanumeric and dashes only",
|
||
"tag_too_long": "Tag must be 30 characters or less",
|
||
"help_text": "Emails sent to user{delimiter}tag@domain.com will arrive in your inbox",
|
||
"validation": {
|
||
"empty": "Tag cannot be empty",
|
||
"too_long": "Tag must be {max} characters or less",
|
||
"invalid_chars": "Tag must contain only letters, numbers, and dashes"
|
||
}
|
||
},
|
||
"badge": {
|
||
"sent_via": "via",
|
||
"sub_address_tag": "Sent using sub-address: {tag}",
|
||
"identity_name": "Sent using identity: {name}",
|
||
"identity_short": "via {name}",
|
||
"subaddress_tag": "+{tag}"
|
||
},
|
||
"delete_button": "Delete",
|
||
"delete_confirm_title": "Delete Identity"
|
||
},
|
||
"templates": {
|
||
"picker_title": "Choose a Template",
|
||
"search_placeholder": "Search templates...",
|
||
"section_favorites": "Favorites",
|
||
"section_recent": "Recent",
|
||
"section_uncategorized": "Other",
|
||
"no_templates": "No templates yet",
|
||
"no_results": "No templates found",
|
||
"fill_placeholders": "Fill Placeholder Values",
|
||
"enter_value": "Enter a value...",
|
||
"preview": "Preview",
|
||
"insert_with_values": "Insert with Values",
|
||
"insert_raw": "Insert Raw",
|
||
"copy_suffix": "(copy)",
|
||
"placeholder": "Variable",
|
||
"placeholders": {
|
||
"recipient_name": "Recipient name",
|
||
"company": "Company name",
|
||
"date": "Current date",
|
||
"day_of_week": "Day of the week",
|
||
"sender_name": "Your name"
|
||
}
|
||
},
|
||
"contacts": {
|
||
"title": "Contacts",
|
||
"search_placeholder": "Search contacts...",
|
||
"create_new": "New Contact",
|
||
"no_category": "No Category",
|
||
"rename_category": "Rename category",
|
||
"category_name_label": "Category name",
|
||
"category_renamed": "Category renamed",
|
||
"category_rename_failed": "Failed to rename category",
|
||
"category_added": "Contact added to {name}",
|
||
"category_added_plural": "{count} contacts added to {name}",
|
||
"empty_state": "No contacts yet",
|
||
"empty_state_title": "No contacts yet",
|
||
"empty_state_subtitle": "Create your first contact or import from a vCard file",
|
||
"empty_search": "No contacts match your search",
|
||
"empty_search_hint": "Try a different search term",
|
||
"empty_filtered": "No contacts match your filters",
|
||
"empty_filtered_hint": "Try adjusting or clearing filters",
|
||
"clear_search": "Clear search",
|
||
"import_vcard": "Import vCard",
|
||
"delete_confirm_title": "Delete contact",
|
||
"delete_confirm": "Are you sure you want to delete this contact?",
|
||
"local_mode": "Contacts are stored locally (server does not support JMAP Contacts)",
|
||
"back_to_contacts": "Back to contacts",
|
||
"back_to_email": "Back to email",
|
||
"open_categories": "Open categories",
|
||
"tabs": {
|
||
"all": "All",
|
||
"groups": "Groups"
|
||
},
|
||
"shared": {
|
||
"title": "Shared"
|
||
},
|
||
"address_books": {
|
||
"title": "My Address Books",
|
||
"shared_prefix": "Shared: {name}",
|
||
"moved": "Contact moved to {name}",
|
||
"moved_plural": "{count} contacts moved to {name}",
|
||
"move_failed": "Failed to move contact",
|
||
"address_book": "Address Book",
|
||
"rename": "Rename address book",
|
||
"name_label": "Address book name",
|
||
"renamed": "Address book renamed",
|
||
"rename_failed": "Failed to rename address book",
|
||
"default": "Default",
|
||
"manage": "Manage address books",
|
||
"share": "Share address book",
|
||
"new_contact_in_book": "New contact in this address book",
|
||
"delete": "Delete address book",
|
||
"confirm_delete": "Delete \"{name}\"? All contacts in this address book will be removed.",
|
||
"deleted": "Address book deleted",
|
||
"delete_failed": "Failed to delete address book"
|
||
},
|
||
"detail": {
|
||
"emails": "Email Addresses",
|
||
"phones": "Phone Numbers",
|
||
"organizations": "Organizations",
|
||
"addresses": "Addresses",
|
||
"notes": "Notes",
|
||
"titles": "Titles & Roles",
|
||
"online_services": "Online Services",
|
||
"anniversaries": "Anniversaries",
|
||
"personal_info": "Personal Info",
|
||
"languages": "Languages",
|
||
"categories": "Categories",
|
||
"related_contacts": "Related Contacts",
|
||
"crypto_keys": "Crypto Keys",
|
||
"cert_issuer": "Issuer",
|
||
"cert_expires": "Expires",
|
||
"cert_expired": "Expired",
|
||
"cert_fingerprint": "Fingerprint",
|
||
"cert_algorithm": "Algorithm",
|
||
"import_to_smime": "Import to S/MIME",
|
||
"cert_already_imported": "Already imported to S/MIME",
|
||
"cert_imported": "Certificate imported to S/MIME store",
|
||
"cert_import_failed": "Failed to import certificate",
|
||
"no_contact_selected": "Select a contact to view details",
|
||
"compose_email": "Compose email",
|
||
"copy_email": "Copy email",
|
||
"copy_phone": "Copy phone number",
|
||
"copy_url": "Copy URL",
|
||
"copied": "Copied to clipboard",
|
||
"copy_failed": "Failed to copy to clipboard",
|
||
"created": "Created",
|
||
"updated": "Last updated",
|
||
"timezone": "Timezone",
|
||
"anniversary_birth": "Birthday",
|
||
"anniversary_death": "Passed away",
|
||
"anniversary_wedding": "Anniversary",
|
||
"anniversary_other": "Other",
|
||
"personal_expertise": "Expertise",
|
||
"personal_hobby": "Hobby",
|
||
"personal_interest": "Interest",
|
||
"personal_other": "Other",
|
||
"gender": "Gender",
|
||
"gender_masculine": "Male",
|
||
"gender_feminine": "Female",
|
||
"gender_other": "Other",
|
||
"gender_none": "Not applicable",
|
||
"gender_unknown": "Unknown",
|
||
"calendar": "Calendar",
|
||
"calendar_uri": "Calendar URL",
|
||
"scheduling_uri": "Scheduling URL",
|
||
"freebusy_uri": "Free/Busy URL",
|
||
"section_contact": "Contact details",
|
||
"section_work": "Work",
|
||
"section_personal": "Personal",
|
||
"email_default_label": "Email",
|
||
"phone_default_label": "Phone",
|
||
"address_default_label": "Address",
|
||
"online_service_default_label": "Online",
|
||
"organization_label": "Organization",
|
||
"title_label": "Title",
|
||
"role_label": "Role",
|
||
"language_label": "Language",
|
||
"related_default_label": "Related",
|
||
"more_actions": "More actions",
|
||
"age_years": "{count, plural, one {1 year old} other {# years old}}",
|
||
"years_since": "{count, plural, one {1 year} other {# years}}"
|
||
},
|
||
"activity": {
|
||
"recent_emails": "Recent Emails",
|
||
"upcoming_events": "Upcoming Events",
|
||
"no_emails": "No recent emails",
|
||
"no_events": "No upcoming events",
|
||
"no_subject": "(No subject)",
|
||
"no_title": "(No title)",
|
||
"load_failed": "Failed to load",
|
||
"unknown_sender": "Unknown sender",
|
||
"all_day": "All day"
|
||
},
|
||
"form": {
|
||
"create_title": "New Contact",
|
||
"edit_title": "Edit Contact",
|
||
"section_address_book": "Directory",
|
||
"select_address_book": "Select a directory...",
|
||
"section_identity": "Name & Identity",
|
||
"section_work": "Work & Organization",
|
||
"prefix": "Prefix",
|
||
"prefix_placeholder": "Dr., Mr., Mrs.",
|
||
"given_name": "First name",
|
||
"middle_name": "Middle name",
|
||
"surname": "Last name",
|
||
"suffix": "Suffix",
|
||
"suffix_placeholder": "Jr., Sr., III",
|
||
"nickname": "Nickname",
|
||
"nickname_placeholder": "Nickname",
|
||
"email": "Email",
|
||
"email_placeholder": "email@example.com",
|
||
"phone": "Phone",
|
||
"phone_placeholder": "+1 234 567 890",
|
||
"phone_type": "Type",
|
||
"phone_voice": "Voice",
|
||
"phone_cell": "Mobile",
|
||
"phone_fax": "Fax",
|
||
"phone_pager": "Pager",
|
||
"phone_video": "Video",
|
||
"phone_text": "Text",
|
||
"organization": "Organization",
|
||
"organization_placeholder": "Company name",
|
||
"department": "Department",
|
||
"department_placeholder": "Department",
|
||
"job_title": "Job title",
|
||
"job_title_placeholder": "e.g., Software Engineer",
|
||
"role": "Role",
|
||
"role_placeholder": "e.g., Team Lead",
|
||
"addresses": "Addresses",
|
||
"add_address": "Add address",
|
||
"street": "Street",
|
||
"city": "City",
|
||
"region": "State / Region",
|
||
"postcode": "Postal code",
|
||
"country": "Country",
|
||
"online_services": "Online Services",
|
||
"add_online_service": "Add online service",
|
||
"url_placeholder": "https://...",
|
||
"service_placeholder": "Service",
|
||
"anniversaries": "Anniversaries",
|
||
"add_anniversary": "Add date",
|
||
"anniversary_birth": "Birthday",
|
||
"anniversary_wedding": "Anniversary",
|
||
"anniversary_death": "Memorial",
|
||
"anniversary_other": "Other",
|
||
"personal_info": "Personal Info",
|
||
"add_personal_info": "Add entry",
|
||
"personal_info_placeholder": "e.g., Photography",
|
||
"personal_expertise": "Expertise",
|
||
"personal_hobby": "Hobby",
|
||
"personal_interest": "Interest",
|
||
"personal_other": "Other",
|
||
"level": "Level",
|
||
"level_high": "High",
|
||
"level_medium": "Medium",
|
||
"level_low": "Low",
|
||
"categories": "Categories",
|
||
"categories_placeholder": "e.g., Family, Friends, Colleagues",
|
||
"categories_hint": "Type to search or add categories",
|
||
"category_add": "Add",
|
||
"note": "Notes",
|
||
"note_placeholder": "Add a note...",
|
||
"gender": "Gender",
|
||
"gender_sex": "Sex",
|
||
"gender_male": "Male",
|
||
"gender_female": "Female",
|
||
"gender_other": "Other",
|
||
"gender_none": "Not applicable",
|
||
"gender_unknown": "Unknown",
|
||
"gender_identity": "Gender identity",
|
||
"gender_identity_placeholder": "Gender identity...",
|
||
"calendar": "Calendar",
|
||
"calendar_uri": "Calendar URL",
|
||
"scheduling_uri": "Scheduling URL",
|
||
"freebusy_uri": "Free/Busy URL",
|
||
"context_work": "Work",
|
||
"context_private": "Private",
|
||
"add_email": "Add email",
|
||
"add_phone": "Add phone",
|
||
"save": "Save",
|
||
"cancel": "Cancel",
|
||
"creating": "Creating...",
|
||
"updating": "Updating...",
|
||
"name_required": "At least a first name or last name is required",
|
||
"email_invalid": "Please enter a valid email address",
|
||
"email_error_inline": "Invalid email format",
|
||
"save_failed": "Failed to save contact",
|
||
"delete": "Delete",
|
||
"upload_photo": "Upload photo",
|
||
"remove_photo": "Remove photo",
|
||
"photo_hint": "JPG or PNG, up to 10 MB. Will be resized.",
|
||
"photo_too_large": "Image is too large (max 10 MB)",
|
||
"photo_invalid": "Invalid image file",
|
||
"change_photo": "Change"
|
||
},
|
||
"groups": {
|
||
"create": "New Group",
|
||
"edit": "Edit Group",
|
||
"empty": "No groups yet",
|
||
"delete_confirm_title": "Delete group",
|
||
"delete_confirm": "Are you sure you want to delete this group?",
|
||
"name_label": "Group Name",
|
||
"name_placeholder": "e.g., Team, Family",
|
||
"name_required": "Group name is required",
|
||
"save_failed": "Failed to save group",
|
||
"members_label": "Members",
|
||
"search_members": "Search contacts to add...",
|
||
"no_members": "No members in this group",
|
||
"member_count": "{count, plural, =0 {No members} one {1 member} other {# members}}",
|
||
"send_email": "Send email to group",
|
||
"send_email_to": "To",
|
||
"send_email_cc": "Cc",
|
||
"send_email_bcc": "Bcc",
|
||
"no_member_emails": "This group has no members with an email address."
|
||
},
|
||
"import": {
|
||
"title": "Import Contacts",
|
||
"drop_hint": "Click to select a vCard file",
|
||
"file_types": ".vcf or .vcard files",
|
||
"no_contacts": "No contacts found in file",
|
||
"parse_error": "Failed to parse vCard file",
|
||
"found": "{count, plural, one {1 contact found} other {# contacts found}}",
|
||
"duplicate": "Duplicate",
|
||
"select_all": "Select all",
|
||
"deselect_all": "Deselect all",
|
||
"selected": "{count, plural, one {1 selected} other {# selected}}",
|
||
"import_button": "Import",
|
||
"importing": "Importing...",
|
||
"success": "{count, plural, one {1 contact imported} other {# contacts imported}}",
|
||
"failed": "Import failed",
|
||
"close": "Close",
|
||
"file_too_large": "File is too large (max 5 MB)"
|
||
},
|
||
"export": {
|
||
"title": "Export Contacts",
|
||
"success": "{count, plural, one {1 contact exported} other {# contacts exported}}"
|
||
},
|
||
"bulk": {
|
||
"selected": "{count, plural, one {1 selected} other {# selected}}",
|
||
"select_all": "Select all",
|
||
"delete": "Delete",
|
||
"delete_confirm_title": "Delete contacts",
|
||
"delete_confirm": "Delete {count, plural, one {1 contact} other {# contacts}}?",
|
||
"deleted": "{count, plural, one {1 contact deleted} other {# contacts deleted}}",
|
||
"add_to_group": "Add to group",
|
||
"choose_group": "Choose a group",
|
||
"adding_contacts": "Adding {count, plural, one {1 contact} other {# contacts}}",
|
||
"added_to_group": "Contacts added to group",
|
||
"export": "Export",
|
||
"clear": "Clear selection"
|
||
},
|
||
"toast": {
|
||
"created": "Contact created",
|
||
"updated": "Contact updated",
|
||
"deleted": "Contact deleted",
|
||
"error_create": "Failed to create contact",
|
||
"error_update": "Failed to update contact",
|
||
"error_delete": "Failed to delete contact"
|
||
},
|
||
"context_menu": {
|
||
"open": "Open",
|
||
"edit": "Edit",
|
||
"send_email": "Send email",
|
||
"add_to_group": "Add to group",
|
||
"export_vcard": "Export as vCard",
|
||
"delete": "Delete",
|
||
"call": "Call",
|
||
"duplicate": "Duplicate",
|
||
"print": "Print"
|
||
},
|
||
"filters": {
|
||
"toggle": "Filters",
|
||
"select": "Select",
|
||
"clear": "Clear",
|
||
"close": "Close",
|
||
"title": "Advanced filters",
|
||
"organization": "Company",
|
||
"organization_placeholder": "e.g. Acme Corp",
|
||
"job_title": "Job title",
|
||
"job_title_placeholder": "e.g. Designer",
|
||
"location": "Location",
|
||
"location_placeholder": "City or country",
|
||
"email_domain": "Email domain",
|
||
"email_domain_placeholder": "example.com",
|
||
"birthday_month": "Birthday in",
|
||
"any_month": "Any month",
|
||
"has_email": "Has email",
|
||
"has_phone": "Has phone",
|
||
"has_photo": "Has photo"
|
||
}
|
||
},
|
||
"calendar": {
|
||
"title": "Calendar",
|
||
"back_to_email": "Back to email",
|
||
"back_to_month": "Back to month",
|
||
"my_calendars": "Calendars",
|
||
"birthday_calendar": "Birthdays",
|
||
"mini_calendar_change": "Click to change month",
|
||
"views": {
|
||
"month": "Month",
|
||
"week": "Week",
|
||
"day": "Day",
|
||
"agenda": "Agenda",
|
||
"today": "Today",
|
||
"month_hint": "Month (m)",
|
||
"week_hint": "Week (w)",
|
||
"day_hint": "Day (d)",
|
||
"agenda_hint": "Agenda (a)",
|
||
"tasks": "Tasks",
|
||
"tasks_hint": "Tasks (k)"
|
||
},
|
||
"events": {
|
||
"create": "Create event",
|
||
"edit": "Edit event",
|
||
"delete": "Delete event",
|
||
"details": "Event details",
|
||
"no_events": "No events",
|
||
"all_day": "All day",
|
||
"more": "+{count} more",
|
||
"no_title": "(No title)",
|
||
"resize": "Resize event",
|
||
"duplicate": "Duplicate",
|
||
"today_header": "Today",
|
||
"tomorrow_header": "Tomorrow",
|
||
"export_ics": "Export as .ics",
|
||
"copy_title": "Copy title",
|
||
"copy_link": "Copy meeting link",
|
||
"new_event": "New event",
|
||
"new_all_day_event": "New all-day event",
|
||
"new_task": "New task",
|
||
"go_to_today": "Go to today"
|
||
},
|
||
"detail": {
|
||
"add_note": "Add a note...",
|
||
"save_note": "Save",
|
||
"note_saved": "Note added",
|
||
"open_link": "Open link",
|
||
"meeting_link": "Meeting link",
|
||
"tentative": "Tentative",
|
||
"cancelled": "Cancelled",
|
||
"delete_confirm": "Delete this event?"
|
||
},
|
||
"form": {
|
||
"title": "Title",
|
||
"description": "Description",
|
||
"location": "Location",
|
||
"meeting_link": "Meeting link",
|
||
"start_date": "Start date",
|
||
"end_date": "End date",
|
||
"start_time": "Start time",
|
||
"end_time": "End time",
|
||
"all_day_event": "All-day event",
|
||
"calendar_select": "Calendar",
|
||
"save": "Save",
|
||
"cancel": "Cancel",
|
||
"delete_confirm": "Are you sure you want to delete this event?",
|
||
"color": "Color"
|
||
},
|
||
"participants": {
|
||
"title": "Participants",
|
||
"add": "Add participant",
|
||
"organizer": "Organizer",
|
||
"attendee": "Attendee",
|
||
"accepted": "Accepted",
|
||
"declined": "Declined",
|
||
"tentative": "Tentative",
|
||
"needs_action": "Needs action",
|
||
"remove": "Remove",
|
||
"edit": "Edit",
|
||
"email_placeholder": "Add email address or search contacts",
|
||
"send_invitations": "Send invitations to participants",
|
||
"status_summary": "{accepted} accepted, {pending} pending",
|
||
"invited_by": "Invitation from {name}",
|
||
"respond_below": "Respond using the buttons below",
|
||
"rsvp_label": "Your response",
|
||
"cancel_notification": "Participants will be notified of the cancellation",
|
||
"you_organizer": "You are the organizer",
|
||
"you_attendee": "You are an attendee",
|
||
"no_participants": "No participants",
|
||
"count": "{count, plural, one {# participant} other {# participants}}"
|
||
},
|
||
"recurrence": {
|
||
"title": "Recurrence",
|
||
"none": "Does not repeat",
|
||
"daily": "Daily",
|
||
"weekly": "Weekly",
|
||
"monthly": "Monthly",
|
||
"yearly": "Yearly",
|
||
"every_n_days": "Every {count} days",
|
||
"every_n_weeks": "Every {count} weeks",
|
||
"every_n_months": "Every {count} months",
|
||
"until": "Until",
|
||
"occurrences": "{count} occurrences",
|
||
"custom": "Custom…",
|
||
"edit_custom": "Edit custom recurrence",
|
||
"every_n_years": "Every {count} years",
|
||
"on_days": "on {days}",
|
||
"on_day_n": "on day {day}",
|
||
"on_the_nth": "on the {nth} {day}",
|
||
"in_month": "in {month}",
|
||
"nth_1": "first",
|
||
"nth_2": "second",
|
||
"nth_3": "third",
|
||
"nth_4": "fourth",
|
||
"nth_last": "last",
|
||
"editor_freq_day": "Day",
|
||
"editor_freq_week": "Week",
|
||
"editor_freq_month": "Month",
|
||
"editor_freq_year": "Year",
|
||
"editor_repeats_on": "Repeats on",
|
||
"editor_every": "Every",
|
||
"editor_unit_days": "day(s)",
|
||
"editor_unit_weeks": "week(s)",
|
||
"editor_unit_months": "month(s)",
|
||
"editor_unit_years": "year(s)",
|
||
"editor_on_day": "on day",
|
||
"editor_on_the": "on the",
|
||
"editor_in": "in",
|
||
"editor_ends": "Ends",
|
||
"editor_never": "Never",
|
||
"editor_ends_on": "On",
|
||
"editor_ends_after": "After",
|
||
"editor_occurrences": "occurrences"
|
||
},
|
||
"recurrence_scope": {
|
||
"edit_title": "Edit recurring event",
|
||
"delete_title": "Delete recurring event",
|
||
"description": "This is a recurring event. Which events would you like to modify?",
|
||
"this_event": "This event only",
|
||
"this_and_future": "This and following events",
|
||
"all_events": "All events",
|
||
"cancel": "Cancel",
|
||
"save": "Save",
|
||
"delete": "Delete"
|
||
},
|
||
"alerts": {
|
||
"title": "Reminders",
|
||
"none": "No reminders",
|
||
"at_time": "At time of event",
|
||
"minutes_before": "{count, plural, one {# minute before} other {# minutes before}}",
|
||
"hours_before": "{count, plural, one {# hour before} other {# hours before}}",
|
||
"days_before": "{count, plural, one {# day before} other {# days before}}",
|
||
"weeks_before": "{count, plural, one {# week before} other {# weeks before}}",
|
||
"unit_minutes_before": "minutes before",
|
||
"unit_hours_before": "hours before",
|
||
"unit_days_before": "days before",
|
||
"unit_weeks_before": "weeks before",
|
||
"add": "Add reminder",
|
||
"remove": "Remove reminder",
|
||
"amount": "Reminder amount",
|
||
"unit": "Reminder unit"
|
||
},
|
||
"settings": {
|
||
"title": "Calendar settings",
|
||
"default_view": "Default view",
|
||
"week_starts_on": "Week starts on",
|
||
"time_format": "Time format",
|
||
"default_calendar": "Default calendar",
|
||
"default_reminder": "Default reminder",
|
||
"time_format_12h": "12-hour",
|
||
"time_format_24h": "24-hour",
|
||
"notifications_enabled": "Event notifications",
|
||
"notifications_enabled_desc": "Show alerts for upcoming calendar events",
|
||
"notification_sound": "Notification sound",
|
||
"notification_sound_desc": "Play a sound for calendar alerts",
|
||
"invitation_parsing": "Parse email invitations",
|
||
"invitation_parsing_desc": "Detect calendar invitations in email attachments and show calendar actions",
|
||
"show_time_in_month_view": "Show time in month view",
|
||
"show_time_in_month_view_desc": "Display event times in the month calendar view",
|
||
"show_week_numbers": "Show week numbers",
|
||
"show_week_numbers_desc": "Display week numbers in the mini-calendar",
|
||
"enable_tasks": "Enable tasks",
|
||
"enable_tasks_desc": "Show a tasks view in the calendar for managing to-dos",
|
||
"show_tasks_on_calendar": "Show tasks on calendar",
|
||
"show_tasks_on_calendar_desc": "Display task chips on the day and week calendar views",
|
||
"hover_preview": "Event hover preview",
|
||
"hover_preview_desc": "Show a detail popover when hovering over calendar events",
|
||
"hover_preview_instant": "Instant",
|
||
"hover_preview_delay_500ms": "0.5-second delay",
|
||
"hover_preview_delay_1s": "1-second delay",
|
||
"hover_preview_delay_2s": "2-second delay",
|
||
"hover_preview_off": "Disabled",
|
||
"show_birthday_calendar": "Contact birthday calendar",
|
||
"show_birthday_calendar_desc": "Show a virtual calendar with birthdays from your contacts"
|
||
},
|
||
"days": {
|
||
"monday": "Monday",
|
||
"tuesday": "Tuesday",
|
||
"wednesday": "Wednesday",
|
||
"thursday": "Thursday",
|
||
"friday": "Friday",
|
||
"saturday": "Saturday",
|
||
"sunday": "Sunday",
|
||
"mon": "Mon",
|
||
"tue": "Tue",
|
||
"wed": "Wed",
|
||
"thu": "Thu",
|
||
"fri": "Fri",
|
||
"sat": "Sat",
|
||
"sun": "Sun"
|
||
},
|
||
"months": {
|
||
"jan": "Jan",
|
||
"feb": "Feb",
|
||
"mar": "Mar",
|
||
"apr": "Apr",
|
||
"may": "May",
|
||
"jun": "Jun",
|
||
"jul": "Jul",
|
||
"aug": "Aug",
|
||
"sep": "Sep",
|
||
"oct": "Oct",
|
||
"nov": "Nov",
|
||
"dec": "Dec"
|
||
},
|
||
"notifications": {
|
||
"event_created": "Event created",
|
||
"event_updated": "Event updated",
|
||
"event_deleted": "Event deleted",
|
||
"calendar_created": "Calendar created",
|
||
"calendar_deleted": "Calendar deleted",
|
||
"event_move_error": "Failed to move event",
|
||
"event_resize_error": "Failed to resize event",
|
||
"alert_title": "Upcoming event",
|
||
"alert_now": "Starting now",
|
||
"alert_in_minutes": "In {count} min",
|
||
"invitation_sent": "Invitations sent",
|
||
"rsvp_updated": "Response updated",
|
||
"rsvp_error": "Failed to update response",
|
||
"event_duplicated": "Event duplicated",
|
||
"event_error": "Failed to save event",
|
||
"task_due": "Task due",
|
||
"event_exported": "Event exported",
|
||
"title_copied": "Title copied",
|
||
"link_copied": "Link copied"
|
||
},
|
||
"status": {
|
||
"loading_calendars": "Loading calendars...",
|
||
"loading_events": "Loading events..."
|
||
},
|
||
"quick_create": {
|
||
"placeholder": "New event title",
|
||
"aria_label": "Quick create event"
|
||
},
|
||
"nav_prev": "Previous",
|
||
"nav_next": "Next",
|
||
"nav_open_menu": "Open menu",
|
||
"import": {
|
||
"title": "Import Calendar",
|
||
"tab_file": "File",
|
||
"tab_url": "URL",
|
||
"select_file": "Select .ics file",
|
||
"drop_file": "or drop file here",
|
||
"supported_formats": "Supports iCalendar (.ics) files",
|
||
"url_description": "Enter the URL of an external iCalendar (.ics) feed to import events.",
|
||
"url_placeholder": "https://example.com/calendar.ics",
|
||
"url_hint": "Supports CalDAV and iCalendar (.ics) URLs",
|
||
"fetch": "Fetch",
|
||
"invalid_url": "Please enter a valid URL",
|
||
"url_fetch_failed": "Failed to fetch calendar from URL",
|
||
"parsing": "Parsing calendar file...",
|
||
"parsed_events": "{count} events found",
|
||
"no_events": "No events found in file",
|
||
"select_all": "Select all",
|
||
"deselect_all": "Deselect all",
|
||
"target_calendar": "Import to calendar",
|
||
"import_button": "Import selected",
|
||
"importing": "Importing events...",
|
||
"success": "{count} events imported successfully",
|
||
"error": "Failed to import calendar",
|
||
"file_too_large": "File exceeds 10MB limit",
|
||
"invalid_format": "Invalid calendar file format"
|
||
},
|
||
"webcal_action": {
|
||
"title": "Open calendar link",
|
||
"description": "How would you like to use \"{name}\"?",
|
||
"import_title": "Import once",
|
||
"import_description": "Fetch the events now and copy them into one of your calendars.",
|
||
"subscribe_title": "Subscribe",
|
||
"subscribe_description": "Keep this calendar synced automatically as a separate calendar.",
|
||
"cancel": "Cancel"
|
||
},
|
||
"management": {
|
||
"title": "Calendar Management",
|
||
"description": "Create, rename, and customize your calendars. Right-click a calendar in the sidebar to quickly change its color.",
|
||
"name": "Name",
|
||
"name_placeholder": "Calendar name",
|
||
"color": "Color",
|
||
"change_color": "Change color",
|
||
"random_color": "New random color",
|
||
"add_calendar": "Add calendar",
|
||
"edit": "Edit",
|
||
"delete": "Delete",
|
||
"save": "Save",
|
||
"create": "Create",
|
||
"cancel": "Cancel",
|
||
"default": "Default",
|
||
"confirm_delete": "Delete \"{name}\"? All events in this calendar will be removed.",
|
||
"confirm_clear": "Clear all events from \"{name}\"? This cannot be undone.",
|
||
"set_default": "Set as default",
|
||
"default_updated": "Default calendar updated",
|
||
"error_default": "Failed to set default calendar",
|
||
"clear_events": "Clear events",
|
||
"events_cleared": "{count} events cleared",
|
||
"error_clear": "Failed to clear calendar events",
|
||
"calendar_created": "Calendar created",
|
||
"calendar_updated": "Calendar updated",
|
||
"calendar_deleted": "Calendar deleted",
|
||
"color_updated": "Calendar color updated",
|
||
"error_create": "Failed to create calendar",
|
||
"error_update": "Failed to update calendar",
|
||
"error_delete": "Failed to delete calendar",
|
||
"caldav_url": "CalDAV URL",
|
||
"copy_url": "Copy CalDAV URL",
|
||
"url_copied": "CalDAV URL copied to clipboard",
|
||
"share": "Share calendar",
|
||
"new_event_in_calendar": "New event in this calendar"
|
||
},
|
||
"subscription": {
|
||
"title": "iCal Subscription",
|
||
"section_title": "iCal Subscriptions",
|
||
"description": "Subscribe to an external iCalendar feed. Events will be synced automatically into their own calendar. Supports https:// and webcal:// URLs.",
|
||
"url_label": "Calendar URL",
|
||
"url_placeholder": "https://example.com/calendar.ics or webcal://...",
|
||
"name_label": "Calendar name",
|
||
"name_placeholder": "e.g. Public Holidays",
|
||
"color_label": "Color",
|
||
"refresh_interval": "Refresh interval",
|
||
"interval_15": "Every 15 minutes",
|
||
"interval_30": "Every 30 minutes",
|
||
"interval_60": "Every hour",
|
||
"interval_360": "Every 6 hours",
|
||
"interval_1440": "Every day",
|
||
"subscribe": "Subscribe",
|
||
"subscribing": "Subscribing...",
|
||
"save": "Save changes",
|
||
"saving": "Saving...",
|
||
"edit": "Edit",
|
||
"edit_title": "Edit Subscription",
|
||
"updated": "Updated \"{name}\"",
|
||
"update_error": "Failed to update subscription",
|
||
"invalid_url": "Please enter a valid URL",
|
||
"success": "Subscribed to \"{name}\"",
|
||
"error": "Failed to add subscription",
|
||
"refresh": "Refresh now",
|
||
"refresh_success": "Subscription refreshed",
|
||
"refresh_error": "Failed to refresh subscription",
|
||
"unsubscribe": "Unsubscribe",
|
||
"confirm_delete": "Unsubscribe from \"{name}\"? The calendar and all its events will be removed.",
|
||
"deleted": "Subscription removed",
|
||
"delete_error": "Failed to remove subscription",
|
||
"last_refreshed": "Last updated: {time}"
|
||
},
|
||
"tasks": {
|
||
"label": "Tasks",
|
||
"no_tasks": "No tasks",
|
||
"no_title": "(No title)",
|
||
"mark_complete": "Mark as complete",
|
||
"mark_incomplete": "Mark as incomplete",
|
||
"filter_all": "All",
|
||
"filter_pending": "Pending",
|
||
"filter_completed": "Completed",
|
||
"filter_overdue": "Overdue",
|
||
"show_completed": "Show completed",
|
||
"create": "New Task",
|
||
"edit": "Edit Task",
|
||
"title_placeholder": "Task title",
|
||
"description_placeholder": "Add a description...",
|
||
"due_date": "Due date",
|
||
"include_time": "Include time",
|
||
"priority": "Priority",
|
||
"priority_none": "None",
|
||
"priority_high": "High",
|
||
"priority_medium": "Medium",
|
||
"priority_low": "Low",
|
||
"progress": "Status",
|
||
"progress_needs_action": "Needs action",
|
||
"progress_in_process": "In process",
|
||
"progress_completed": "Completed",
|
||
"progress_cancelled": "Cancelled",
|
||
"calendar": "Calendar",
|
||
"alert": "Reminder",
|
||
"alert_none": "None",
|
||
"alert_at_time": "At time of due date",
|
||
"alert_5min": "5 minutes before",
|
||
"alert_15min": "15 minutes before",
|
||
"alert_30min": "30 minutes before",
|
||
"alert_1hr": "1 hour before",
|
||
"alert_1day": "1 day before",
|
||
"delete": "Delete",
|
||
"cancel": "Cancel",
|
||
"save": "Save",
|
||
"quick_add_placeholder": "Add a task...",
|
||
"due_today": "Today",
|
||
"due_tomorrow": "Tomorrow",
|
||
"overdue": "Overdue"
|
||
}
|
||
},
|
||
"sharing": {
|
||
"title": "Share \"{name}\"",
|
||
"description": "Grant access to other users or groups on this server. Changes take effect immediately.",
|
||
"no_shares": "Not shared with anyone yet.",
|
||
"add_person": "Add person or group",
|
||
"search_placeholder": "Search by name or email…",
|
||
"loading_principals": "Loading users…",
|
||
"no_principals": "No other users or groups found.",
|
||
"no_match": "No matches.",
|
||
"remove": "Remove access",
|
||
"group": "Group",
|
||
"share_added": "Access granted",
|
||
"share_updated": "Access updated",
|
||
"share_removed": "Access removed",
|
||
"share_failed": "Failed to update sharing",
|
||
"preset": {
|
||
"freeBusy": "Free/busy only",
|
||
"read": "Read only",
|
||
"readWrite": "Read & write",
|
||
"manager": "Manager",
|
||
"custom": "Custom"
|
||
}
|
||
},
|
||
"advanced_search": {
|
||
"title": "Advanced Search",
|
||
"from": "From",
|
||
"from_placeholder": "Sender email or name",
|
||
"to": "To",
|
||
"to_placeholder": "Recipient email or name",
|
||
"subject": "Subject",
|
||
"subject_placeholder": "Subject contains...",
|
||
"body": "Body",
|
||
"body_placeholder": "Body contains...",
|
||
"folder": "Folder",
|
||
"all_folders": "All folders",
|
||
"has_attachment": "Attachments",
|
||
"date_after": "After",
|
||
"date_before": "Before",
|
||
"starred": "Starred",
|
||
"unread": "Unread",
|
||
"read": "Read",
|
||
"yes": "Yes",
|
||
"no": "No",
|
||
"clear": "Clear",
|
||
"clear_all": "Clear all",
|
||
"filters_active": "{count} filter",
|
||
"filters_active_plural": "{count} filters",
|
||
"toggle_filters": "More",
|
||
"search_hint": "Use advanced filters for precise search",
|
||
"advanced_filters_tooltip": "Advanced search filters",
|
||
"results_found": "{count, plural, =0 {No results found} one {# result found} other {# results found}}",
|
||
"results_found_more": "{count}+ results found"
|
||
},
|
||
"welcome": {
|
||
"title": "Welcome to your mailbox",
|
||
"tip_compose": "Press c to compose a new email",
|
||
"tip_shortcuts": "Press ? to see all keyboard shortcuts",
|
||
"tip_sidebar": "Find Calendar, Contacts and Settings in the sidebar menu",
|
||
"tip_settings": "Customize your experience in Settings",
|
||
"got_it": "Got it",
|
||
"settings": "Settings",
|
||
"dismiss": "Dismiss",
|
||
"start_tour": "Start Tour"
|
||
},
|
||
"demo_welcome": {
|
||
"title": "Welcome to Bulwark Mail",
|
||
"description": "Explore a fully-featured webmail client - right in your browser. All data stays on your device, so feel free to test everything.",
|
||
"feature_email": "Read & compose email",
|
||
"feature_organize": "Tags, stars & folders",
|
||
"feature_shortcuts": "Keyboard shortcuts",
|
||
"feature_privacy": "100% private demo",
|
||
"hint": "Click any email on the left to get started, or take the tour below."
|
||
},
|
||
"files": {
|
||
"open_in_new_tab": "Open in new tab",
|
||
"title": "Files",
|
||
"search_placeholder": "Search files...",
|
||
"empty_state_title": "No files yet",
|
||
"empty_state_description": "Upload files or create folders to get started",
|
||
"upload": "Upload",
|
||
"upload_files": "Upload Files",
|
||
"new_folder": "New Folder",
|
||
"new_folder_name": "Folder name",
|
||
"rename": "Rename",
|
||
"rename_title": "Rename",
|
||
"new_name": "New name",
|
||
"delete": "Delete",
|
||
"delete_confirm_title": "Delete resource",
|
||
"delete_confirm_message": "Are you sure you want to delete \"{name}\"? This cannot be undone.",
|
||
"download": "Download",
|
||
"name": "Name",
|
||
"size": "Size",
|
||
"modified": "Modified",
|
||
"type": "Type",
|
||
"folder": "Folder",
|
||
"file": "File",
|
||
"parent_directory": "Parent directory",
|
||
"breadcrumb_root": "Home",
|
||
"other_accounts": "Other accounts",
|
||
"no_accounts": "No connected accounts.",
|
||
"drop_files_here": "Drop files or folders here to upload",
|
||
"uploading": "Uploading...",
|
||
"upload_success": "{count, plural, one {1 file uploaded} other {# files uploaded}}",
|
||
"upload_error": "Failed to upload file",
|
||
"create_folder_success": "Folder created",
|
||
"create_folder_error": "Failed to create folder",
|
||
"delete_success": "Deleted successfully",
|
||
"delete_error": "Failed to delete",
|
||
"rename_success": "Renamed successfully",
|
||
"rename_error": "Failed to rename",
|
||
"download_error": "Failed to download",
|
||
"not_available": "File storage is not available on this server",
|
||
"cancel": "Cancel",
|
||
"create": "Create",
|
||
"save": "Save",
|
||
"no_results": "No files match your search",
|
||
"batch_delete_confirm_message": "Are you sure you want to delete {count, plural, one {1 item} other {# items}}? This cannot be undone.",
|
||
"batch_delete_success": "{count, plural, one {1 item deleted} other {# items deleted}}",
|
||
"grid_view": "Grid view",
|
||
"list_view": "List view",
|
||
"details": "Details",
|
||
"path": "Path",
|
||
"preview": "Preview",
|
||
"preview_error": "Failed to load preview",
|
||
"cut": "Cut",
|
||
"copy": "Copy",
|
||
"paste": "Paste",
|
||
"move_success": "{count, plural, one {1 item moved} other {# items moved}}",
|
||
"move_error": "Failed to move",
|
||
"paste_success": "Pasted successfully",
|
||
"paste_error": "Failed to paste",
|
||
"new_text_file": "New Text File",
|
||
"file_name": "File name",
|
||
"retry": "Retry",
|
||
"refresh": "Refresh",
|
||
"toggle_favorite": "Toggle favorite",
|
||
"duplicate": "Duplicate",
|
||
"duplicate_success": "Duplicated successfully",
|
||
"duplicate_error": "Failed to duplicate",
|
||
"share": "Share",
|
||
"shared": "Shared",
|
||
"shared_with_me": "Shared with me",
|
||
"shared_by": "Shared by {name}",
|
||
"create_file_success": "File created",
|
||
"create_file_error": "Failed to create file",
|
||
"favorites": "Favorites",
|
||
"recent": "Recent",
|
||
"properties": "Properties",
|
||
"open_folder": "Open folder",
|
||
"upload_folder": "Upload Folder",
|
||
"file_too_large": "\"{name}\" exceeds the maximum file size ({max})",
|
||
"undo": "Undo",
|
||
"undo_success": "Action undone",
|
||
"undo_error": "Failed to undo",
|
||
"toolbar": "File actions",
|
||
"open_folder_tree": "Open folder tree",
|
||
"file_list": "Files and folders",
|
||
"context_menu": "Actions",
|
||
"settings_title": "File Settings",
|
||
"settings_display": "Display",
|
||
"settings_default_view": "Default View",
|
||
"settings_default_view_desc": "Choose between grid and list layout",
|
||
"settings_default_sort": "Default Sort",
|
||
"settings_default_sort_desc": "Choose the default sorting for files",
|
||
"settings_sort_direction": "Sort Direction",
|
||
"settings_sort_direction_desc": "Choose ascending or descending order",
|
||
"settings_ascending": "Ascending",
|
||
"settings_descending": "Descending",
|
||
"settings_icons": "Icons",
|
||
"settings_show_icons": "Show File Icons",
|
||
"settings_show_icons_desc": "Display icons next to files and folders",
|
||
"settings_colored_icons": "Colored Icons",
|
||
"settings_colored_icons_desc": "Use colorful icons instead of monochrome",
|
||
"settings_show_thumbnails": "Show Thumbnails",
|
||
"settings_show_thumbnails_desc": "Display image previews instead of icons for image files",
|
||
"settings_behavior": "Behavior",
|
||
"settings_show_hidden": "Show Hidden Files",
|
||
"settings_show_hidden_desc": "Display files and folders that start with a dot",
|
||
"settings_folder_layout": "Folder Navigation",
|
||
"settings_folder_layout_desc": "Choose how folders are displayed: inline with files or in a sidebar tree",
|
||
"settings_folder_layout_inline": "Inline",
|
||
"settings_folder_layout_sidebar": "Sidebar",
|
||
"disabled_title": "Files feature is disabled by your administrator",
|
||
"disabled_description": "Large file uploads via WebDAV can cause Stalwart/RocksDB instability, including out-of-memory crashes and unrecoverable disk usage. Deleted files may not be immediately purged from blob storage. This feature is not recommended for production environments.",
|
||
"stability_warning": "Large file uploads can cause server instability. Deleted files may not be immediately purged from storage. Use with caution.",
|
||
"migration_title": "Updating your files…",
|
||
"migration_description": "Organising folders and files into their proper structure. This happens only once."
|
||
},
|
||
"smime": {
|
||
"your_certificates": "Your Certificates",
|
||
"your_certificates_desc": "Import and manage your S/MIME certificates for signing and encrypting emails",
|
||
"recipient_certificates": "Recipient Certificates",
|
||
"recipient_certificates_desc": "Public certificates for encrypting emails to recipients",
|
||
"identity_bindings": "Identity Key Bindings",
|
||
"identity_bindings_desc": "Bind S/MIME certificates to your email identities",
|
||
"defaults_title": "Defaults",
|
||
"defaults_desc": "Configure default signing and encryption behavior",
|
||
"import_pkcs12": "Import PKCS#12 (.p12/.pfx)",
|
||
"import_public_cert": "Import Certificate",
|
||
"no_certificates": "No certificates imported yet",
|
||
"no_recipient_certs": "No recipient certificates",
|
||
"expires": "Expires",
|
||
"expired": "Expired",
|
||
"bound_to": "Bound to",
|
||
"no_key_bound": "None",
|
||
"lock": "Lock key",
|
||
"unlock": "Unlock key",
|
||
"details": "View details",
|
||
"delete": "Delete",
|
||
"encrypt_by_default": "Encrypt by default",
|
||
"encrypt_by_default_desc": "Automatically encrypt emails when all recipients have certificates",
|
||
"remember_unlocked": "Remember unlocked keys",
|
||
"remember_unlocked_desc": "Keep keys unlocked for the duration of this browser session",
|
||
"sign_default_for": "Sign by default for",
|
||
"enter_p12_passphrase": "Enter PKCS#12 Passphrase",
|
||
"p12_passphrase_desc": "Enter the passphrase that protects this certificate file",
|
||
"enter_storage_passphrase": "Set Storage Passphrase",
|
||
"storage_passphrase_desc": "Choose a passphrase to protect this key at rest in your browser",
|
||
"next": "Next",
|
||
"import": "Import",
|
||
"unlock_key": "Unlock Key",
|
||
"unlock_key_desc": "Enter the storage passphrase to unlock this key for signing or decryption",
|
||
"passphrase_placeholder": "Enter passphrase",
|
||
"confirm_passphrase_placeholder": "Confirm passphrase",
|
||
"passphrase_mismatch": "Passphrases do not match",
|
||
"cancel": "Cancel",
|
||
"processing": "Processing…",
|
||
"close": "Close",
|
||
"certificate_details": "Certificate Details",
|
||
"cert_subject": "Subject",
|
||
"cert_issuer": "Issuer",
|
||
"cert_email": "Email",
|
||
"cert_serial": "Serial Number",
|
||
"cert_validity": "Validity",
|
||
"cert_fingerprint": "Fingerprint (SHA-256)",
|
||
"cert_algorithm": "Algorithm",
|
||
"cert_capabilities": "Capabilities",
|
||
"cert_source": "Source",
|
||
"cert_expired": "This certificate has expired",
|
||
"cert_not_yet_valid": "This certificate is not yet valid",
|
||
"cap_sign": "Signing",
|
||
"cap_encrypt": "Encryption",
|
||
"cap_none": "None",
|
||
"show_passphrase": "Show passphrase",
|
||
"hide_passphrase": "Hide passphrase",
|
||
"sign_toggle": "Sign",
|
||
"encrypt_toggle": "Encrypt",
|
||
"missing_recipient_certs": "Missing certificates for: {emails}",
|
||
"missing_sender_cert": "No certificate bound to this identity",
|
||
"status_encrypted_ok": "This message was encrypted",
|
||
"status_encrypted_no_key": "This message is encrypted but no matching key was found",
|
||
"status_encrypted_failed": "Failed to decrypt this message",
|
||
"status_signed_valid": "Signature verified",
|
||
"status_signed_invalid": "Signature verification failed",
|
||
"status_signed_expired_cert": "Signed with an expired certificate",
|
||
"status_signed_self_signed": "Signature valid, but certificate is self-signed (not trusted)",
|
||
"status_signed_mismatch": "Signature valid, but signer does not match sender",
|
||
"status_unsupported": "Unsupported S/MIME format",
|
||
"auto_import_signer_certs": "Auto-import signer certificates",
|
||
"auto_import_signer_certs_desc": "Automatically save certificates from verified signed emails for future encryption",
|
||
"export": "Export",
|
||
"enter_export_passphrase": "Set Export Passphrase",
|
||
"export_passphrase_desc": "Choose a passphrase to protect the exported PKCS#12 file",
|
||
"export_storage_desc": "Enter the storage passphrase to decrypt the key for export",
|
||
"incorrect_passphrase": "Incorrect passphrase"
|
||
},
|
||
"tour": {
|
||
"step_counter": "Step {current} of {total}",
|
||
"skip": "Skip tour",
|
||
"back": "Back",
|
||
"next": "Next",
|
||
"finish": "Finish",
|
||
"take_a_tour": "Take a tour of the interface",
|
||
"restart_title": "Introductory tour",
|
||
"restart_desc": "Replay the guided walkthrough of the interface",
|
||
"restart_button": "Restart tour",
|
||
"show_on_new_devices_title": "Show on new devices",
|
||
"show_on_new_devices_desc": "Replay the welcome banner and tour the first time you sign in on a new device, even if you've already completed them elsewhere",
|
||
"sidebar_title": "Your mailboxes",
|
||
"sidebar_desc": "This is your folder sidebar. Click any mailbox to view its emails. You can create folders, drag emails between them, and see unread counts at a glance.",
|
||
"compose_title": "Compose an email",
|
||
"compose_desc": "Click here to write a new email. You can add recipients, attachments, and use rich text formatting.",
|
||
"search_title": "Search your mail",
|
||
"search_desc": "Search by sender, subject, or content. Click the filter icon for advanced options like date range, attachments, and starred messages.",
|
||
"email_list_title": "Your email list",
|
||
"email_list_desc": "Emails appear here. Click one to read it on the right. Use the checkbox to select multiple, then bulk-move, delete, or tag them.",
|
||
"email_viewer_title": "Reading pane",
|
||
"email_viewer_desc": "The selected email opens here. Reply, forward, archive, or delete with the toolbar buttons. You can also star emails or add color tags.",
|
||
"keywords_title": "Color tags",
|
||
"keywords_desc": "Organize your email with color-coded tags. Drag an email onto a tag to label it, or right-click an email to assign tags.",
|
||
"calendar_title": "Calendar",
|
||
"calendar_desc": "Switch to the calendar to manage your events. Create events, set reminders, and view day, week, or month layouts.",
|
||
"contacts_title": "Contacts",
|
||
"contacts_desc": "Your address book lives here. Import contacts, create groups, and click any contact to see their full details.",
|
||
"settings_title": "Settings",
|
||
"settings_desc": "Customize everything: theme, density, signatures, filters, keyboard shortcuts, calendar defaults, and more.",
|
||
"shortcuts_title": "Keyboard shortcuts",
|
||
"shortcuts_desc": "Power users love this. Press ? anytime to see all available shortcuts. You can navigate, compose, and manage emails without touching a mouse.",
|
||
"compose_open_title": "The composer",
|
||
"compose_open_desc": "This is the email composer. Add recipients, write your message, attach files, and use rich text formatting. You can also save drafts and use templates.",
|
||
"calendar_view_title": "Your calendar",
|
||
"calendar_view_desc": "Here's your calendar with sample events. You can switch between day, week, month, and agenda views using the toolbar.",
|
||
"create_event_title": "Create an event",
|
||
"create_event_desc": "Click this button to create a new calendar event. You can set a title, date, time, and add participants.",
|
||
"event_modal_title": "Event details",
|
||
"event_modal_desc": "Here's the event form. Fill in the title, pick a date and time, add a location or participants. Hit save when you're done - or close it and move on.",
|
||
"contacts_list_title": "Your contacts",
|
||
"contacts_list_desc": "Here are your contacts. Click any contact to see their full details on the right. You can also create new contacts, import vCards, or organize contacts into groups.",
|
||
"settings_tabs_title": "Settings menu",
|
||
"settings_tabs_desc": "Here are all the settings categories. Customize your appearance, manage identities, set up email filters, configure your calendar, and much more.",
|
||
"files_title": "File storage",
|
||
"files_desc": "Your file browser lets you upload, organize, and share files - like a personal cloud drive built into your mail.",
|
||
"demo_banner_title": "Demo controls",
|
||
"demo_banner_desc": "You're in demo mode - everything stays in your browser. Hit 'Reset Demo' anytime to start fresh with clean sample data.",
|
||
"quota_title": "Storage usage",
|
||
"quota_desc": "Track your mailbox size here. The circle fills up as you use more space."
|
||
},
|
||
"unified_mailbox": {
|
||
"search_unavailable": "Search is not available in the unified view"
|
||
},
|
||
"quote_header": {
|
||
"reply_line": "On {date}, {from} wrote:",
|
||
"forwarded_separator": "---------- Forwarded message ----------",
|
||
"from_label": "From",
|
||
"date_label": "Date",
|
||
"subject_label": "Subject"
|
||
},
|
||
"pwa_install": {
|
||
"title": "Install {appName}",
|
||
"description": "Install our app for quick access and offline support.",
|
||
"not_now": "Not now",
|
||
"install": "Install",
|
||
"dont_remind": "Don't remind me again",
|
||
"dismiss_aria": "Dismiss install prompt"
|
||
}
|
||
}
|