mirror of
https://github.com/rustmailer/bichon.git
synced 2026-08-03 07:48:34 +02:00
1596 lines
63 KiB
JSON
1596 lines
63 KiB
JSON
{
|
||
"common": {
|
||
"submit": "Submit",
|
||
"cancel": "Cancel",
|
||
"save": "Save",
|
||
"save_changes": "Save Changes",
|
||
"delete": "Delete",
|
||
"edit": "Edit",
|
||
"search": "Search",
|
||
"add": "Add",
|
||
"remove": "Remove",
|
||
"create": "Create",
|
||
"update": "Update",
|
||
"confirm": "Confirm",
|
||
"close": "Close",
|
||
"yes": "Yes",
|
||
"no": "No",
|
||
"ok": "OK",
|
||
"loading": "Loading...",
|
||
"empty": "Empty",
|
||
"noData": "No Data",
|
||
"table": {
|
||
"noResults": "No results."
|
||
},
|
||
"failed": "Failed",
|
||
"notFound": "Not Found",
|
||
"back": "Back",
|
||
"goBack": "Go Back",
|
||
"backToHome": "Back to Home",
|
||
"tryAgain": "Try Again",
|
||
"more": "More",
|
||
"actions": "Actions",
|
||
"filter": "Filter",
|
||
"reset": "Reset",
|
||
"clear": "Clear",
|
||
"error": "Error",
|
||
"apply": "Apply",
|
||
"select": "Select",
|
||
"selectAll": "Select All",
|
||
"deselectAll": "Deselect All",
|
||
"all": "All",
|
||
"none": "None",
|
||
"showLess": "Show Less",
|
||
"showMore": "Show More...",
|
||
"project_description": "Bichon is an open-source project.",
|
||
"view_on_github_button": "View on GitHub",
|
||
"op_failed": "Operation failed",
|
||
"na": "N/A",
|
||
"retry": "Retry",
|
||
"deleting": "Deleting..."
|
||
},
|
||
"navigation": {
|
||
"home": "Home",
|
||
"settings": "Settings",
|
||
"accounts": "Accounts",
|
||
"dashboard": "Dashboard",
|
||
"mailbox": "Mailbox",
|
||
"oauth2": "OAuth2",
|
||
"accessTokens": "Access Tokens",
|
||
"apiDocs": "API Documentation",
|
||
"general": "General",
|
||
"auth": "Auth",
|
||
"other": "Other",
|
||
"users": "System Users"
|
||
},
|
||
"auth": {
|
||
"welcome": "Welcome to Bichon",
|
||
"username": "Username",
|
||
"password": "Password",
|
||
"login": "Login",
|
||
"loginFailed": "Login Failed",
|
||
"invalidPassword": "Invalid password. Please try again.",
|
||
"somethingWentWrong": "Something went wrong",
|
||
"sessionExpired": "Session expired!",
|
||
"sessionExpiredDesc": "Your session has ended due to inactivity. Please log in again to continue.",
|
||
"logout": "Log out",
|
||
"areYouSureYouWantToLogOut": "Are you sure you want to log out?",
|
||
"youWillNeedToLogInAgain": "You will need to log in again to access your account."
|
||
},
|
||
"errors": {
|
||
"pageNotFound": "Oops! Page Not Found!",
|
||
"pageNotFoundDesc": "It seems like the page you're looking for does not exist or might have been removed.",
|
||
"somethingWentWrong": "Oops! Something went wrong :')",
|
||
"somethingWentWrongDesc": "We apologize for the inconvenience. Please try again later.",
|
||
"internalServerError": "Internal Server Error!",
|
||
"contentNotModified": "Content not modified!",
|
||
"networkError": "Network Error",
|
||
"networkErrorDesc": "Unable to connect to the server. Please check your internet connection and try again.",
|
||
"forbidden": "Forbidden",
|
||
"forbiddenTitle": "Access Forbidden",
|
||
"forbiddenDesc": "You don't have necessary permission to view this resource.",
|
||
"unauthorized": "Unauthorized",
|
||
"unauthorizedTitle": "Unauthorized Access",
|
||
"unauthorizedDesc": "Please log in with the appropriate credentials to access this resource.",
|
||
"maintenance": "Maintenance",
|
||
"maintenanceTitle": "Website is under maintenance!",
|
||
"maintenanceDesc": "The site is not available at the moment. We'll be back online shortly.",
|
||
"learnMore": "Learn more"
|
||
},
|
||
"dashboard": {
|
||
"title": "Dashboard",
|
||
"mailAccounts": "Mail Accounts",
|
||
"connected": "Connected",
|
||
"totalEmails": "Total Emails",
|
||
"syncedLocally": "Synced locally",
|
||
"totalEmailSize": "Total Email Size",
|
||
"logicalVolume": "Logical volume",
|
||
"localDataFiles": "Local Data Files",
|
||
"actualDiskUsage": "Actual disk usage",
|
||
"metadataSize": "Metadata Size",
|
||
"duckdbDatabase": "Based on DuckDB Storage",
|
||
"dayTrend": "30-Day Trend",
|
||
"attachments": "Attachments",
|
||
"topLists": "Top Lists",
|
||
"newEmails": "New Emails",
|
||
"messageDistribution": "Message distribution",
|
||
"attachmentRatio": "Attachment Ratio",
|
||
"attachmentRatioDesc": "{{percent}}% of emails have attachments",
|
||
"noEmailsSynced": "No emails synced yet",
|
||
"withAttachments": "With Attachments",
|
||
"noAttachments": "No Attachments",
|
||
"top10Senders": "Top 10 Senders",
|
||
"byMessageCount": "By message count",
|
||
"sender": "Sender",
|
||
"count": "Count",
|
||
"top10LargestEmails": "Top 10 Largest Emails",
|
||
"byMessageSize": "By message size",
|
||
"subject": "Subject",
|
||
"size": "Size",
|
||
"noSubject": "(No Subject)",
|
||
"top10Accounts": "Top 10 Accounts",
|
||
"emails": "Emails",
|
||
"account": "Account",
|
||
"noRecentActivity": "No recent activity",
|
||
"noSendersData": "No senders data",
|
||
"noLargeEmails": "No large emails",
|
||
"noAccountData": "No account data",
|
||
"systemVersion": "System Version"
|
||
},
|
||
"accounts": {
|
||
"beforeRelativeValue": "Sync emails before {{value}} {{unit}} ago",
|
||
"sinceRelativeValue": "Sync emails from the last",
|
||
"syncBatchSize": "Sync batch size",
|
||
"syncBatchSizeDescription": "Number of messages fetched per IMAP request",
|
||
"incrementalSyncDescription": "How often incremental email synchronization is performed (in minutes)",
|
||
"syncScopeDescription": "Choose which emails should be indexed and archived.",
|
||
"syncScope": "Sync Strategy",
|
||
"selectMode": "Select filter mode",
|
||
"syncAll": "Sync All Emails",
|
||
"sinceFixed": "Since Specific Date",
|
||
"sinceRelative": "Sync Recent Emails Only",
|
||
"beforeRelative": "Archive Old Emails Only",
|
||
"duration": "Duration",
|
||
"unit": "Unit",
|
||
"accessControl": "Access Control",
|
||
"owner": "Creator",
|
||
"access_control": {
|
||
"title": "Account Access Assignment",
|
||
"description": "Assign roles and authorized users to {{email}}",
|
||
"role_label": "Access Role",
|
||
"role_placeholder": "Select a role",
|
||
"role_loading": "Loading roles...",
|
||
"user_label": "Select Authorized Users",
|
||
"user_search_placeholder": "Search by username or email...",
|
||
"user_empty": "No users found",
|
||
"user_selected_count": "Selected: {{count}} user(s)",
|
||
"buttons": {
|
||
"cancel": "Cancel",
|
||
"save": "Save Assignment"
|
||
},
|
||
"validation": {
|
||
"user_required": "Please select at least one user",
|
||
"role_required": "Please select a role to assign"
|
||
},
|
||
"toast": {
|
||
"success_title": "Assignment Successful",
|
||
"success_desc": "Permissions have been successfully assigned to {{email}}",
|
||
"failed_title": "Assignment Failed"
|
||
}
|
||
},
|
||
"title": "Email Accounts",
|
||
"description": "Manage and configure your email accounts.",
|
||
"addImap": "Add IMAP",
|
||
"addNoSync": "Add NoSync",
|
||
"moreAccountTypes": "More account types",
|
||
"noAccountConfigurations": "No Account Configurations",
|
||
"noAccountConfigurationsDesc": "You haven't added any Account configurations yet. Add one to start using Account features.",
|
||
"addConfiguration": "Add Configuration",
|
||
"name": "Login Name",
|
||
"email": "Email",
|
||
"status": "Status",
|
||
"type": "Type",
|
||
"lastSync": "Last Sync",
|
||
"actions": "Actions",
|
||
"edit": "Edit",
|
||
"delete": "Delete",
|
||
"detail": "Detail",
|
||
"syncFolders": "Sync Folders",
|
||
"oauth2Tokens": "OAuth2 Tokens",
|
||
"id": "ID",
|
||
"enabled": "Enabled",
|
||
"auth": "Auth",
|
||
"incSync": "Inc Sync",
|
||
"state": "State",
|
||
"createdAt": "Created At",
|
||
"updatedAt": "Updated At",
|
||
"openMenu": "Open menu",
|
||
"emailAccountRegistration": "Email Account Registration",
|
||
"emailAccountRegistrationDesc": "Please provide your email address. In the next steps, you will configure the IMAP/SMTP details. Using this email address, we will attempt to automatically retrieve the SMTP/IMAP server addresses.",
|
||
"emailAddress": "Email Address",
|
||
"emailPlaceholder": "e.g john.doe@example.com",
|
||
"namePlaceholder": "e.g john.doe",
|
||
"optional": "Optional",
|
||
"nameDescription": "IMAP Connection Username. Leave this field blank if you use your full email address as the connection username.",
|
||
"emailCannotBeModified": "The email account address cannot be modified when editing.",
|
||
"addAccount": "Add Account",
|
||
"updateAccount": "Update Account",
|
||
"accountUpdated": "Account Updated",
|
||
"accountCreated": "Account Created",
|
||
"accountUpdatedDesc": "Your account has been successfully updated.",
|
||
"accountCreatedDesc": "Your account has been successfully created.",
|
||
"accountUpdateFailed": "Account Update Failed",
|
||
"accountCreationFailed": "Account Creation Failed",
|
||
"updateFailed": "Update failed, please try again later",
|
||
"creationFailed": "Creation failed, please try again later",
|
||
"selectSyncFolders": "Select Sync Folders",
|
||
"allMailFolderSelected": "Heads Up: \"All Mail\" Folder Selected",
|
||
"accountSyncFoldersUpdated": "Account Sync Folders Updated",
|
||
"accountSyncFoldersUpdateFailed": "Account Sync Folders Update Failed",
|
||
"serverConfiguration": "Server Configuration (IMAP)",
|
||
"syncFoldersTitle": "Sync Folders",
|
||
"allMailFolderSelectedDesc": "Selecting folders with the \"All Mail\" attribute will likely lead to duplicating messages already synced from folders like Inbox and Sent. This may consume significantly more storage space.",
|
||
"allMailSkipped": "Selected standard folders. 'All Mail' was skipped to avoid duplicates.",
|
||
"selectAtLeastOneFolder": "Please select at least one folder",
|
||
"chooseFoldersToSync": "Choose folders to sync for {{email}}, Newly added folders will begin downloading during the next sync cycle.",
|
||
"accountDetails": "Account Details",
|
||
"capabilities": "Capabilities",
|
||
"folderLimit": "Folder Limit",
|
||
"incrementalSyncInterval": "Incremental Sync Interval",
|
||
"everyMinutes": "every {{minutes}} minutes",
|
||
"foldersConfiguredForSync": "{{count}} folder(s) configured for sync",
|
||
"foldersSelected": "{{count}} folder(s) selected",
|
||
"imapHost": "IMAP Host",
|
||
"imapHostPlaceholder": "e.g imap.example.com",
|
||
"imapPort": "IMAP Port",
|
||
"imapPortPlaceholder": "e.g 993",
|
||
"imapEncryption": "IMAP Encryption",
|
||
"selectEncryptionMethod": "Select an encryption method",
|
||
"chooseEncryptionMethod": "Choose the encryption method for IMAP.",
|
||
"imapAuthMethod": "IMAP Auth Method",
|
||
"selectAuthMethod": "Select an authentication method",
|
||
"chooseAuthMethod": "Choose the authentication method for IMAP.",
|
||
"imapPassword": "IMAP Password",
|
||
"leaveEmptyToKeepPassword": "Leave empty to keep current password",
|
||
"enterPassword": "Enter your password",
|
||
"leaveEmptyToKeepExisting": "Leave empty to keep the existing password, or enter a new password to update it.",
|
||
"useProxy": "Use Proxy",
|
||
"selectProxy": "Select a proxy",
|
||
"incrementalSync": "Incremental Sync(minutes)",
|
||
"incrementalSyncPlaceholder": "e.g 300",
|
||
"enabledDescription": "Determines whether this account is active. If disabled, related syncs will not run.",
|
||
"dateSince": "Date Since",
|
||
"none": "None",
|
||
"fixed": "Fixed",
|
||
"relative": "Relative",
|
||
"selectDate": "Select a date",
|
||
"selectUnit": "Select a unit",
|
||
"days": "Days",
|
||
"months": "Months",
|
||
"years": "Years",
|
||
"enterValue": "Please enter a value",
|
||
"mustBeAtLeast1": "Must be at least 1",
|
||
"dateSelection": "Date Selection",
|
||
"since": "since",
|
||
"recent": "recent",
|
||
"notAvailable": "n/a",
|
||
"host": "host",
|
||
"port": "port",
|
||
"encryption": "encryption",
|
||
"authType": "auth_type",
|
||
"password": "password",
|
||
"useProxyField": "use proxy",
|
||
"clickSaveWhenDone": "Click save when you're done.",
|
||
"step": "Step {{index}}",
|
||
"goBack": "Go Back",
|
||
"autoConfiguring": "Auto-configuring...",
|
||
"continue": "Continue",
|
||
"saveChanges": "Save changes",
|
||
"submit": "Submit",
|
||
"field": "Field",
|
||
"value": "Value",
|
||
"refreshToken": "Refresh Token",
|
||
"accessTokenCopiedToClipboard": "Access token copied to clipboard",
|
||
"refreshTokenCopiedToClipboard": "Refresh token copied to clipboard",
|
||
"noOAuth2Tokens": "No OAuth2 Tokens",
|
||
"theAccountHasNotCompletedTheAuthorizationProcess": "The account has not completed the authorization process. Please ",
|
||
"clickHere": "click here",
|
||
"toAuthorizeTheAccount": " to authorize the account.",
|
||
"detailsOfTheOAuth2TokensForTheAccount": "Details of the OAuth2 tokens for the account.",
|
||
"updateTheEmailAccountHere": "Update the email account here. ",
|
||
"addNewEmailAccountHere": "Add new email account here. ",
|
||
"thisAccountIsUsedForIdentificationPurposesOnly": "This account is used for identification purposes only and does not require syncing with an email server. It helps with importing email data.",
|
||
"determinesWhetherThisAccountIsActiveNoSync": "Determines whether this account is active. If disabled, the account will not be able to import data.",
|
||
"folderSync": {
|
||
"noData": "No Data",
|
||
"noFolders": "No folders to sync",
|
||
"batches": "batches",
|
||
"autoSelectDescendants": "Auto select descendants",
|
||
"autoSelectParents": "Auto select parents",
|
||
"expandAll": "Expand all",
|
||
"collapseAll": "Collapse all",
|
||
"loadingMailboxFolders": "Loading mailbox folders…"
|
||
},
|
||
"viewDetails": "view details",
|
||
"runningState": {
|
||
"notStarted": "Not Started",
|
||
"inProgress": "In Progress",
|
||
"calculating": "Calculating...",
|
||
"initialSync": "Initial Sync",
|
||
"completed": "Completed",
|
||
"duration": "Duration",
|
||
"startTime": "Start Time:",
|
||
"endTime": "End Time:",
|
||
"syncProgress": "Sync Progress",
|
||
"incrementalSync": "Incremental Sync",
|
||
"syncInterval": "Sync Interval:",
|
||
"everyMinutes": "Every {{minutes}} minutes",
|
||
"errorLogs": "Error Logs",
|
||
"noErrorLogs": "No error logs available.",
|
||
"noActiveState": "No active state available",
|
||
"accountNotStarted": "Account synchronization may not have started yet",
|
||
"close": "Close"
|
||
},
|
||
"steps": {
|
||
"complete": "Complete",
|
||
"emailAddress": "Email Address",
|
||
"imap": "IMAP",
|
||
"syncPreferences": "Sync Preferences",
|
||
"summary": "Summary"
|
||
},
|
||
"imapProxy": "Use a SOCKS5 proxy for IMAP connections.",
|
||
"syncStartDateDescription": "Defines the sync start date — either specific or relative to now. Preceding emails are excluded, {{fixedPart}}.",
|
||
"syncAfterDate": "syncs data after a set date",
|
||
"syncRecentData": "shifts the sync date over time, syncing only recent data",
|
||
"folderLimitDescription": "Limit the number of emails to sync per folder (minimum 100). Leave empty for no limit.",
|
||
"folderLimitPlaceholder": "e.g. 1000",
|
||
"imap": "IMAP",
|
||
"minutes": "minutes",
|
||
"accountHasBeenSuccessfully": "Account has been successfully {{action}}",
|
||
"enableAccount": "Enable account",
|
||
"disableAccount": "Disable account",
|
||
"areYouSureYouWantTo": "Are you sure you want to {{action}} this account?",
|
||
"enable": "Enable",
|
||
"disable": "Disable",
|
||
"thisWillPreventTheAccountFromBeingUsed": "This account will no longer sync data from the IMAP server, but existing data will still be accessible.",
|
||
"disabled": "Disabled",
|
||
"useDangerous": "Trust Any TLS Certificate",
|
||
"useDangerousDescription": "Enable this option only if you are connecting to an IMAP server with a public or self-signed certificate that may not be recognized by your system. Using this setting bypasses standard certificate validation, which can expose you to man-in-the-middle attacks. Only enable if you understand the risks."
|
||
},
|
||
"mailbox": {
|
||
"deleteMailboxDialog": {
|
||
"title": "Delete Mailbox Folder",
|
||
"desc": "Are you sure you want to delete this mailbox folder? This action cannot be undone.",
|
||
"warningTitle": "Warning",
|
||
"warningDesc": "Deleting this folder will also permanently remove all archived emails and subfolders contained within it.",
|
||
"confirm": "Delete Permanently",
|
||
"successTitle": "Deleted successfully",
|
||
"successDesc": "The mailbox folder and its contents have been successfully removed.",
|
||
"errorTitle": "Delete failed"
|
||
},
|
||
"title": "Mailbox",
|
||
"folders": "Folders",
|
||
"messages": "Messages",
|
||
"noMessages": "No messages",
|
||
"selectFolder": "Select a folder to view messages",
|
||
"deleteDialog": {
|
||
"title": "Delete Email",
|
||
"desc": "Are you sure you want to delete {{countText}}? This action will delete the selected email(s) from local database. The email(s) will be permanently deleted and cannot be recovered.",
|
||
"descCountSingle": "this email",
|
||
"descCountMultiple": "these {{count}} emails",
|
||
"warningTitle": "Warning!",
|
||
"warningDesc": "Please be cautious before proceeding.",
|
||
"confirm": "Delete",
|
||
"successTitle": "Messages deleted successfully",
|
||
"successDesc": "The messages have been deleted.",
|
||
"errorTitle": "Failed to delete messages"
|
||
},
|
||
"thread": {
|
||
"title": "Thread ({{count}} {{messageLabel}})",
|
||
"message": "message",
|
||
"messages": "messages",
|
||
"noSubject": "(No subject)",
|
||
"invalidDate": "Invalid Date",
|
||
"empty": "No messages in this thread.",
|
||
"loadError": "Failed to load thread",
|
||
"loadingMore": "Loading more...",
|
||
"loadMore": "Load more"
|
||
},
|
||
"bulkActions": {
|
||
"ariaLabel": "Bulk actions for {{count}} selected {{emailLabel}}",
|
||
"email": "email",
|
||
"emails": "emails",
|
||
"selected": "selected",
|
||
"clearSelection": "Clear selection",
|
||
"clearSelectionWithKey": "Clear selection ({{key}})",
|
||
"delete": "Delete",
|
||
"deleteTooltip": "Delete selected emails"
|
||
}
|
||
},
|
||
"search": {
|
||
"size": "Size",
|
||
"any": "Any",
|
||
"tiny": "Tiny (<15 KB)",
|
||
"small": "Small (<2 MB)",
|
||
"medium": "Medium (2 - 10 MB)",
|
||
"large": "Large (10 - 20 MB)",
|
||
"huge": "Huge (≥20 MB)",
|
||
"sort": "Sort",
|
||
"sizeDescription": "The size refers to the total email size, including attachments.",
|
||
"title": "Search",
|
||
"searching": "Searching, please wait…",
|
||
"noEmailsFound": "No emails found",
|
||
"startSearching": "Start by entering a keyword, sender, or using advanced filters.",
|
||
"adjustSearch": "Try adjusting your search criteria or clearing filters.",
|
||
"tagFilter": "Tag Filter",
|
||
"from": "From",
|
||
"to": "To",
|
||
"subject": "Subject",
|
||
"date": "Date",
|
||
"editTag": "Edit Tag",
|
||
"keyword": "Keyword",
|
||
"sender": "Sender",
|
||
"recipient": "Recipient",
|
||
"hasAttachment": "Has Attachment",
|
||
"yes": "Yes",
|
||
"no": "No",
|
||
"dateRange": "Date Range",
|
||
"startDate": "Start Date",
|
||
"endDate": "End Date",
|
||
"advancedFilters": "Advanced Filters",
|
||
"searchArchivedEmails": "Search Archived Emails",
|
||
"fullTextMultiAccount": "Full-text · Multi-account · Advanced filters",
|
||
"account": "Account",
|
||
"mailbox": "Mailbox",
|
||
"selectAccount": "Select account",
|
||
"selectMailbox": "Select mailbox",
|
||
"noActiveEmailAccount": "No active email account.",
|
||
"addEmailAccount": "Add Email Account",
|
||
"noMailboxSelectAccount": "No mailbox. Please select an account first.",
|
||
"searchInSubjectBody": "Search in subject, body, attachments...",
|
||
"searchingButton": "Searching...",
|
||
"searchButton": "Search",
|
||
"advanced": "Advanced",
|
||
"clear": "Clear",
|
||
"since": "Since:",
|
||
"before": "Before:",
|
||
"selectDate": "Select a date",
|
||
"pleaseSelectAtLeastOne": "Please select at least one search condition",
|
||
"cc": "CC",
|
||
"bcc": "BCC",
|
||
"attachmentName": "Attachment Name",
|
||
"messageId": "Message ID",
|
||
"minSize": "Min Size",
|
||
"maxSize": "Max Size",
|
||
"senderRecipients": "Sender / Recipients",
|
||
"attachmentsSize": "Attachments & Size",
|
||
"minimumBytes": "Minimum",
|
||
"maximumBytes": "Maximum",
|
||
"originalMessageIdHeader": "Original email Message-ID header",
|
||
"addTags": {
|
||
"title": "Edit Tags",
|
||
"none": "No tags added",
|
||
"searchPlaceholder": "Search or create tag...",
|
||
"createHint": "Create new tag: {{tag}}",
|
||
"invalidTitle": "Invalid Tag",
|
||
"updatedTitle": "Tags Updated",
|
||
"updatedDesc": "Tags have been successfully updated",
|
||
"updateFailedTitle": "Update Failed",
|
||
"tryAgain": "Please try again later",
|
||
"selectedCount": "{{count}} tags selected",
|
||
"cancel": "Cancel",
|
||
"save": "Save",
|
||
"saving": "Saving..."
|
||
},
|
||
"updateTags": {
|
||
"overwriteWarning": "Warning: This will overwrite all existing tags on the selected items.",
|
||
"title": "Update Tags",
|
||
"none": "No tags selected",
|
||
"searchPlaceholder": "Search or create new tag...",
|
||
"createHint": "Press Enter to create new tag: \"{{tag}}\"",
|
||
"selectedCount": "{{count}} tag(s) to be applied",
|
||
"cancel": "Cancel",
|
||
"invalidTitle": "Invalid Tag",
|
||
"updatedTitle": "Tags Updated",
|
||
"updatedDesc": "Tags have been successfully updated.",
|
||
"updateFailedTitle": "Update Failed",
|
||
"tryAgain": "Please try again later.",
|
||
"actionAdd": "Add",
|
||
"actionRemove": "Remove",
|
||
"actionOverwrite": "Overwrite",
|
||
"submitAdd": "Add Tags",
|
||
"submitRemove": "Remove Tags",
|
||
"submitOverwrite": "Overwrite Tags",
|
||
"savingAdd": "Adding...",
|
||
"savingRemove": "Removing...",
|
||
"savingOverwrite": "Overwriting..."
|
||
},
|
||
"thread": {
|
||
"title": "Thread · {{count}} messages",
|
||
"error": "Failed to load thread",
|
||
"empty": "No messages in this thread",
|
||
"invalidDate": "Invalid date",
|
||
"noSubject": "(No subject)",
|
||
"loadingMore": "Loading...",
|
||
"loadMore": "Load more"
|
||
},
|
||
"bulkActions": {
|
||
"ariaLabel": "{{count}} messages selected. Bulk actions toolbar",
|
||
"delete": "Delete",
|
||
"deleteDesc": "Delete selected messages",
|
||
"selected": "{{count}} selected",
|
||
"clear": "Clear selection",
|
||
"manageTags": "Manage Tags"
|
||
},
|
||
"delete": {
|
||
"title": "Delete messages",
|
||
"confirmPrefix": "Are you sure you want to delete",
|
||
"countLabel": "{{count}} message",
|
||
"confirmDetail": "This action cannot be undone.",
|
||
"confirmButton": "Delete",
|
||
"warningTitle": "Warning",
|
||
"warningDesc": "Deleted messages will be permanently removed and cannot be recovered.",
|
||
"successTitle": "Messages deleted",
|
||
"successDesc": "The selected messages have been deleted successfully.",
|
||
"errorTitle": "Delete failed"
|
||
}
|
||
},
|
||
"mail": {
|
||
"emailViewer": "Email Viewer",
|
||
"noMessageSelected": "No message selected",
|
||
"account": "Account",
|
||
"from": "From",
|
||
"to": "To",
|
||
"subject": "Subject",
|
||
"date": "Date",
|
||
"tags": "Tags",
|
||
"noTagsYet": "No tags yet",
|
||
"id": "ID",
|
||
"cc": "CC",
|
||
"bcc": "BCC",
|
||
"attachments": "Attachments",
|
||
"download": "Download",
|
||
"delete": "Delete",
|
||
"viewThread": "View Thread",
|
||
"downloadStarted": "Download started",
|
||
"downloadComplete": "Download complete",
|
||
"downloadFailed": "Download failed",
|
||
"failedToDownloadFile": "Failed to download file",
|
||
"failedToLoadEmail": "Failed to load email message.",
|
||
"isBeingDownloaded": "{{id}} is being downloaded",
|
||
"downloaded": "{{id}} downloaded",
|
||
"showLess": "show less",
|
||
"showMore": "show more...",
|
||
"onlyNonInlineAttachments": "Only non-inline attachments are shown here.",
|
||
"noAttachments": "No attachments"
|
||
},
|
||
"oauth2": {
|
||
"title": "OAuth2",
|
||
"addConfiguration": "Add Configuration",
|
||
"id": "ID",
|
||
"provider": "Provider",
|
||
"clientId": "Client ID",
|
||
"clientSecret": "Client Secret",
|
||
"redirectUri": "Redirect URI",
|
||
"scopes": "Scopes",
|
||
"status": "Status",
|
||
"enabled": "Enabled",
|
||
"disabled": "Disabled",
|
||
"edit": "Edit",
|
||
"delete": "Delete",
|
||
"enable": "Enable",
|
||
"disable": "Disable",
|
||
"noConfigurations": "No OAuth2 Configurations",
|
||
"noConfigurationsDesc": "You haven't added any OAuth2 configurations yet. Add one to start using OAuth2 features.",
|
||
"description": "Automatically handling access token retrieval, storage, and refreshing, ensuring a seamless and always-ready authentication experience.",
|
||
"addNew": "Add New",
|
||
"updateHere": "Update here.",
|
||
"createNewHere": "Create new here.",
|
||
"clickSaveWhenDone": "Click save when you're done.",
|
||
"quickPresets": "Quick presets:",
|
||
"gmail": "Gmail",
|
||
"outlook": "Outlook",
|
||
"whenDisabled": "When disabled: - New authorization flows will be rejected immediately - Existing access tokens and refresh tokens will be revoked within 1 minute - Users must re-authorize when re-enabled",
|
||
"clientIdLabel": "Client Id:",
|
||
"enterYourClientId": "Enter your client ID",
|
||
"theUniqueIdentifierForYourApplication": "The unique identifier for your application, provided by the OAuth provider.",
|
||
"clientSecretLabel": "Client Secret:",
|
||
"leaveEmptyToKeepExistingSecret": "Leave empty to keep existing secret",
|
||
"enterYourClientSecret": "Enter your client secret",
|
||
"leaveEmptyToKeepTheExistingSecret": "Leave empty to keep the existing secret. Only enter a new value if you want to change it.",
|
||
"aSecretKeyProvidedByTheOAuthProvider": "A secret key provided by the OAuth provider to authenticate your application.",
|
||
"authUrlLabel": "Auth Url:",
|
||
"enterTheAuthorizationUrl": "Enter the authorization URL",
|
||
"theUrlWhereUsersWillBeRedirected": "The URL where users will be redirected to authorize your application.",
|
||
"tokenUrlLabel": "Token Url:",
|
||
"enterTheTokenUrl": "Enter the token URL",
|
||
"theUrlUsedToExchange": "The URL used to exchange the authorization code for an access token.",
|
||
"redirectUrlLabel": "Redirect Url:",
|
||
"enterYourRedirectUrl": "Enter your redirect URL",
|
||
"theRedirectUrlAfterAuthorization": "The redirect URL after authorization. It must match the one registered with the OAuth provider. Use the format http://[host]:[port]/oauth2/callback (or https://), where [host] and [port] match your RustMailer deployment. The path /oauth2/callback is fixed.",
|
||
"scope": "Scope:",
|
||
"enterTheScopeHere": "Enter the scope here.",
|
||
"addScope": "Add Scope",
|
||
"key": "Key:",
|
||
"enterTheKeyHere": "Enter the key here.",
|
||
"value": "Value:",
|
||
"enterTheValueHere": "Enter the value here.",
|
||
"addExtraParams": "Add Extra Params",
|
||
"useProxyOptional": "Use Proxy (optional):",
|
||
"selectAProxy": "Select a proxy",
|
||
"noProxyAvailable": "No proxy available",
|
||
"useSocks5ProxyForOAuthRequests": "Use SOCKS5 proxy for OAuth requests when direct access is blocked.",
|
||
"descriptionLabel": "Description:",
|
||
"describeThePurposeOfTheOauth2Application": "Describe the purpose of the oauth2 application",
|
||
"optional": "Optional",
|
||
"saving": "Saving...",
|
||
"creating": "Creating...",
|
||
"saveChanges": "Save changes",
|
||
"save": "Save",
|
||
"updated": "Updated",
|
||
"created": "Created",
|
||
"yourOAuth2ApplicationHasBeenSuccessfully": "Your OAuth2 application has been successfully {{action}}.",
|
||
"updateFailed": "Update Failed",
|
||
"creationFailed": "Creation Failed",
|
||
"updateOrCreationFailed": "{{action}} failed, please try again later",
|
||
"clientSecretIsRequired": "Client Secret is required",
|
||
"clientSecretCannotBeEmpty": "Client Secret cannot be empty",
|
||
"keyIsRequired": "Key is required",
|
||
"keyCannotBeEmpty": "Key cannot be empty",
|
||
"valueIsRequired": "Value is required",
|
||
"valueCannotBeEmpty": "Value cannot be empty",
|
||
"descriptionMustNotExceed255Characters": "Description must not exceed 255 characters.",
|
||
"clientIdIsRequired": "Client ID is required",
|
||
"clientIdCannotBeEmpty": "Client ID cannot be empty",
|
||
"authorizationUrlIsRequired": "Authorization URL is required",
|
||
"authorizationUrlCannotBeEmpty": "Authorization URL cannot be empty",
|
||
"invalidAuthorizationUrlFormat": "Invalid Authorization URL format",
|
||
"tokenUrlIsRequired": "Token URL is required",
|
||
"tokenUrlCannotBeEmpty": "Token URL cannot be empty",
|
||
"invalidTokenUrlFormat": "Invalid Token URL format",
|
||
"redirectUriIsRequired": "Redirect URI is required",
|
||
"redirectUriCannotBeEmpty": "Redirect URI cannot be empty",
|
||
"invalidRedirectUriFormat": "Invalid Redirect URI format",
|
||
"authorizeEmailAccount": "Authorize Email Account",
|
||
"authorizeAnEmailAccountToStartTheOAuth2AuthorizationProcess": "Authorize an email account to start the OAuth2 authorization process.",
|
||
"loadingAccounts": "Loading Accounts...",
|
||
"selectAnAccount": "Select an account",
|
||
"noEmailAccountsRegistered": "No email accounts registered. Please create one.",
|
||
"pleaseCreateOne": "Please create one.",
|
||
"createAccount": "Create Account",
|
||
"authorize": "Authorize",
|
||
"getAuthorizeUrlFailed": "Get Authorize Url Failed",
|
||
"getAuthorizeUrlFailedDesc": "get authorize url failed, please try again later",
|
||
"oauth2ClientUpdated": "OAuth2 client Updated",
|
||
"oauth2ClientHasBeenSuccessfully": "OAuth2 client has been successfully {{action}}.",
|
||
"statusUpdateFailed": "Status update failed, please try again later",
|
||
"disableOAuth2Client": "Disable OAuth2 Client",
|
||
"enableOAuth2Client": "Enable OAuth2 Client",
|
||
"areYouSureYouWantTo": "Are you sure you want to {{action}} this OAuth2 client?",
|
||
"thisWillPreventTheOAuth2ClientFromBeingUsed": "This will prevent the OAuth2 client from being used.",
|
||
"deleteToken": "Delete Token",
|
||
"areYouSureYouWantToDelete": "Are you sure you want to delete",
|
||
"thisActionWillPermanentlyRemoveTheOauth2Record": "This action will permanently remove the oauth2 record from the system. This cannot be undone.",
|
||
"enterIdToConfirmDeletion": "Enter id to confirm deletion.",
|
||
"warning": "Warning!",
|
||
"pleaseBeCareful": "Please be carefull, this operation can not be rolled back.",
|
||
"deleteSuccess": "Delete Success",
|
||
"yourOAuth2ApplicationHasBeenSuccessfullyDeleted": "Your OAuth2 application has been successfully deleted.",
|
||
"oauth2DeleteFailed": "OAuth2 delete Failed",
|
||
"deleteFailed": "Delete failed, please try again later",
|
||
"actions": {
|
||
"openMenu": "Open menu",
|
||
"edit": "Edit",
|
||
"authorize": "Authorize",
|
||
"delete": "Delete"
|
||
},
|
||
"authFailed": "OAuth2 Authentication Failed",
|
||
"error": "Error",
|
||
"unknownError": "An unknown error occurred.",
|
||
"tryAgain": "Try Again",
|
||
"goHome": "Go Home",
|
||
"authSuccess": "OAuth2 Authentication Successful",
|
||
"success": "Success",
|
||
"successMessage": "Your email account has been successfully authenticated via OAuth2. The Access Token has been saved by the system and will be automatically updated as needed.",
|
||
"goToAccounts": "Go to Accounts",
|
||
"authAtatus": "OAuth2 Authentication Status",
|
||
"information": "Information",
|
||
"noStatus": "This page displays the result of your OAuth2 authentication. Currently, no specific status is available. Please try again if needed.",
|
||
"backToLogin": "Back to Login"
|
||
},
|
||
"accessTokens": {
|
||
"title": "Access Tokens",
|
||
"name": "Name",
|
||
"accounts": "Accounts",
|
||
"token": "Token",
|
||
"createdAt": "Created At",
|
||
"expiresAt": "Expires At",
|
||
"edit": "Edit",
|
||
"delete": "Delete",
|
||
"create": "Create",
|
||
"noTokens": "No Access Tokens",
|
||
"noTokensDesc": "You haven't created any access tokens yet. Create one to start using API features.",
|
||
"description": "Manage your access tokens, their access controls, IP whitelists, and rate-limiting settings here.",
|
||
"editToken": "Edit Token",
|
||
"addNew": "Add New",
|
||
"updateTheAccessTokenHere": "Update the access token here.",
|
||
"createNewAccessTokenHere": "Create new access token here.",
|
||
"selectAccounts": "Select accounts",
|
||
"selectMultipleAccountsForTheAccessToken": "Select multiple accounts for the access token's authorization scope.",
|
||
"enterOneIpAddressPerLine": "Enter one IP address per line, e.g.:\n192.168.1.1\n192.168.1.2",
|
||
"aListOfIpAddressesAllowed": "A list of IP addresses allowed to access the resource. Enter one IP address per line. (Optional)",
|
||
"enterQuota": "Enter quota, e.g., 100",
|
||
"theMaximumNumberOfRequestsAllowed": "The maximum number of requests allowed within the interval. (Optional)",
|
||
"enterIntervalInSeconds": "Enter interval in seconds, e.g., 60",
|
||
"theTimeWindowForTheRateLimit": "The time window (in seconds) for the rate limit. (Optional)",
|
||
"describeThePurposeOfTheAccessToken": "Describe the purpose of the access token",
|
||
"updating": "Updating...",
|
||
"saving": "Saving...",
|
||
"creating": "Creating...",
|
||
"saveChanges": "Save changes",
|
||
"save": "Save",
|
||
"updated": "Updated",
|
||
"created": "Created",
|
||
"yourAccessTokenHasBeenSuccessfully": "Your access token has been successfully {{action}}.",
|
||
"updateFailed": "Update Failed",
|
||
"creationFailed": "Creation Failed",
|
||
"updateOrCreationFailed": "{{action}} failed, please try again later",
|
||
"quotaMustBeAPositiveInteger": "Quota must be a positive integer.",
|
||
"intervalMustBeAPositiveInteger": "Interval must be a positive integer.",
|
||
"invalidIpAddressesFound": "Invalid IP addresses found. Please enter valid IPv4 or IPv6 addresses.",
|
||
"atLeastOneAccountIsRequired": "At least one account is required.",
|
||
"descriptionMustNotExceed255Characters": "Description must not exceed 255 characters.",
|
||
"notUsedYet": "Not used yet",
|
||
"theListOfAccountsThatCanBeQueried": "The list of accounts that can be queried using an access token.",
|
||
"accountId": "Account ID",
|
||
"filterByEmailAddressOrAccountId": "Filter by email address or account ID...",
|
||
"aclRulesForAccessTokens": "ACL rules for access tokens include IP whitelist verification and rate limit enforcement.",
|
||
"actions": {
|
||
"openMenu": "Open menu",
|
||
"edit": "Edit",
|
||
"delete": "Delete"
|
||
},
|
||
"quota": "Quota",
|
||
"interval": "Interval"
|
||
},
|
||
"settings": {
|
||
"appearance": {
|
||
"title": "Appearance",
|
||
"field": {
|
||
"language": "Language",
|
||
"theme": "Interface Theme"
|
||
},
|
||
"description": {
|
||
"language": "Select the language used in the Web UI.",
|
||
"theme": "Choose between light or dark mode for the interface."
|
||
},
|
||
"placeholder": {
|
||
"select_language": "Select language"
|
||
},
|
||
"command": {
|
||
"search": "Search language...",
|
||
"no_results": "No language found."
|
||
},
|
||
"theme": {
|
||
"light": "Light",
|
||
"dark": "Dark"
|
||
},
|
||
"button": {
|
||
"update": "Update preferences"
|
||
},
|
||
"validation": {
|
||
"language": {
|
||
"required": "Please select a language."
|
||
},
|
||
"theme": {
|
||
"required": "Please select a theme."
|
||
}
|
||
}
|
||
},
|
||
"title": "Settings",
|
||
"general": "General",
|
||
"proxy": "Proxy",
|
||
"name": "Name",
|
||
"host": "Host",
|
||
"port": "Port",
|
||
"username": "Username",
|
||
"password": "Password",
|
||
"type": "Type",
|
||
"actions": "Actions",
|
||
"edit": "Edit",
|
||
"delete": "Delete",
|
||
"add": "Add",
|
||
"noProxies": "No Proxies",
|
||
"noProxiesDesc": "You haven't added any proxy configurations yet. Add one to start using proxy features.",
|
||
"root": "Root",
|
||
"rootTitle": "Root",
|
||
"rootDesc": "Manage root access credentials including token and password.",
|
||
"rootAccessManagement": "Root Access Management",
|
||
"manageRootTokenAndPassword": "Manage root token and password securely.",
|
||
"resetRootToken": "Reset Root Token",
|
||
"generateNewToken": "Generate new token, old one expires immediately.",
|
||
"reset": "Reset",
|
||
"resetRootPassword": "Reset Root Password",
|
||
"changePasswordForFutureLogins": "Change password for future logins.",
|
||
"youAreAboutToResetTheRootToken": "You are about to reset the root token. This action cannot be undone.",
|
||
"confirmReset": "Confirm Reset",
|
||
"youAreAboutToResetTheRootPassword": "You are about to reset the root password. Make sure to store it securely.",
|
||
"enterNewRootPassword": "Enter new root password",
|
||
"theRootTokenHasBeenReset": "The root token has been reset",
|
||
"yourLoginInformationHasBeenUpdated": "Your login information has been updated. No need to log in again.",
|
||
"invalidPassword": "Invalid password",
|
||
"rootPasswordMustBeAtLeast6Characters": "The root password must be at least 6 characters long.",
|
||
"theRootPasswordHasBeenReset": "The root password has been reset",
|
||
"useNewPasswordForNextLogin": "Use the new password for your next login.",
|
||
"failedToCopyText": "Failed to copy text",
|
||
"filterProxy": "Filter Proxy...",
|
||
"filterOauth2": "Filter oauth2...",
|
||
"filterAccount": "Filter account...",
|
||
"filterAccessToken": "Filter access token...",
|
||
"selectAll": "Select all",
|
||
"theme": "Theme",
|
||
"id": "Id",
|
||
"url": "Url",
|
||
"createdAt": "Created At",
|
||
"updatedAt": "Updated At",
|
||
"enabled": "Enabled",
|
||
"useProxy": "Use Proxy",
|
||
"authUrl": "Auth Url",
|
||
"tokenUrl": "Token Url",
|
||
"description": "Description",
|
||
"token": "Token",
|
||
"accounts": "Accounts",
|
||
"acl": "Acl",
|
||
"lastAccess": "Last Access",
|
||
"enterProxyIdToConfirmDeletion": "Enter Proxy Id to confirm deletion.",
|
||
"updateTheProxyHere": "Update the Proxy here. ",
|
||
"addNewProxyHere": "Add new Proxy here. ",
|
||
"pleaseUseAnIpAddressForBetterReliability": "Please use an IP address (e.g., 127.0.0.1) rather than a hostname or domain for better reliability.",
|
||
"adding": "Adding...",
|
||
"yourProxyHasBeenSuccessfully": "Your Proxy has been successfully {{action}}.",
|
||
"proxyUpdateOrAddFailed": "{{action}} failed, please try again later",
|
||
"sidebar": {
|
||
"profile": "Profile",
|
||
"apiTokens": "API Tokens",
|
||
"proxy": "Network Proxy",
|
||
"configurations": "System Configurations"
|
||
},
|
||
"profile": {
|
||
"loadError": "Failed to load user information.",
|
||
"uploadTitle": "Upload avatar",
|
||
"maxSize": "Up to {{size}}",
|
||
"avatarAlt": "Avatar",
|
||
"removeAvatar": "Remove avatar",
|
||
"uploadError": "File upload error(s)",
|
||
"field": {
|
||
"username": "Username",
|
||
"email": "Email",
|
||
"password": "Password"
|
||
},
|
||
"placeholder": {
|
||
"password_keep": "Leave blank to keep current password"
|
||
},
|
||
"button": {
|
||
"update_profile": "Update profile",
|
||
"permissions": "Permissions",
|
||
"view_global_permissions": "View global permissions"
|
||
},
|
||
"section": {
|
||
"roles": "Roles",
|
||
"accounts": "{{count}} linked accounts"
|
||
},
|
||
"account": {
|
||
"id": "Account ID: {{id}}"
|
||
},
|
||
"toast": {
|
||
"updated": "Profile updated successfully",
|
||
"update_failed": "Failed to update profile"
|
||
},
|
||
"validation": {
|
||
"username": {
|
||
"required": "Username is required",
|
||
"min": "Username must be at least 5 characters",
|
||
"max": "Username must be at most 32 characters"
|
||
},
|
||
"email": {
|
||
"required": "Email is required",
|
||
"invalid": "Please enter a valid email address"
|
||
},
|
||
"password": {
|
||
"min": "Password must be at least 8 characters",
|
||
"max": "Password must be at most 256 characters"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"apiDocs": {
|
||
"choosePreferredType": "Choose your preferred API documentation type",
|
||
"swaggerUI": "Swagger UI",
|
||
"reDoc": "ReDoc",
|
||
"openAPIExplorer": "OpenAPI Explorer",
|
||
"scalar": "Scalar",
|
||
"downloadSpecYAML": "Download Spec YAML"
|
||
},
|
||
"dialogs": {
|
||
"confirmDelete": "Confirm Delete",
|
||
"confirmDeleteDesc": "Are you sure you want to delete this item? This action cannot be undone.",
|
||
"deleteSuccess": "Deleted successfully",
|
||
"deleteFailed": "Failed to delete",
|
||
"saveSuccess": "Saved successfully",
|
||
"saveFailed": "Failed to save",
|
||
"createSuccess": "Created successfully",
|
||
"createFailed": "Failed to create",
|
||
"updateSuccess": "Updated successfully",
|
||
"updateFailed": "Failed to update",
|
||
"continue": "Continue",
|
||
"deleting": "Deleting...",
|
||
"accountDeleted": "Account Deleted",
|
||
"accountDeletedDesc": "Your account has been successfully deleted.",
|
||
"accountDeleteFailed": "Account delete Failed",
|
||
"deleteAccountPermanently": "Delete Account Permanently",
|
||
"youAreDeleting": "You are deleting {{email}}. This will permanently remove:",
|
||
"accountCredentials": "Account credentials and settings",
|
||
"localCachedMetadata": "Local cached metadata and sync status",
|
||
"imapSyncData": "IMAP synchronization data",
|
||
"oauthTokens": "OAuth tokens and API credentials",
|
||
"typeEmailToConfirm": "Type the account email to confirm:",
|
||
"typeToConfirm": "Type \"{{email}}\" to confirm",
|
||
"cannotBeUndone": "This action cannot be undone!",
|
||
"allResourcesErased": "All related resources will be permanently erased.",
|
||
"permanentlyDeleteAccount": "Permanently Delete Account"
|
||
},
|
||
"command": {
|
||
"typeCommandOrSearch": "Type a command or search...",
|
||
"noResultsFound": "No results found.",
|
||
"theme": "Theme",
|
||
"light": "Light",
|
||
"dark": "Dark"
|
||
},
|
||
"validation": {
|
||
"required": "This field is required",
|
||
"invalidEmail": "Invalid email address",
|
||
"invalidUrl": "Invalid URL",
|
||
"passwordMinLength": "Password must be at least {{min}} characters long",
|
||
"pleaseEnterPassword": "Please enter your password",
|
||
"passwordRequired": "Password is required when auth method is Password",
|
||
"emailRequired": "Email is required",
|
||
"imapHostRequired": "IMAP host is required",
|
||
"imapHostCannotBeEmpty": "IMAP host cannot be empty",
|
||
"imapPortMustBePositive": "IMAP port must be a positive integer",
|
||
"imapPortMustBeLessThan65536": "IMAP port must be less than 65536",
|
||
"folderLimitMustBeNumber": "Folder limit must be a number",
|
||
"folderLimitMustBeAtLeast100": "Folder limit must be at least 100",
|
||
"incrementalSyncMustBeNumber": "Incremental sync interval must be a number",
|
||
"incrementalSyncMustBeAtLeast10": "Incremental sync interval must be at least 10 minutes",
|
||
"pleaseEnterUsernameOrEmail": "Please enter your username or email",
|
||
"singleRequestBatchSizeMustBeNumber": "Batch size must be a number",
|
||
"singleRequestBatchSizeTooSmall": "Batch size must be at least 10",
|
||
"singleRequestBatchSizeTooLarge": "Batch size must be at most 200"
|
||
},
|
||
"table": {
|
||
"noResults": "No results found",
|
||
"loading": "Loading...",
|
||
"page": "Page",
|
||
"of": "of",
|
||
"rowsPerPage": "Rows per page",
|
||
"showing": "Showing",
|
||
"to": "to",
|
||
"results": "results",
|
||
"asc": "Asc",
|
||
"desc": "Desc",
|
||
"hide": "Hide",
|
||
"edit": "Edit",
|
||
"delete": "Delete",
|
||
"pagination": {
|
||
"selected": "Selected {{selected}} / {{total}} row(s).",
|
||
"fixed_page_size": "{{size}} rows per page.",
|
||
"rows_per_page": "Rows per page",
|
||
"page_info": "Page {{page}} of {{total}}",
|
||
"first": "Go to first page",
|
||
"previous": "Previous page",
|
||
"next": "Next page",
|
||
"last": "Go to last page"
|
||
}
|
||
},
|
||
"proxyDelete": {
|
||
"title": "Delete Proxy",
|
||
"successTitle": "Delete Success",
|
||
"successDesc": "Proxy has been successfully deleted.",
|
||
"close": "Close",
|
||
"failedTitle": "Proxy delete Failed",
|
||
"failedDesc": "Delete failed, please try again later",
|
||
"tryAgain": "Try again",
|
||
"confirmText": "Are you sure you want to delete",
|
||
"permanent": "This action will permanently remove the Proxy from the system. This cannot be undone.",
|
||
"proxyIdLabel": "Proxy Id:",
|
||
"proxyIdPlaceholder": "Enter Proxy Id to confirm deletion.",
|
||
"warningTitle": "Warning!",
|
||
"warningDesc": "Please be careful, this operation cannot be rolled back.",
|
||
"deleteBtn": "Delete"
|
||
},
|
||
"systemConfig": {
|
||
"pageTitle": "System-level Configurations",
|
||
"pageDescription": "These parameters are initialized via CLI flags or Environment Variables. They are currently read-only to ensure environment consistency.",
|
||
"status": {
|
||
"enabled": "Enabled",
|
||
"disabled": "Disabled",
|
||
"configured": "Configured",
|
||
"missing": "Missing",
|
||
"auto": "Auto",
|
||
"notSet": "Not set"
|
||
},
|
||
"sections": {
|
||
"network": {
|
||
"title": "Network",
|
||
"desc": "HTTP and public access"
|
||
},
|
||
"cors": {
|
||
"title": "CORS",
|
||
"desc": "Cross-origin access rules"
|
||
},
|
||
"logging": {
|
||
"title": "Logging",
|
||
"desc": "Log output behavior"
|
||
},
|
||
"storage": {
|
||
"title": "Storage & Cache",
|
||
"desc": "Database paths and limits"
|
||
},
|
||
"security": {
|
||
"title": "Security",
|
||
"desc": "Authentication & encryption"
|
||
},
|
||
"performance": {
|
||
"title": "Performance",
|
||
"desc": "Concurrency & compression"
|
||
},
|
||
"smtp": {
|
||
"title": "SMTP Server",
|
||
"desc": "Incoming mail reception settings for real-time archiving"
|
||
}
|
||
}
|
||
},
|
||
"apiTokens": {
|
||
"page": {
|
||
"loadError": "Failed to load API tokens.",
|
||
"emptyTitle": "No API tokens",
|
||
"emptyDescription": "You haven’t created any API tokens yet. Click below to create one.",
|
||
"addBtn": "Add Token"
|
||
},
|
||
"list": {
|
||
"unnamedToken": "Unnamed Token",
|
||
"statusActive": "Active",
|
||
"statusExpired": "Expired",
|
||
"neverExpires": "Never expires",
|
||
"expiresOnShort": "Expires on {{date}}",
|
||
"tokenLabel": "Token",
|
||
"createdLabel": "Created",
|
||
"lastUsedLabel": "Last used",
|
||
"expiresOnLabel": "Expires on",
|
||
"neverUsed": "Never",
|
||
"neverLabel": "Never",
|
||
"deleteBtn": "Delete token"
|
||
},
|
||
"dialog": {
|
||
"createTitle": "Create Access Token",
|
||
"editTitle": "Edit Access Token",
|
||
"description": "Click save when you are done.",
|
||
"save": "Save",
|
||
"saveChanges": "Save Changes"
|
||
},
|
||
"deleteDialog": {
|
||
"title": "Delete access token?",
|
||
"description": "This action cannot be undone. Any application using this token will immediately lose access.",
|
||
"cancel": "Cancel",
|
||
"confirm": "Delete",
|
||
"deleting": "Deleting..."
|
||
},
|
||
"form": {
|
||
"nameLabel": "Name",
|
||
"namePlaceholder": "Give this access token a short name",
|
||
"nameDescription": "Optional · Max 32 characters",
|
||
"expirationLabel": "Expiration",
|
||
"expirationPlaceholder": "Select expiration",
|
||
"expirationDescription": "Tokens will automatically expire after the selected time.",
|
||
"never": "Never",
|
||
"1day": "1 day",
|
||
"7days": "7 days",
|
||
"30days": "30 days",
|
||
"errorMax": "Max 32 characters",
|
||
"errorNumber": "Must be a number",
|
||
"errorInt": "Must be an integer",
|
||
"errorPositive": "Must be greater than 0"
|
||
},
|
||
"notifications": {
|
||
"createSuccess": "Access Token Created",
|
||
"createSuccessDesc": "The access token has been created successfully.",
|
||
"updateSuccess": "Access Token Updated",
|
||
"updateSuccessDesc": "The access token has been updated successfully.",
|
||
"createFailed": "Creation Failed",
|
||
"updateFailed": "Update Failed",
|
||
"deleteSuccess": "Access token deleted successfully",
|
||
"deleteFailed": "Failed to delete access token",
|
||
"copied": "Copied to clipboard",
|
||
"genericError": "Operation failed. Please try again.",
|
||
"close": "Close",
|
||
"tryAgain": "Try again"
|
||
}
|
||
},
|
||
"permission": {
|
||
"scope": {
|
||
"global": "Global",
|
||
"account": "Account #{{id}}"
|
||
},
|
||
"dialog": {
|
||
"global_title": "Global Permissions",
|
||
"account_title": "Account Permissions",
|
||
"global_description": "System-wide permissions granted to this user.",
|
||
"account_description": "Permissions scoped to the selected account."
|
||
},
|
||
"category": {
|
||
"system_identity": "System & Identity",
|
||
"global_data": "Global Data (Admin)",
|
||
"account": "Account Permissions"
|
||
},
|
||
"system": {
|
||
"access": "Basic System Access",
|
||
"root": "Root System Control"
|
||
},
|
||
"user": {
|
||
"manage": "Manage All Users",
|
||
"view": "List Basic Usernames"
|
||
},
|
||
"token": {
|
||
"manage": "Manage Access Tokens"
|
||
},
|
||
"account": {
|
||
"create": "Create Email Accounts",
|
||
"manage": "Manage Assigned Accounts",
|
||
"manage_all": "Manage All Account Configs",
|
||
"read_details": "Read Assigned Account Details"
|
||
},
|
||
"data": {
|
||
"read": "Read Assigned Email Data",
|
||
"read_all": "Read All Email Data",
|
||
"manage": "Manage Assigned Email Metadata",
|
||
"manage_all": "Manage All Email Metadata",
|
||
"raw_download": "Download Assigned Raw Emails",
|
||
"raw_download_all": "Download All Raw Emails",
|
||
"delete": "Delete Assigned Emails",
|
||
"delete_all": "Delete Emails from All Accounts",
|
||
"export_batch": "Batch Export Assigned Data",
|
||
"export_batch_all": "Batch Export All Data",
|
||
"import_batch": "Batch Import Email Data",
|
||
"smtp_ingest": "Ingest Emails via SMTP Protocol"
|
||
}
|
||
},
|
||
"users": {
|
||
"columns": {
|
||
"id": "ID",
|
||
"avatar": "Avatar",
|
||
"username": "Username",
|
||
"email": "Email Address",
|
||
"roles": "Roles",
|
||
"created_at": "Created At",
|
||
"updated_at": "Updated At",
|
||
"actions": "Actions"
|
||
},
|
||
"buttons": {
|
||
"add": "Add User",
|
||
"add_new": "Add New User"
|
||
},
|
||
"empty": {
|
||
"title": "No users found",
|
||
"description": "Click the button below to start adding your first user."
|
||
},
|
||
"nav": {
|
||
"users": "Users",
|
||
"roles": "Roles",
|
||
"api_tokens": "API Tokens"
|
||
},
|
||
"api_tokens": {
|
||
"empty": {
|
||
"title": "No API tokens found",
|
||
"description": "No API tokens have been generated in the system yet"
|
||
},
|
||
"button": {
|
||
"generate": "Generate New Token"
|
||
},
|
||
"toolbar": {
|
||
"search_placeholder": "Search by name, owner or token..."
|
||
},
|
||
"table": {
|
||
"name": "Name",
|
||
"type": "Type",
|
||
"last_used": "Last Used",
|
||
"expires_at": "Expires At",
|
||
"owner": "Owner",
|
||
"created": "Created",
|
||
"api_key": "API Key",
|
||
"web_ui": "Web UI",
|
||
"never": "Never",
|
||
"permanent": "Permanent",
|
||
"expired": "Expired",
|
||
"unnamed": "Unnamed Token"
|
||
},
|
||
"unnamed": "Unnamed Token",
|
||
"delete": {
|
||
"title": "Delete API Token",
|
||
"desc": "You are about to permanently delete this API token",
|
||
"prefix": "Token Prefix",
|
||
"irreversible": "This action cannot be undone. Any applications using this token will immediately lose access.",
|
||
"confirm_label": "To confirm, please type {{word}} below:",
|
||
"confirm_placeholder": "Type \"{{word}}\" to confirm",
|
||
"warning_title": "Warning",
|
||
"warning_desc": "Any scripts, services, or integrations using this token will fail. Please ensure you have updated your systems before proceeding.",
|
||
"confirm_button": "Delete Token",
|
||
"deleting": "Deleting..."
|
||
},
|
||
"toast": {
|
||
"deleted_title": "API Token Deleted",
|
||
"deleted_desc": "The token \"{{name}}\" has been successfully removed.",
|
||
"delete_failed_title": "Delete Failed",
|
||
"delete_failed": "Failed to delete the token, please try again."
|
||
}
|
||
},
|
||
"tokens": {
|
||
"schema": {
|
||
"name_max": "Max 32 characters",
|
||
"expire_number": "Must be a number",
|
||
"expire_int": "Must be an integer",
|
||
"expire_positive": "Must be greater than 0"
|
||
},
|
||
"toast": {
|
||
"update_success_title": "Access Token Updated",
|
||
"update_success_desc": "Access token has been successfully updated.",
|
||
"create_success_title": "Access Token Created",
|
||
"create_success_desc": "Access token has been successfully created.",
|
||
"update_failed_title": "Update Failed",
|
||
"create_failed_title": "Creation Failed"
|
||
},
|
||
"error": {
|
||
"fallback": "Operation failed, please try again later."
|
||
},
|
||
"dialog": {
|
||
"edit_title": "Edit Access Token",
|
||
"create_title": "Create Access Token",
|
||
"description": "Click save when you're done."
|
||
},
|
||
"fields": {
|
||
"name_label": "Name",
|
||
"name_placeholder": "Give this access token a short name",
|
||
"name_hint": "Optional · Max 32 characters",
|
||
"expire_label": "Expiration",
|
||
"expire_placeholder": "Select expiration",
|
||
"expire_hint": "The token will automatically expire after the selected time."
|
||
},
|
||
"expire_options": {
|
||
"never": "Never expires",
|
||
"1_day": "1 Day",
|
||
"7_days": "7 Days",
|
||
"30_days": "30 Days"
|
||
}
|
||
},
|
||
"tokens_action": {
|
||
"dialog": {
|
||
"title": "API Tokens",
|
||
"description": "Manage API tokens for this user."
|
||
},
|
||
"empty": {
|
||
"title": "No API Tokens",
|
||
"description": "This user currently has no API tokens."
|
||
},
|
||
"buttons": {
|
||
"add": "Add Token"
|
||
},
|
||
"list": {
|
||
"unnamed_token": "Unnamed Token",
|
||
"status_expired": "Expired",
|
||
"status_active": "Active",
|
||
"expires_on_brief": "Expires on {{date}}",
|
||
"never_expires": "Never expires",
|
||
"label_token": "Token",
|
||
"label_created": "Created At",
|
||
"label_last_used": "Last Used",
|
||
"label_expires_at": "Expires At",
|
||
"never": "Never",
|
||
"button_delete": "Delete Token"
|
||
},
|
||
"delete_dialog": {
|
||
"title": "Delete Access Token?",
|
||
"description": "This action cannot be undone."
|
||
}
|
||
},
|
||
"actions": {
|
||
"schema": {
|
||
"account_required": "Please select an account",
|
||
"role_required": "Please select a role",
|
||
"username_required": "Username is required",
|
||
"username_min": "Username must be at least 3 characters",
|
||
"username_max": "Username cannot exceed 32 characters",
|
||
"email_required": "Email address is required",
|
||
"email_invalid": "Please enter a valid email address",
|
||
"global_role_required": "Assign at least one global role to this user",
|
||
"description_max": "Description cannot exceed 256 characters",
|
||
"ip_invalid": "Invalid IP address detected",
|
||
"password_required": "Password is required",
|
||
"password_min": "Password must be at least 8 characters",
|
||
"password_max": "Password cannot exceed 256 characters"
|
||
},
|
||
"toast": {
|
||
"updated": "User updated",
|
||
"created": "User created"
|
||
},
|
||
"dialog": {
|
||
"edit_title": "Edit User: {{name}}",
|
||
"create_title": "Create New User",
|
||
"subtitle": "Configure identity, access levels, and security policies."
|
||
},
|
||
"tabs": {
|
||
"general": "General",
|
||
"permissions": "Account Permissions",
|
||
"security": "Security & ACL"
|
||
},
|
||
"sections": {
|
||
"basic": "Basic Identity",
|
||
"global": "Global Permissions",
|
||
"mail_access": "Mail Access Control",
|
||
"mail_access_subtitle": "Define which mail accounts this user can manage.",
|
||
"policy": "Policy Toggles"
|
||
},
|
||
"fields": {
|
||
"username": "Username",
|
||
"username_hint": "Unique identifier for system login.",
|
||
"email": "Email Address",
|
||
"email_hint": "Primary contact and notification address.",
|
||
"password": "Password",
|
||
"password_placeholder_create": "At least 8 characters",
|
||
"password_placeholder_edit": "Leave blank to keep current password",
|
||
"password_hint_create": "Secure password for initial user setup.",
|
||
"password_hint_edit": "Only enter a new password if you wish to change it.",
|
||
"global_roles_hint": "Assign high-level system permissions.",
|
||
"description": "Description (Optional)",
|
||
"description_placeholder": "Add some notes about this user...",
|
||
"description_hint": "Internal notes (max 256 characters).",
|
||
"select_account": "Select Account",
|
||
"assign_role": "Assign Role",
|
||
"ip_whitelist": "IP Whitelist",
|
||
"ip_whitelist_hint": "Restrict login to these IPs (one per line).",
|
||
"rate_quota": "Rate Quota",
|
||
"burst_interval": "Burst Interval (sec)"
|
||
},
|
||
"buttons": {
|
||
"add_account": "Add Account",
|
||
"update": "Update User",
|
||
"create": "Create User"
|
||
},
|
||
"states": {
|
||
"full_access": "Full Access Mode",
|
||
"full_access_desc": "System administrators have inherent access to all accounts.",
|
||
"no_accounts": "No specific accounts assigned.",
|
||
"security_disabled": "Security policies are currently disabled."
|
||
},
|
||
"api_tokens": "API Tokens",
|
||
"placeholder": {
|
||
"filter": "Search users..."
|
||
},
|
||
"delete": {
|
||
"title": "Delete User",
|
||
"confirm_msg": "You are about to permanently delete user {{name}} (ID: {{id}}).",
|
||
"irreversible": "This action cannot be undone.",
|
||
"input_label": "To confirm, please type the User ID below:",
|
||
"placeholder": "Type \"{{id}}\" to confirm",
|
||
"alert_title": "Warning: Permanent action.",
|
||
"alert_desc": "Once deleted, the user and all associated data will be wiped.",
|
||
"button_confirm": "Delete User",
|
||
"button_deleting": "Deleting...",
|
||
"toast": {
|
||
"success_title": "User Deleted",
|
||
"success_desc": "User \"{{name}}\" has been successfully removed.",
|
||
"failed_title": "Delete Failed",
|
||
"failed_fallback": "Failed to delete user."
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"roles": {
|
||
"title": {
|
||
"create": "Create New Role",
|
||
"edit": "Edit Role: {{name}}"
|
||
},
|
||
"description_hint": "Define access scope and functional permissions.",
|
||
"form": {
|
||
"name_label": "Role Name",
|
||
"type_label": "Role Type",
|
||
"desc_label": "Description",
|
||
"matrix_label": "{{type}} Permission Matrix",
|
||
"builtin_badge": "Built-in Role",
|
||
"builtin_desc": "This role is predefined and read-only."
|
||
},
|
||
"types": {
|
||
"Global": "Global",
|
||
"Account": "Account"
|
||
},
|
||
"categories": {
|
||
"identity": "Identity & Management",
|
||
"global_data": "Global Data Access",
|
||
"account_resource": "Account Resource Access"
|
||
},
|
||
"actions": {
|
||
"cancel": "Cancel",
|
||
"submit_create": "Create Role",
|
||
"submit_update": "Update Role",
|
||
"success_create": "Role created successfully",
|
||
"success_update": "Role updated successfully",
|
||
"failed": "Operation failed",
|
||
"close": "Close",
|
||
"retry": "Retry",
|
||
"add": "Add Role"
|
||
},
|
||
"validation": {
|
||
"name_required": "Role name is required",
|
||
"perm_required": "Select at least one permission"
|
||
},
|
||
"columns": {
|
||
"id": "ID",
|
||
"name": "Name",
|
||
"role_type": "Role Type",
|
||
"permissions": "Permissions",
|
||
"created_at": "Created At",
|
||
"updated_at": "Updated At"
|
||
},
|
||
"placeholder": {
|
||
"filter": "Search roles..."
|
||
},
|
||
"delete": {
|
||
"dialog_title": "Delete User Role",
|
||
"warning_text": "You are about to permanently delete role {{name}} (ID: {{id}}).",
|
||
"irreversible": "This action cannot be undone.",
|
||
"confirm_label": "Please type the role ID to confirm:",
|
||
"placeholder": "Type \"{{id}}\" to confirm",
|
||
"alert_title": "Warning: Permanent action.",
|
||
"alert_desc": "Deleting this role will remove it from all assigned users.",
|
||
"confirm_btn": "Delete Role",
|
||
"deleting": "Deleting...",
|
||
"success_title": "Role Deleted",
|
||
"success_desc": "Role \"{{name}}\" has been successfully removed.",
|
||
"error_title": "Delete Failed",
|
||
"error_fallback": "Could not delete the role."
|
||
},
|
||
"details": {
|
||
"title": "Role Permissions: {{name}}",
|
||
"unknown": "Unknown Role",
|
||
"role_badge": "{{type}} Role",
|
||
"desc_global": "Global management and system-level access.",
|
||
"desc_account": "Access and data operations for single accounts.",
|
||
"close_btn": "Close Details",
|
||
"view_permissions": "Permission Details"
|
||
},
|
||
"empty": {
|
||
"title": "No Roles Found",
|
||
"desc": "You haven't created any custom roles yet."
|
||
}
|
||
},
|
||
"profile": {
|
||
"avatar_alt": "Avatar",
|
||
"menu": {
|
||
"profile": "Profile",
|
||
"settings": "Settings",
|
||
"sign_out": "Sign out"
|
||
}
|
||
},
|
||
"sign_out": {
|
||
"title": "Sign out",
|
||
"desc": "Are you sure you want to sign out? You will need to sign in again to access your account.",
|
||
"confirm": "Sign out"
|
||
},
|
||
"restore_message": {
|
||
"title": "Restore Single Message",
|
||
"bulkTitle": "Bulk Restore Messages",
|
||
"bulkWarning": "Note: Messages will be restored to their original storage folders.",
|
||
"accountsInvolved": "Accounts involved",
|
||
"summary": "Restoration Details",
|
||
"messages": "messages",
|
||
"desc": "This action will re-upload selected messages from Bichon and restore them to their corresponding mailboxes on the IMAP server.",
|
||
"confirm": "Restore Now",
|
||
"restore_to_imap": "Restore Message",
|
||
"success": "Messages Restored",
|
||
"successDesc": "The selected messages have been successfully restored to the IMAP server.",
|
||
"failed": "Restore Failed",
|
||
"failedTitle": "Failed to Restore"
|
||
},
|
||
"time": {
|
||
"label": "Time",
|
||
"since": "Since",
|
||
"before": "Before",
|
||
"recent_range": "Recent range (since...)",
|
||
"historical": "Historical range (before...)",
|
||
"absolute_range": "Absolute date range",
|
||
"last_day": "Last 1 day",
|
||
"last_days": "Last {{count}} days",
|
||
"last_months": "Last {{count}} months",
|
||
"over_years_ago": "{{count}} {{unit}} ago",
|
||
"year": "year",
|
||
"years": "years",
|
||
"recent_prefix": "Recent:",
|
||
"days_ago_to_now": "days ago to now",
|
||
"apply": "Apply",
|
||
"start_date": "Start date",
|
||
"end_date": "End date",
|
||
"clear_filters": "Clear time filters",
|
||
"format": "yyyy-MM-dd"
|
||
},
|
||
"tag": {
|
||
"label": "Tags",
|
||
"search_placeholder": "Search tags...",
|
||
"clear_all": "Clear all tags",
|
||
"no_tags_found": "No tags found"
|
||
},
|
||
"search_accounts": {
|
||
"label": "Mail accounts",
|
||
"search_placeholder": "Search mail accounts...",
|
||
"clear_accounts": "Clear selected accounts",
|
||
"no_accounts_found": "No accounts found"
|
||
},
|
||
"search_mailbox": {
|
||
"label": "Mailboxes",
|
||
"search_placeholder": "Search mailboxes",
|
||
"clear_mailboxes": "Clear selected mailboxes",
|
||
"select_account_first": "Please select an account first",
|
||
"no_mailbox_found": "No mailbox found"
|
||
},
|
||
"search_contacts": {
|
||
"label": "Contacts",
|
||
"label_with_count": "Contacts ({{count}})",
|
||
"any": "Any",
|
||
"search_placeholder": "Search {{field}}...",
|
||
"reset_all": "Reset all contacts",
|
||
"no_contact_found": "No contacts found",
|
||
"loading": "Loading...",
|
||
"showing_limit": "Showing first 100 results • Total {{total}}"
|
||
},
|
||
"search_more": {
|
||
"trigger_label": "Advanced",
|
||
"title": "Advanced filters",
|
||
"reset": "Reset",
|
||
"has_attachment": "Has attachment",
|
||
"attachment_name_label": "Attachment name",
|
||
"attachment_name_placeholder": "e.g. invoice.pdf",
|
||
"message_size_label": "Message size",
|
||
"message_id_label": "Original Message-ID",
|
||
"message_id_description": "Search by Message-ID header",
|
||
"apply": "Apply filters",
|
||
"size_presets": {
|
||
"any": "Any size",
|
||
"tiny": "Tiny (< 15 KB)",
|
||
"small": "Small (< 2 MB)",
|
||
"medium": "Medium (2 – 10 MB)",
|
||
"large": "Large (10 – 20 MB)",
|
||
"huge": "Huge (> 20 MB)"
|
||
},
|
||
"any": "Any",
|
||
"search_placeholder": "Search {{field}}...",
|
||
"extension": "Extension",
|
||
"category": "Category",
|
||
"content_types": "Specific Type"
|
||
},
|
||
"search_view": {
|
||
"button_label": "View",
|
||
"menu_title": "Column settings"
|
||
},
|
||
"search_reset": {
|
||
"label": "Reset",
|
||
"tooltip": "Clear all filters"
|
||
},
|
||
"search_input": {
|
||
"placeholder": "Search emails... (Regex supported)",
|
||
"button": "Search",
|
||
"recent_title": "Recent searches",
|
||
"clear_history": "Clear history",
|
||
"no_history": "No search history",
|
||
"all": "All Fields",
|
||
"all_fields_desc": "Matches subject, body, sender, and recipients",
|
||
"subject": "Subject",
|
||
"body": "Body"
|
||
}
|
||
} |