365 lines
15 KiB
JSON
365 lines
15 KiB
JSON
{
|
|
"accounts": "Accounts",
|
|
"actions": {
|
|
"actionFailed": "Action failed.",
|
|
"backToActions": "Back to actions",
|
|
"execute": "Execute",
|
|
"executeAnother": "Execute another action",
|
|
"executedSuccess": "Action executed successfully.",
|
|
"executing": "Executing {{label}}...",
|
|
"failedTitle": "Action failed",
|
|
"noAdditionalData": "No additional data returned.",
|
|
"otherGroup": "Other",
|
|
"title": "Actions"
|
|
},
|
|
"bootstrap": {
|
|
"clipboardBlocked": "Your browser blocked clipboard access.",
|
|
"complete": "Setup complete",
|
|
"configuredSuccessfully": "Stalwart has been configured successfully.",
|
|
"copyFailed": "Copy failed",
|
|
"credentialsCreated": "Your administrator account has been created. Write these down now: the password will not be shown again.",
|
|
"emptyForm": "Setup form is empty. The server did not return any bootstrap fields.",
|
|
"failedToComplete": "Failed to complete setup.",
|
|
"failedToLoad": "Failed to load bootstrap state.",
|
|
"finishSetup": "Finish setup",
|
|
"loadingSetup": "Loading setup...",
|
|
"nextStepBody": "restart Stalwart for the new configuration to take effect. Once restarted, sign in with the credentials above to continue administering your server.",
|
|
"nextStepLabel": "Next step:",
|
|
"noConfirm": "The server did not confirm the update.",
|
|
"stepOf": "Step {{current}} of {{total}}",
|
|
"welcome": "Welcome to Stalwart",
|
|
"welcomeSubtitle": "Let's get your server set up."
|
|
},
|
|
"common": {
|
|
"apply": "Apply",
|
|
"back": "Back",
|
|
"cancel": "Cancel",
|
|
"clear": "Clear",
|
|
"confirm": "Confirm",
|
|
"continue": "Continue",
|
|
"create": "Create",
|
|
"delete": "Delete",
|
|
"loading": "Loading...",
|
|
"next": "Next",
|
|
"no": "No",
|
|
"noResultsDot": "No results.",
|
|
"save": "Save",
|
|
"search": "Search",
|
|
"searchPlaceholder": "Search...",
|
|
"yes": "Yes",
|
|
"close": "Close"
|
|
},
|
|
"dashboard": {
|
|
"customEllipsis": "Custom...",
|
|
"customRange": "Custom range",
|
|
"failedFetchMetrics": "Failed to fetch metrics",
|
|
"from": "From",
|
|
"liveMetricsDisconnected": "Live metrics stream disconnected after multiple retries.",
|
|
"liveMetricsFailed": "Failed to connect to live metrics.",
|
|
"preset24h": "Last 24 hours",
|
|
"preset30d": "Last 30 days",
|
|
"preset7d": "Last 7 days",
|
|
"preset90d": "Last 90 days",
|
|
"to": "To"
|
|
},
|
|
"deliveryTrace": {
|
|
"attemptCount_one": "{{count}} attempt",
|
|
"attemptCount_other": "{{count}} attempts",
|
|
"attemptLabel": "Delivery Attempt: {{hostname}}",
|
|
"body": {
|
|
"connectionStart": "Connecting to {{ip}}",
|
|
"connectionSuccess": "Connected",
|
|
"daneVerifySuccess": "DANE verification passed",
|
|
"ehloSuccess": "EHLO accepted",
|
|
"ipLookupOverflow": "{{shown}} +{{extra}} more",
|
|
"mailFromSuccess": "Sender accepted",
|
|
"mtaStsFetchSuccess": "Policy fetched successfully",
|
|
"mtaStsNotFound": "No MTA-STS policy published",
|
|
"mtaStsVerifySuccess": "MTA-STS hostname verified",
|
|
"mxLookupStart": "Looking up MX for {{domain}}",
|
|
"mxLookupSuccess_one": "Resolved {{count}} MX record",
|
|
"mxLookupSuccess_other": "Resolved {{count}} MX records",
|
|
"quitCompleted": "Session closed",
|
|
"rcptToSuccess": "Recipient accepted",
|
|
"readGreetingSuccess": "Server greeting received",
|
|
"startTlsSuccess": "TLS negotiated",
|
|
"tlsRptLookupSuccess_one": "Found {{count}} reporting URI",
|
|
"tlsRptLookupSuccess_other": "Found {{count}} reporting URIs",
|
|
"tlsRptNotFound": "No TLS-RPT record published",
|
|
"tlsaLookupSuccess": "TLSA record found",
|
|
"tlsaNotFound": "No TLSA record found"
|
|
},
|
|
"cancelTrace": "Cancel trace",
|
|
"connectionLost": "Connection lost before trace completed.",
|
|
"deliveryFailed": "Delivery failed",
|
|
"deliverySuccessful": "Delivery successful",
|
|
"failedToStart": "Failed to start trace.",
|
|
"inDuration": "in {{elapsed}}",
|
|
"invalidTarget": "Enter a valid email address or domain.",
|
|
"phase": {
|
|
"connection": "TCP Connection",
|
|
"daneVerify": "DANE Verify",
|
|
"ipLookup": "IP Lookup",
|
|
"mtaStsFetch": "MTA-STS Policy Fetch",
|
|
"mtaStsVerify": "MTA-STS Verify",
|
|
"mxLookup": "MX Lookup",
|
|
"readGreeting": "Read Greeting",
|
|
"tlsRptLookup": "TLS-RPT Lookup",
|
|
"tlsaLookup": "TLSA / DANE Lookup"
|
|
},
|
|
"runAnother": "Run another trace",
|
|
"startTrace": "Start trace",
|
|
"startedAgoMin": "Started {{m}}m {{s}}s ago",
|
|
"startedAgoSec": "Started {{s}}s ago",
|
|
"subtitle": "Run a real outbound SMTP delivery attempt and watch every DNS lookup, TLS handshake, and SMTP command as it happens.",
|
|
"targetLabel": "Target address or domain",
|
|
"targetPlaceholder": "john@example.org or example.org",
|
|
"timedOut": "Trace timed out after 120 seconds.",
|
|
"title": "Delivery Trace",
|
|
"traceCompletedFor": "Trace completed for {{target}}",
|
|
"traceFailedFor": "Trace failed for {{target}}",
|
|
"tracingDelivery": "Tracing delivery to {{target}}",
|
|
"viewDetails": "View details",
|
|
"waiting": "Waiting for more events"
|
|
},
|
|
"duration": {
|
|
"days": "Days",
|
|
"hours": "Hours",
|
|
"milliseconds": "Milliseconds",
|
|
"minutes": "Minutes",
|
|
"seconds": "Seconds"
|
|
},
|
|
"enterprise": {
|
|
"featureDisabled": "This feature requires an Enterprise license.",
|
|
"trialTitle": "Unlock Enterprise Features",
|
|
"trialDescription": "Get access to advanced features including multi-tenancy, AI-powered spam filtering, alerts, and more.",
|
|
"trialButton": "Start 30-Day Free Trial",
|
|
"requestTrial": "Request a free trial to unlock this feature.",
|
|
"ossHidden": "This feature is not available in the open-source edition."
|
|
},
|
|
"errorBoundary": {
|
|
"title": "Something went wrong",
|
|
"tryAgain": "Try Again"
|
|
},
|
|
"errors": {
|
|
"unexpectedError": "An unexpected error occurred.",
|
|
"viewNotFound": "View not found",
|
|
"loadSchemaFailed": "Failed to load the admin panel configuration.",
|
|
"notFound": "The requested resource was not found."
|
|
},
|
|
"expression": {
|
|
"addCondition": "Add condition",
|
|
"condition": "Condition",
|
|
"defaultValue": "Default value",
|
|
"else": "ELSE",
|
|
"if": "IF",
|
|
"result": "Result",
|
|
"then": "THEN",
|
|
"value": "Value"
|
|
},
|
|
"field": {
|
|
"add": "Add",
|
|
"addItem": "Add item",
|
|
"contentModified": "Content modified (will be saved as a new blob)",
|
|
"enable": "Enable",
|
|
"key": "Key...",
|
|
"loadingContent": "Loading content...",
|
|
"noMatches": "No matches",
|
|
"noPermissionToView": "You do not have permission to view {{name}}",
|
|
"none": "None",
|
|
"notSet": "Not set",
|
|
"optional": "(optional)",
|
|
"required": "required",
|
|
"selectEllipsis": "Select...",
|
|
"selectKey": "Select key...",
|
|
"selectOptions": "Select options...",
|
|
"type": "Type",
|
|
"typeAndPressEnter": "Type and press Enter...",
|
|
"unknownObjectType": "Unknown object type: {{name}}"
|
|
},
|
|
"filters": {
|
|
"after": "After",
|
|
"all": "All",
|
|
"before": "Before"
|
|
},
|
|
"form": {
|
|
"correctErrorsBelow": "Please correct the errors below.",
|
|
"createTitle": "Create {{name}}",
|
|
"createdServerGenerated": "The following values were generated by the server. Please save them now, they may not be retrievable later.",
|
|
"createdSuccess": "Created successfully",
|
|
"deleteDescription": "This action cannot be undone. This will permanently delete this {{name}}.",
|
|
"deleteTitle": "Delete {{name}}?",
|
|
"deletedSuccess": "{{name}} deleted successfully",
|
|
"editTitle": "Edit {{name}}",
|
|
"editTitleWithValue": "Edit {{name}}: {{value}}",
|
|
"failedToDelete": "Failed to delete.",
|
|
"failedToLoadData": "Failed to load data.",
|
|
"failedToSave": "Failed to save.",
|
|
"invalidValue": "Invalid value.",
|
|
"item": "item",
|
|
"leave": "Leave",
|
|
"loadingData": "Loading data...",
|
|
"loadingSchema": "Loading schema...",
|
|
"maxLengthIs": "Maximum length is {{max}}.",
|
|
"maxValueIs": "Maximum value is {{max}}.",
|
|
"minLengthIs": "Minimum length is {{min}}.",
|
|
"minValueIs": "Minimum value is {{min}}.",
|
|
"noChangesToSave": "No changes to save",
|
|
"objectNotFound": "Object not found.",
|
|
"otpCodeRequired": "Enter your current authenticator code to authorise this change.",
|
|
"required": "This field is required.",
|
|
"savedSuccess": "Saved successfully",
|
|
"selectType": "Select type...",
|
|
"stay": "Stay",
|
|
"unsavedChanges": "You have unsaved changes. Are you sure you want to leave?",
|
|
"unsavedChangesLabel": "Unsaved changes",
|
|
"unsavedChangesTitle": "Unsaved changes"
|
|
},
|
|
"globalSearch": {
|
|
"create": "Create",
|
|
"fields": "Fields",
|
|
"formSections": "Form Sections",
|
|
"list": "List",
|
|
"noResults": "No results found.",
|
|
"pages": "Pages",
|
|
"settings": "Settings"
|
|
},
|
|
"jmapErrors": {
|
|
"addressBookHasContents": "This address book has contacts. Remove them first.",
|
|
"alreadyExists": "An item with the same identifier already exists.",
|
|
"calendarHasEvent": "This calendar contains events. Remove them first.",
|
|
"forbidden": "You do not have permission to perform this action.",
|
|
"invalidForeignKey": "This item references another item that does not exist.",
|
|
"mailboxHasChild": "This mailbox has child mailboxes. Delete them first.",
|
|
"mailboxHasEmail": "This mailbox contains messages. Remove them first.",
|
|
"nodeHasChildren": "This item has children. Delete them first.",
|
|
"notFound": "The item was not found. It may have been already deleted.",
|
|
"objectIsLinked": "This item is referenced by other items and cannot be deleted.",
|
|
"overQuota": "The operation exceeds your storage quota.",
|
|
"primaryKeyViolation": "An item with the same key already exists.",
|
|
"rateLimit": "Too many requests. Please try again later.",
|
|
"singleton": "This item is a singleton and cannot be deleted.",
|
|
"tooLarge": "The item is too large.",
|
|
"unexpected": "Unexpected error ({{type}}).",
|
|
"validationFailed": "The data did not pass validation."
|
|
},
|
|
"list": {
|
|
"actionWithCount": "{{action}} ({{count}} {{name}})",
|
|
"actions": "Actions",
|
|
"allItemsSelected": "All {{total}} items matching filters are selected.",
|
|
"allPageSelected": "All {{count}} items on this page are selected.",
|
|
"bulkErrorGrouped": "{{count}} items: {{message}}",
|
|
"bulkErrorMore": "…and {{count}} more.",
|
|
"bulkFailDelete_one": "Failed to delete {{count}} item.",
|
|
"bulkFailDelete_other": "Failed to delete {{count}} items.",
|
|
"bulkFailUpdate_one": "Failed to update {{count}} item.",
|
|
"bulkFailUpdate_other": "Failed to update {{count}} items.",
|
|
"bulkMixedDelete": "{{success}} deleted, {{failed}} failed.",
|
|
"bulkMixedUpdate": "{{success}} updated, {{failed}} failed.",
|
|
"bulkSuccessDelete_one": "{{count}} item deleted successfully.",
|
|
"bulkSuccessDelete_other": "{{count}} items deleted successfully.",
|
|
"bulkSuccessUpdate_one": "{{count}} item updated successfully.",
|
|
"bulkSuccessUpdate_other": "{{count}} items updated successfully.",
|
|
"clearSelection": "Clear selection",
|
|
"confirmDescription": "Are you sure you want to proceed with: {{action}}?",
|
|
"confirmTitle": "Confirm Action",
|
|
"create": "Create {{name}}",
|
|
"delete": "Delete",
|
|
"deleteNotConfirmed": "Delete failed: item was not confirmed as destroyed by the server.",
|
|
"filterPlaceholder": "Search {{label}}...",
|
|
"filters": "Filters",
|
|
"massAction": "Actions",
|
|
"next": "Next",
|
|
"noResults": "No results found",
|
|
"previous": "Previous",
|
|
"resetFilters": "Reset",
|
|
"searchFilters": "Search",
|
|
"selectAll": "Select all",
|
|
"selectAllMatching": "Select all {{total}} items matching filters",
|
|
"selectFilterPlaceholder": "Select {{label}}...",
|
|
"selectItem": "Select item",
|
|
"showing": "Showing {{from}}-{{to}} of {{total}} {{name}}",
|
|
"showingItems": "Showing {{count}} items",
|
|
"sort": "Sort",
|
|
"unknownError": "Unknown error"
|
|
},
|
|
"login": {
|
|
"continue": "Continue",
|
|
"error": "An unexpected error occurred",
|
|
"prompt": "Enter your account name to continue",
|
|
"usernamePlaceholder": "user@example.com"
|
|
},
|
|
"logo": {
|
|
"alt": "Logo",
|
|
"stalwartAlt": "Stalwart Logo"
|
|
},
|
|
"logout": "Logout",
|
|
"oauth": {
|
|
"backToLogin": "Back to login",
|
|
"discoveryFailed": "Discovery failed for \"{{username}}\": {{status}} {{statusText}}",
|
|
"error": "Authentication failed",
|
|
"missingData": "Missing OAuth session data. Please try logging in again.",
|
|
"missingParams": "Missing authorization code or state parameter",
|
|
"processing": "Completing sign in...",
|
|
"stateMismatch": "State parameter mismatch. Please try logging in again.",
|
|
"tokenExchangeFailed": "Token exchange failed: {{status}} {{statusText}}"
|
|
},
|
|
"otp": {
|
|
"codeIncorrect": "That code is incorrect. Make sure your authenticator clock is in sync.",
|
|
"confirmationCodeLabel": "Confirmation code",
|
|
"currentCodeLabel": "Current code",
|
|
"currentCodePrompt": "Enter your current 6-digit code to authorise any change to this account (including disabling two-factor authentication).",
|
|
"disable": "Disable",
|
|
"enterCodePrompt": "Enter the code shown in your authenticator.",
|
|
"qrCodeAlt": "TOTP QR code",
|
|
"scanDescription": "Scan the QR code below with Google Authenticator, 1Password, Authy, or any other TOTP app, then enter the 6-digit code it shows to confirm setup.",
|
|
"scanPrompt": "Scan with your authenticator app",
|
|
"setUp": "Set up TOTP",
|
|
"statusDisabled": "Two-factor authentication is not enabled.",
|
|
"statusEnabled": "Two-factor authentication is enabled."
|
|
},
|
|
"rate": {
|
|
"count": "Count",
|
|
"per": "per",
|
|
"periodValue": "Period value"
|
|
},
|
|
"sections": "Sections",
|
|
"toggleTheme": "Toggle theme",
|
|
"tracing": {
|
|
"addFilter": "Add filter",
|
|
"bufferFull": "(buffer full)",
|
|
"connecting": "Connecting...",
|
|
"date": "Date",
|
|
"disabled": "disabled",
|
|
"duration": "Duration",
|
|
"enabled": "enabled",
|
|
"eventCount_one": "{{count}} event",
|
|
"eventCount_other": "{{count}} events",
|
|
"events": "Events",
|
|
"failedToLoadTrace": "Failed to load trace",
|
|
"keywordsLabel": "Keywords (optional)",
|
|
"keywordsPlaceholder": "Enter keywords to filter events...",
|
|
"liveDisconnected": "Live tracing stream disconnected after multiple retries.",
|
|
"liveFailedStart": "Failed to start live tracing.",
|
|
"liveSubtitle": "Stream server events in real time.",
|
|
"liveTitle": "Live Tracing",
|
|
"noEvents": "No trace events to display.",
|
|
"restart": "Restart",
|
|
"spanType": "Span Type",
|
|
"startTracing": "Start tracing",
|
|
"stopTracing": "Stop tracing",
|
|
"stopped": "Stopped",
|
|
"streamingEvents": "Streaming events...",
|
|
"traceNotFound": "Trace not found",
|
|
"valuePlaceholder": "Value..."
|
|
},
|
|
"tryEnterprise": "Try Enterprise",
|
|
"userMenu": "User menu",
|
|
"view": {
|
|
"couldNotResolve": "Could not resolve object",
|
|
"failedToLoad": "Failed to load",
|
|
"noGetResponse": "No get response",
|
|
"objectNotFound": "Object not found"
|
|
}
|
|
}
|