Files
bichon/web/src/locales/en.json
T
2026-03-27 14:41:09 +08:00

1596 lines
63 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"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 havent 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"
}
}