Add client-side calendar event notification system that evaluates JMAP CalendarEventAlert triggers and displays toast notifications when alert times are reached. Includes configurable notification sound, acknowledged alert persistence, and proactive event fetching for background alerts. Also mounts ToastContainer globally to fix silent toast failures.
1182 lines
40 KiB
JSON
1182 lines
40 KiB
JSON
{
|
|
"login": {
|
|
"title": "Webmail",
|
|
"username_label": "Email",
|
|
"username_placeholder": "user@example.com",
|
|
"password_label": "Password",
|
|
"password_placeholder": "Enter your password",
|
|
"sign_in": "Sign in",
|
|
"signing_in": "Signing in...",
|
|
"loading": "Loading...",
|
|
"error": {
|
|
"invalid_credentials": "Invalid email or password",
|
|
"connection_failed": "Failed to connect to the server",
|
|
"generic": "An error occurred. Please try again.",
|
|
"totp_invalid": "Invalid authentication code. Please check your authenticator app."
|
|
},
|
|
"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_toggle": "I have two-factor authentication",
|
|
"totp_label": "Authentication code",
|
|
"totp_placeholder": "000000",
|
|
"totp_hide": "Hide two-factor authentication"
|
|
},
|
|
"sidebar": {
|
|
"close": "Close",
|
|
"compose": "Compose",
|
|
"search_placeholder": "Search mail...",
|
|
"storage": "Storage",
|
|
"sign_out": "Sign out",
|
|
"contacts": "Contacts",
|
|
"calendar": "Calendar",
|
|
"settings": "Settings",
|
|
"loading_mailboxes": "Loading mailboxes...",
|
|
"push_connected": "Real-time updates active",
|
|
"push_disconnected": "Real-time updates inactive",
|
|
"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"
|
|
},
|
|
"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"
|
|
},
|
|
"email_list": {
|
|
"no_emails": "No emails",
|
|
"no_emails_description": "Start by composing a new email",
|
|
"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": {
|
|
"mark_read": "Mark as read",
|
|
"mark_unread": "Mark as unread",
|
|
"delete": "Delete",
|
|
"clear_selection": "Clear selection"
|
|
}
|
|
},
|
|
"email_viewer": {
|
|
"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",
|
|
"no_subject": "(No Subject)",
|
|
"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",
|
|
"print": "Print",
|
|
"view_source": "View source",
|
|
"email_source": "Email Source",
|
|
"copy_source": "Copy to clipboard",
|
|
"source_copied": "Source copied to clipboard",
|
|
"attachments": "Attachments",
|
|
"important": "Important",
|
|
"download": "Download",
|
|
"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",
|
|
"message_details": "Message Details",
|
|
"more_reply_options": "More reply options",
|
|
"set_color": "Set color",
|
|
"more_actions": "More actions",
|
|
"remove_color": "Remove color",
|
|
"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"
|
|
},
|
|
"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",
|
|
"archive": "Archive",
|
|
"delete": "Delete"
|
|
},
|
|
"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"
|
|
}
|
|
},
|
|
"email_composer": {
|
|
"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",
|
|
"discard": "Discard",
|
|
"discard_draft_confirm": "You have unsaved changes. Do you want to discard this draft?",
|
|
"saving": "Saving...",
|
|
"draft_saved": "Draft saved",
|
|
"save_failed": "Failed to save",
|
|
"to_placeholder": "Recipient email addresses (comma separated)",
|
|
"cc_placeholder": "Cc recipients (comma separated)",
|
|
"bcc_placeholder": "Bcc recipients (comma separated)",
|
|
"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"
|
|
},
|
|
"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"
|
|
},
|
|
"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",
|
|
"identity_created": "Identity created successfully",
|
|
"identity_updated": "Identity updated successfully",
|
|
"identity_deleted": "Identity deleted",
|
|
"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"
|
|
},
|
|
"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",
|
|
"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",
|
|
"switching": "Changing language..."
|
|
},
|
|
"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?",
|
|
"tabs": {
|
|
"appearance": "Appearance",
|
|
"language": "Language & Region",
|
|
"email": "Email Behavior",
|
|
"composer": "Composer",
|
|
"privacy": "Privacy & Security",
|
|
"account": "Account",
|
|
"identities": "Identities",
|
|
"vacation": "Vacation Responder",
|
|
"advanced": "Advanced",
|
|
"calendar": "Calendar",
|
|
"filters": "Filters"
|
|
},
|
|
"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": "List Density",
|
|
"description": "Control spacing in email lists",
|
|
"compact": "Compact",
|
|
"regular": "Regular",
|
|
"comfortable": "Comfortable"
|
|
},
|
|
"animations": {
|
|
"label": "Enable Animations",
|
|
"description": "Show smooth transitions and effects"
|
|
}
|
|
},
|
|
"language_region": {
|
|
"title": "Language & Region",
|
|
"description": "Configure language and regional preferences",
|
|
"language": {
|
|
"label": "Language",
|
|
"description": "Choose your preferred language",
|
|
"english": "English",
|
|
"french": "Français"
|
|
},
|
|
"date_format": {
|
|
"label": "Date Format",
|
|
"description": "How dates should be displayed",
|
|
"regional": "Regional",
|
|
"iso": "ISO 8601",
|
|
"custom": "Custom"
|
|
},
|
|
"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": {
|
|
"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",
|
|
"permanent": "Delete Permanently"
|
|
},
|
|
"show_preview": {
|
|
"label": "Show Preview Text",
|
|
"description": "Display email preview in the list"
|
|
},
|
|
"emails_per_page": {
|
|
"label": "Emails Per Page",
|
|
"description": "Number of emails to load at once",
|
|
"25": "25 emails",
|
|
"50": "50 emails",
|
|
"100": "100 emails"
|
|
},
|
|
"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"
|
|
}
|
|
},
|
|
"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",
|
|
"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}"
|
|
}
|
|
},
|
|
"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"
|
|
}
|
|
},
|
|
"advanced": {
|
|
"title": "Advanced",
|
|
"description": "Advanced options and developer settings",
|
|
"debug_mode": {
|
|
"label": "Debug Mode",
|
|
"description": "Enable detailed logging for troubleshooting"
|
|
},
|
|
"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"
|
|
}
|
|
},
|
|
"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",
|
|
"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",
|
|
"condition_fields": {
|
|
"from": "From",
|
|
"to": "To",
|
|
"cc": "Cc",
|
|
"subject": "Subject",
|
|
"header": "Custom Header",
|
|
"size": "Size",
|
|
"body": "Body"
|
|
},
|
|
"comparators": {
|
|
"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 label",
|
|
"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": "Label name",
|
|
"label_placeholder": "e.g., important",
|
|
"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",
|
|
"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",
|
|
"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}}"
|
|
}
|
|
}
|
|
},
|
|
"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": "Color Tag",
|
|
"remove_color": "Remove Color",
|
|
"items_selected": "{count} emails selected"
|
|
},
|
|
"shortcuts": {
|
|
"title": "Keyboard Shortcuts",
|
|
"tip": "Press ? anytime to show this help",
|
|
"sections": {
|
|
"navigation": "Navigation",
|
|
"actions": "Email Actions",
|
|
"global": "Global",
|
|
"threads": "Threads"
|
|
},
|
|
"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"
|
|
}
|
|
},
|
|
"threads": {
|
|
"messages_one": "{count} message",
|
|
"messages_other": "{count} messages",
|
|
"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"
|
|
},
|
|
"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",
|
|
"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",
|
|
"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+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}"
|
|
}
|
|
},
|
|
"contacts": {
|
|
"title": "Contacts",
|
|
"search_placeholder": "Search contacts...",
|
|
"create_new": "New Contact",
|
|
"empty_state": "No contacts yet",
|
|
"empty_search": "No contacts match your search",
|
|
"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_mail": "Back to mail",
|
|
"tabs": {
|
|
"all": "All",
|
|
"groups": "Groups"
|
|
},
|
|
"detail": {
|
|
"emails": "Email Addresses",
|
|
"phones": "Phone Numbers",
|
|
"organizations": "Organizations",
|
|
"addresses": "Addresses",
|
|
"notes": "Notes",
|
|
"no_contact_selected": "Select a contact to view details",
|
|
"created": "Created",
|
|
"updated": "Last updated"
|
|
},
|
|
"form": {
|
|
"create_title": "New Contact",
|
|
"edit_title": "Edit Contact",
|
|
"given_name": "First name",
|
|
"surname": "Last name",
|
|
"email": "Email",
|
|
"email_placeholder": "email@example.com",
|
|
"phone": "Phone",
|
|
"phone_placeholder": "+1 234 567 890",
|
|
"organization": "Organization",
|
|
"organization_placeholder": "Company name",
|
|
"note": "Notes",
|
|
"note_placeholder": "Add a note...",
|
|
"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",
|
|
"save_failed": "Failed to save contact"
|
|
},
|
|
"groups": {
|
|
"create": "New Group",
|
|
"edit": "Edit Group",
|
|
"empty": "No groups yet",
|
|
"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}}"
|
|
},
|
|
"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": "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"
|
|
}
|
|
},
|
|
"calendar": {
|
|
"title": "Calendar",
|
|
"back_to_email": "Back to email",
|
|
"my_calendars": "My calendars",
|
|
"views": {
|
|
"month": "Month",
|
|
"week": "Week",
|
|
"day": "Day",
|
|
"agenda": "Agenda",
|
|
"today": "Today"
|
|
},
|
|
"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)",
|
|
"today_header": "Today",
|
|
"tomorrow_header": "Tomorrow"
|
|
},
|
|
"form": {
|
|
"title": "Title",
|
|
"description": "Description",
|
|
"location": "Location",
|
|
"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"
|
|
},
|
|
"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"
|
|
},
|
|
"alerts": {
|
|
"title": "Reminder",
|
|
"none": "No reminder",
|
|
"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}}"
|
|
},
|
|
"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"
|
|
},
|
|
"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"
|
|
},
|
|
"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",
|
|
"alert_title": "Upcoming event",
|
|
"alert_now": "Starting now",
|
|
"alert_in_minutes": "In {count} min"
|
|
},
|
|
"status": {
|
|
"loading_calendars": "Loading calendars...",
|
|
"loading_events": "Loading events..."
|
|
},
|
|
"nav_prev": "Previous",
|
|
"nav_next": "Next",
|
|
"import": {
|
|
"title": "Import Calendar",
|
|
"select_file": "Select .ics file",
|
|
"drop_file": "or drop file here",
|
|
"supported_formats": "Supports iCalendar (.ics) files",
|
|
"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 5MB limit",
|
|
"invalid_format": "Invalid calendar file format"
|
|
}
|
|
},
|
|
"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",
|
|
"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": "Filters"
|
|
}
|
|
}
|